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

種類: [入力] IDXGISurface**

イメージ ソースを作成する DXGI サーフェス。

surfaceCount

型: UINT32

指定されたサーフェスの数。は 1 から 3 の間である必要があります。

colorSpace

種類: DXGI_COLOR_SPACE_TYPE

入力の色空間。

options

種類: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS

色空間変換を制御するオプション。

imageSource

種類: [out] ID2D1ImageSource**

新しいイメージ ソース インスタンスを受け取ります。

戻り値

型: HRESULT

成功した場合はS_OK。それ以外の場合は失敗 HRESULT。

注釈

このメソッドは、イメージ ソースを作成します。このソースを使用してイメージを描画できます。

このメソッドは、限られた DXGI 形式と DXGI 色空間の種類のセットを使用するサーフェスをサポートします。 色空間の種類、サーフェスの形式、およびサーフェス数の組み合わせの以下のセットのみがサポートされています。

色空間の種類 Surface Count(s) Surface Format(s)
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 1 Standard 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 count が 1 の場合:
  • DXGI_FORMAT_AYUV
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
  • DXGI_FORMAT_V408
Surface Count が 2 の場合:
  • {DXGI_FORMAT_R8_UNORM、DXGI_FORMAT_R8G8_UNORM}
Surface Count が 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 count が 1 の場合:
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
Surface Count が 2 の場合:
  • {DXGI_FORMAT_R8_UNORM、DXGI_FORMAT_R8G8_UNORM}
Surface Count が 3 の場合:
  • {DXGI_FORMAT_R8_UNORM、DXGI_FORMAT_R8_UNORM、DXGI_FORMAT_R8_UNORM}
 

GPU には、D2D でサポートされるピクセル形式に対する十分なサポートも必要です。 D2D で形式がサポートされているかどうかを確認するには、IsDxgiFormatSupported を呼び出します。

この API は、指定された色空間の種類とオプションを使用して、YCbCr 形式を sRGB に変換します。 RGBA データは目的の空間内にあると見なされ、D2D では変換は適用されません。

複数のサーフェスが指定されている場合、このメソッドは、対応する各ソース四角形の相対サイズ (またはソース四角形パラメーターが NULL の場合は、各サーフェスの境界) から、彩度平面がサブサンプリングされる (2 倍) かどうかを推測します。 2 番目と 3 番目の四角形はそれぞれ、1 番目の四角形、または 0.5 (切り上げ時) で 1 つまたは両方の次元がスケーリングされた最初の四角形のサイズと等しい必要があります。

指定する場合、ソース四角形は対応するサーフェスの境界内にある必要があります。 ソース四角形の原点が異なる場合があります。 この場合、このメソッドは各平面からデータを互いに揃えてシフトします。

要件

要件
サポートされている最小のクライアント Windows 10 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1_3.h
[DLL] D2d1.dll

こちらもご覧ください

ID2D1DeviceContext2