Share via


ID2D1DeviceContext2 ::CreateImageSourceFromDxgi, méthode (d2d1_3.h)

Crée une source d’image à partir d’un ensemble de surfaces DXGI. Les surfaces YCbCr sont converties automatiquement en RVBA lors du dessin suivant.

Syntaxe

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

Paramètres

surfaces

Type : [in] IDXGISurface**

La surface DXGI à partir de laquelle créer la source d’image.

surfaceCount

Type : UINT32

Nombre de surfaces fournies ; doit être compris entre un et trois.

colorSpace

Type : DXGI_COLOR_SPACE_TYPE

Espace de couleur de l’entrée.

options

Type : D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS

Options de contrôle des conversions d’espace de couleur.

imageSource

Type : [out] ID2D1ImageSource**

Reçoit la nouvelle source d’image instance.

Valeur retournée

Type : HRESULT

S_OK en cas de réussite, sinon un échec HRESULT.

Remarques

Cette méthode crée une source d’image, qui peut être utilisée pour dessiner l’image.

Cette méthode prend en charge les surfaces qui utilisent un ensemble limité de formats DXGI et de types d’espaces de couleurs DXGI. Seul l’ensemble de combinaisons ci-dessous de types d’espaces de couleurs, de formats de surface et de nombre de surfaces est pris en charge :

Type d’espace de couleur Nombre(s) surface(s) Surface Format(s)
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 1 Formats de pixels standard pris en charge par 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 Lorsque le nombre de surfaces est 1 :
  • DXGI_FORMAT_AYUV
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
  • DXGI_FORMAT_V408
Lorsque le nombre de surfaces est 2 :
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Lorsque le nombre de surfaces est de 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 Lorsque le nombre de surfaces est 1 :
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
Lorsque le nombre de surfaces est 2 :
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Lorsque le nombre de surfaces est de 3 :
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM}
 

Le GPU doit également disposer d’une prise en charge suffisante pour qu’un format de pixel soit pris en charge par D2D. Pour déterminer si D2D prend en charge un format, appelez IsDxgiFormatSupported.

Cette API convertit les formats YCbCr en sRGB à l’aide du type d’espace de couleurs et des options fournis. Les données RVBA sont supposées se trouver dans l’espace souhaité, et D2D n’applique aucune conversion.

Si plusieurs surfaces sont fournies, cette méthode déduit si les plans de chroma sont sous-échantillonné (de 2x) à partir des tailles relatives de chaque rectangle source correspondant (ou si le paramètre rectangles source est NULL, limites de chaque surface). Les deuxième et troisième rectangles doivent avoir chacun une taille égale au premier rectangle ou au premier rectangle avec une ou les deux dimensions mises à l’échelle de 0,5 (lors de l’arrondi).

S’ils sont fournis, les rectangles sources doivent se trouver dans les limites de la surface correspondante. Les rectangles sources peuvent avoir des origines différentes. Dans ce cas, cette méthode déplace les données de chaque plan pour qu’elles s’alignent les unes sur les autres.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2016 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1_3.h
DLL D2d1.dll

Voir aussi

ID2D1DeviceContext2