ID2D1DeviceContext::SetTarget 메서드(d2d1_1.h)
이제 Direct2D 디바이스 컨텍스트가 렌더링될 비트맵 또는 명령 목록입니다.
void SetTarget(
[in, optional] ID2D1Image *image
);
[in, optional] image
형식: ID2D1Image*
Direct2D 디바이스 컨텍스트가 렌더링할 표면 또는 명령 목록입니다.
없음
컨텍스트가 그리는 동안을 포함하여 대상은 언제든지 변경할 수 있습니다.
대상은 D2D1_BITMAP_OPTIONS_TARGET 플래그를 사용하여 만든 비트맵이거나 명령 목록일 수 있습니다. 다른 종류의 이미지는 대상으로 설정할 수 없습니다. 예를 들어 효과의 출력을 대상으로 설정할 수 없습니다. 대상이 유효하지 않으면 컨텍스트가 D2DERR_INVALID_TARGET 오류 상태로 들어갑니다.
SetTarget을 사용하여 여러 디바이스 컨텍스트에서 비트맵/명령 목록으로 동시에 렌더링할 수 없습니다. 이미지가 BeginDraw EndDraw/ 시간 범위 내의 디바이스 컨텍스트에서 설정된 경우 "렌더링 중"으로 간주됩니다. 여러 디바이스 컨텍스트를 통해 이미지에 렌더링하려고 하면 첫 번째 이후의 모든 후속 디바이스 컨텍스트가 오류 상태가 됩니다.
두 번째 디바이스 컨텍스트에 이미지를 연결하려는 호출자는 먼저 첫 번째 디바이스 컨텍스트에서 EndDraw 를 호출해야 합니다.
다음은 올바른 호출 순서의 예입니다.
pDC1->BeginDraw();
pDC1->SetTarget(pImage);
// …
pDC1->EndDraw();
pDC2->BeginDraw();
pDC2->SetTarget(pImage);
// …
pDC2->EndDraw();
다음은 잘못된 호출 순서의 예입니다.
pDC1->BeginDraw();
pDC2->BeginDraw();
pDC1->SetTarget(pImage);
// ...
pDC1->SetTarget(NULL);
pDC2->SetTarget(pImage); // This call is invalid, even though pImage is no longer set on pDC1.
// ...
pDC1->EndDraw(); // This EndDraw SUCCEEDs.
pDC2->EndDraw(); // This EndDraw FAILs
여러 렌더링 대상에서 비트맵을 대상 비트맵으로 한 번에 바인딩할 수 있습니다. 이렇게 하는 애플리케이션은 렌더링을 Flush 또는 EndDraw와 제대로 동기화해야 합니다.
컨텍스트가 그리는 동안을 포함하여 언제든지 대상을 변경할 수 있습니다.
대상을 NULL로 설정할 수 있습니다. 이 경우 그리기 호출은 디바이스 컨텍스트를 D2DERR_WRONG_STATE 오류 상태로 전환합니다. NULL 대상을 사용하여 SetTarget 을 호출해도 원래 대상 비트맵은 디바이스 컨텍스트로 복원되지 않습니다.
디바이스 컨텍스트에 미해결 HDC가 있는 경우 컨텍스트는 D2DERR_WRONG_STATE 오류 상태가 됩니다. 대상은 변경되지 않습니다.
비트맵과 디바이스 컨텍스트가 동일한 리소스 도메인에 없는 경우 컨텍스트는 오류 상태가 됩니다 \ . 대상은 변경되지 않습니다.
ID2D1RenderTarget::GetPixelSize 는 비트맵 바인딩이 없는 경우 현재 대상 비트맵의 크기(또는 0, 0)를 반환합니다. ID2D1RenderTarget::GetSize 는 렌더링 대상의 DPI에 의해 크기가 조정된 현재 비트맵의 픽셀 크기를 반환합니다. SetTarget 은 렌더링 대상의 DPI에 영향을 주지 않습니다.
ID2D1RenderTarget::GetPixelFormat 은 현재 대상 비트맵의 픽셀 형식을 반환합니다(또는 없는 경우 D2D1_ALPHA_MODE_UNKNOWN DXGI_FORMAT_UNKNOWN ).
ID2D1Bitmap::CopyFromRenderTarget 은 현재 바인딩된 대상 비트맵에서 복사합니다.
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2용 Windows Server 2012 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1_1.h |
DLL | D2d1.dll |