아틀라스 효과
이 효과를 사용하여 이미지의 일부를 출력하지만 이후 작업에서 사용할 부분 외부의 영역을 유지할 수 있습니다.
이 효과에 대한 CLSID는 CLSID_D2D1Atlas.
아틀라스 효과는 스프라이트의 다양한 프레임과 같은 많은 작은 이미지로 구성된 큰 이미지를 로드하려는 경우에 유용합니다.
출력을 만들려면 효과를 만듭니다.
- 입력을 지정된 InputRect 속성으로 자합니다.
- 결과의 원본을 (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 |