ID2D1RenderTarget::CreateSharedBitmap 메서드(d2d1.h)
데이터가 다른 리소스와 공유되는 ID2D1Bitmap 을 만듭니다.
구문
HRESULT CreateSharedBitmap(
REFIID riid,
[in, out] void *data,
[in, optional] const D2D1_BITMAP_PROPERTIES *bitmapProperties,
[out] ID2D1Bitmap **bitmap
);
매개 변수
riid
형식: REFIID
원본 데이터를 제공하는 개체의 인터페이스 ID입니다.
[in, out] data
형식: void*
새 ID2D1Bitmap과 공유할 데이터가 포함된 ID2D1Bitmap, IDXGISurface 또는 IWICBitmapLock입니다. 자세한 내용은 주의 섹션을 참조하세요.
[in, optional] bitmapProperties
만들 비트맵의 픽셀 형식 및 DPI입니다. 픽셀 형식의 DXGI_FORMAT 부분은 데이터의DXGI_FORMAT 일치해야 합니다. 그렇지 않으면 메서드가 실패하지만 알파 모드가 일치할 필요는 없습니다. 불일치를 방지하려면 D2D1::P ixelFormat 도우미 함수에서 가져온 NULL 또는 값을 전달할 수 있습니다. DPI 설정은 데이터 설정과 일치할 필요가 없습니다. dpiX와 dpiY가 모두 0.0f이면 렌더링 대상의 DPI가 사용됩니다.
[out] bitmap
형식: ID2D1Bitmap**
이 메서드가 반환되면 새 비트맵에 대한 포인터의 주소가 포함됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
설명
CreateSharedBitmap 메서드는 비트맵 데이터를 효율적으로 재사용하는 데 유용하며 Direct3D와의 상호 운용성을 제공하는 데도 사용할 수 있습니다.
ID2D1Bitmap 공유
리소스와 호환되는 렌더링 대상에서 만든 ID2D1Bitmap 을 전달하면 해당 렌더링 대상과 비트맵을 공유할 수 있습니다. 원래 ID2D1Bitmap 과 이 메서드에서 만든 새 ID2D1Bitmap 은 모두 동일한 비트맵 데이터를 가리킵니다. 렌더링 대상 리소스를 공유할 수 있는 시기에 대한 자세한 내용은 리소스 개요의 렌더링 대상 리소스 공유 섹션을 참조하세요.이 메서드를 사용하여 기존 비트맵의 데이터를 재해석하고 새 DPI 또는 알파 모드를 지정할 수도 있습니다. 예를 들어 비트맵 아틀라스의 경우 ID2D1Bitmap에는 여러 하위 이미지가 포함될 수 있으며, 각각은 다른 D2D1_ALPHA_MODE(D2D1_ALPHA_MODE_PREMULTIPLIED 또는 D2D1_ALPHA_MODE_IGNORE)으로 렌더링되어야 합니다. CreateSharedBitmap 메서드를 사용하여 비트맵의 별도 복사본을 메모리에 로드하지 않고도 원하는 알파 모드를 사용하여 비트맵을 재해석할 수 있습니다.
IDXGISurface 공유
DXGI 표면 렌더링 대상(CreateDxgiSurfaceRenderTarget 메서드에서 만든 ID2D1RenderTarget 개체)을 사용하는 경우 IDXGISurface 표면을 CreateSharedBitmap 메서드에 전달하여 Direct3D와 비디오 메모리를 공유하고 Direct3D 콘텐츠를 ID2D1Bitmap으로 조작할 수 있습니다. 리소스 개요에 설명된 대로 렌더링 대상 및 IDXGISurface는 동일한 Direct3D 디바이스를 사용해야 합니다.
또한 IDXGISurface는 지원되는 픽셀 형식 및 알파 모드에 설명된 지원되는 픽셀 형식 및 알파 모드 중 하나를 사용해야 합니다.
Direct3D와의 상호 운용성에 대한 자세한 내용은 Direct2D 및 Direct3D 상호 운용성 개요를 참조하세요.
IWICBitmapLock 공유
IWICBitmapLock은 WIC 비트맵의 콘텐츠를 저장하고 동시 액세스로부터 보호합니다. IWICBitmapLock을 CreateSharedBitmap 메서드에 전달하면 IWICBitmapLock에 이미 저장된 비트맵 데이터를 가리키는 ID2D1Bitmap을 만들 수 있습니다.CreateSharedBitmap 메서드와 함께 IWICBitmapLock을 사용하려면 렌더링 대상이 소프트웨어 렌더링을 사용해야 합니다. 렌더링 대상이 소프트웨어 렌더링을 사용하도록 강제하려면 렌더링 대상을 만드는 데 사용하는 D2D1_RENDER_TARGET_PROPERTIES 구조체의 형식 필드를 D2D1_RENDER_TARGET_TYPE_SOFTWARE 설정합니다. 기존 렌더링 대상이 소프트웨어 렌더링을 사용하는지 여부를 검사 위해 IsSupported 메서드를 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |