Share via


ID2D1DeviceContext2::CreateImageSourceFromDxgi 메서드(d2d1_3.h)

DXGI 표면 집합에서 이미지 원본을 만듭니다. YCbCr 표면은 후속 그리기 중에 자동으로 RGBA로 변환됩니다.

구문

HRESULT CreateImageSourceFromDxgi(
  IDXGISurface                        **surfaces,
  UINT32                              surfaceCount,
  DXGI_COLOR_SPACE_TYPE               colorSpace,
  D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
  ID2D1ImageSource                    **imageSource
);

매개 변수

surfaces

형식: [in] IDXGISurface**

DXGI는 이미지 원본을 만들 표면입니다.

surfaceCount

형식: UINT32

제공된 표면의 수입니다. 는 1에서 3 사이여야 합니다.

colorSpace

형식: DXGI_COLOR_SPACE_TYPE

입력의 색 공간입니다.

options

형식: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS

색 공간 변환을 제어하는 옵션입니다.

imageSource

형식: [out] ID2D1ImageSource**

새 이미지 원본 instance 받습니다.

반환 값

형식: HRESULT

S_OK 성공하면 실패 HRESULT입니다.

설명

이 메서드는 이미지를 그리는 데 사용할 수 있는 이미지 원본을 만듭니다.

이 메서드는 제한된 DXGI 형식 및 DXGI 색 공간 형식 집합을 사용하는 표면을 지원합니다. 색 공간 유형, 표면 형식 및 표면 개수의 아래 조합 집합만 지원됩니다.

색 공간 유형 Surface 개수 Surface 형식
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 1 표준 D2D 지원 픽셀 형식:
  • DXGI_FORMAT_A8_UNORM
  • DXGI_FORMAT_R8_UNORM
  • DXGI_FORMAT_R8G8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_B8G8R8X8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
  • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
  • DXGI_FORMAT_R16G16B16A16_FLOAT
  • DXGI_FORMAT_R16G16B16A16_UNORM
  • DXGI_FORMAT_R32G32B32A32_FLOAT
  • DXGI_FORMAT_BC1_UNORM
  • DXGI_FORMAT_BC2_UNORM
  • DXGI_FORMAT_BC3_UNORM
DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 1, 2, 3 Surface 수가 1인 경우:
  • DXGI_FORMAT_AYUV
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
  • DXGI_FORMAT_V408
Surface 수가 2인 경우:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Surface 수가 3인 경우:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM}
DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709

DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709

DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020

DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020

1,2,3 Surface 수가 1인 경우:
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
Surface 수가 2인 경우:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Surface 수가 3인 경우:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM}
 

또한 GPU는 D2D에서 지원되는 픽셀 형식을 충분히 지원해야 합니다. D2D가 형식을 지원하는지 여부를 확인하려면 IsDxgiFormatSupported를 호출합니다.

이 API는 제공된 색 공간 형식 및 옵션을 사용하여 YCbCr 형식을 sRGB로 변환합니다. RGBA 데이터는 원하는 공간에 있는 것으로 간주되며 D2D는 변환을 적용하지 않습니다.

여러 표면이 제공되는 경우 이 메서드는 각 원본 사각형의 상대 크기에서 크로마 평면이 하위 샘플링되는지(2배) 유추합니다(또는 원본 사각형 매개 변수가 NULL이면 각 표면의 범위). 두 번째 사각형과 세 번째 사각형의 크기는 각각 첫 번째 사각형 또는 0.5로 크기가 0.5로 조정된 첫 번째 사각형과 같아야 합니다( 반올림하는 동안).

제공된 경우 원본 사각형은 해당 표면의 범위 내에 있어야 합니다. 원본 사각형의 원본이 다를 수 있습니다. 이 경우 이 메서드는 각 평면의 데이터를 서로 정렬하도록 이동합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d2d1_3.h
DLL D2d1.dll

추가 정보

ID2D1DeviceContext2