아틀라스 효과

이 효과를 사용하여 이미지의 일부를 출력하지만 이후 작업에서 사용할 부분 외부의 영역을 유지할 수 있습니다.

이 효과에 대한 CLSID는 CLSID_D2D1Atlas.

아틀라스 효과는 스프라이트의 다양한 프레임과 같은 많은 작은 이미지로 구성된 큰 이미지를 로드하려는 경우에 유용합니다.

출력을 만들려면 효과를 만듭니다.

  1. 입력을 지정된 InputRect 속성으로 자합니다.
  2. 결과의 원본을 (0,0)으로 변환합니다.

참고

InputPaddingRect 속성은 입력에서 두 사각형 사이의 픽셀이 투명 검은색인 경우에만 커야 합니다. 이로 인해 Direct2D가 그래프를 더 최적으로 실행할 수 있습니다.

다음은 효과의 예입니다. 이 이미지는 작고 간단하게 설명합니다.

입력 이미지입니다.

앞의 이미지는 효과에 대한 입력입니다. 여기에 있는 코드는 아틀라스 효과를 만들고, 입력을 설정하고, 입력 사각형을 설정한 다음, 출력을 그립니다.

ComPtr<ID2D1Effect> atlasEffect;

// Create the Atlas Effect.
DX::ThrowIfFailed(m_d2dContext->CreateEffect(CLSID_D2D1Atlas, &atlasEffect));

// Set the input.
atlasEffect->SetInputEffect(0, inputImage.Get());

// The images here are 150 x 150 pixels.
float size = 150.0f;

// Compensate for the padding between images.
float padding = 10.0f;

// The input rectangle.  150 x 150 pixels with 10 pixel padding
D2D1_Vector_4F inputRect = D2D1::Vector4F(size + (padding * 2), padding, size, size);

DX::ThrowIfFailed(atlasEffect->SetValue(D2D1_ATLAS_PROP_INPUT_RECT, inputRect));

// Draw the image
m_d2dContext->DrawImage(atlasEffect.Get());

위의 코드는 두 번째 삼각형 주위에 있는 사각형을 선택합니다. 주위의 안쪽 여백은 무시됩니다. 결과 이미지는 다음과 같습니다.

출력 이미지.

참고

안쪽 여백이 투명 검은색이므로 InputPaddingRect 를 지정하도록 선택할 수 있는 상황입니다. 사각형은 입니다 D2D1::Vector4F(size + (padding * 2), 0, size + padding, size + padding);.

효과 속성

표시 이름 및 인덱스 열거형 설명
InputRect
D2D1_ATLAS_PROP_INPUT_RECT
다음 효과에 전달된 이미지의 부분입니다.
형식이 D2D1_VECTOR_4F.
기본값은 (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX)입니다.
InputPaddingRect
D2D1_ATLAS_PROP_INPUT_PADDING_RECT
출력 사각형에 대해 샘플링된 최대 크기입니다.
형식이 D2D1_VECTOR_4F.
기본값은 (-FLT_MAX, -FLT_MAX, FLT_MAX, FLT_MAX)입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
지원되는 최소 서버 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | Windows 스토어 앱]
헤더 d2d1effects.h
라이브러리 d2d1.lib, dxguid.lib

ID2D1Effect