Compartir a través de


Método ID2D1DeviceContext2::CreateImageSourceFromDxgi (d2d1_3.h)

Crea un origen de imagen a partir de un conjunto de superficies DXGI. Las superficies YCbCr se convierten automáticamente en RGBA durante el dibujo posterior.

Sintaxis

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

Parámetros

surfaces

Tipo: [in] IDXGISurface**

La DXGI expone para crear el origen de la imagen a partir de .

surfaceCount

Tipo: UINT32

Número de superficies proporcionadas; debe estar entre uno y tres.

colorSpace

Tipo: DXGI_COLOR_SPACE_TYPE

Espacio de color de la entrada.

options

Tipo: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS

Opciones que controlan las conversiones de espacio de color.

imageSource

Tipo: [out] ID2D1ImageSource**

Recibe la nueva instancia de origen de imagen.

Valor devuelto

Tipo: HRESULT

S_OK si se ejecuta correctamente; de lo contrario, se produce un error HRESULT.

Comentarios

Este método crea un origen de imagen, que se puede usar para dibujar la imagen.

Este método admite superficies que usan un conjunto limitado de formatos DXGI y tipos de espacio de colores DXGI. Solo se admite el siguiente conjunto de combinaciones de tipos de espacio de color, formatos de superficie y recuentos de superficies:

Tipo de espacio de color Recuentos de superficies Formatos de superficie
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 1 Formatos de píxeles compatibles con D2D estándar:
  • 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 Cuando el recuento de Surface es 1:
  • DXGI_FORMAT_AYUV
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
  • DXGI_FORMAT_V408
Cuando Surface Count es 2:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Cuando Surface Count es 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 Cuando el recuento de Surface es 1:
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
Cuando Surface Count es 2:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Cuando Surface Count es 3:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM}
 

La GPU también debe tener compatibilidad suficiente para que D2D admita un formato de píxel. Para determinar si D2D admite un formato, llame a IsDxgiFormatSupported.

Esta API convierte los formatos YCbCr en sRGB mediante el tipo de espacio de colores y las opciones proporcionados. Se supone que los datos RGBA están en el espacio deseado y D2D no aplica ninguna conversión.

Si se proporcionan varias superficies, este método deduce si los planos cromáticos están submuestreos (por 2x) a partir de los tamaños relativos de cada rectángulo de origen correspondiente (o si el parámetro de rectángulos de origen es NULL, los límites de cada superficie). El segundo y tercer rectángulo deben ser iguales de tamaño al primer rectángulo, o al primer rectángulo con una o ambas dimensiones escaladas por 0,5 (mientras redondea).

Si se proporciona, los rectángulos de origen deben estar dentro de los límites de la superficie correspondiente. Los rectángulos de origen pueden tener orígenes diferentes. En este caso, este método desplaza los datos de cada plano para alinearse entre sí.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2016 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1_3.h
Archivo DLL D2d1.dll

Consulte también

ID2D1DeviceContext2