Condividi tramite


Metodo ID2D1DeviceContext2::CreateImageSourceFromDxgi (d2d1_3.h)

Crea un'origine immagine da un set di superfici DXGI. Le superfici YCbCr vengono convertite automaticamente in RGBA durante il disegno successivo.

Sintassi

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

Parametri

surfaces

Tipo: [in] IDXGISurface**

Le superfici DXGI da cui creare l'origine dell'immagine.

surfaceCount

Tipo: UINT32

Numero di superfici fornite; deve essere compreso tra uno e tre.

colorSpace

Tipo: DXGI_COLOR_SPACE_TYPE

Spazio colori dell'input.

options

Tipo: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS

Opzioni che controllano le conversioni dello spazio dei colori.

imageSource

Tipo: [out] ID2D1ImageSource**

Riceve la nuova istanza di origine dell'immagine.

Valore restituito

Tipo: HRESULT

S_OK in caso di esito positivo; in caso contrario, HRESULT non riuscito.

Commenti

Questo metodo crea un'origine immagine, che può essere usata per disegnare l'immagine.

Questo metodo supporta superfici che usano un set limitato di formati DXGI e tipi di spazio colori DXGI. Sono supportati solo il set seguente di combinazioni di tipi di spazio colore, formati di superficie e conteggi di superficie:

Tipo di spazio colore Surface Count(s) Formati surface
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 1 Formati pixel supportati da D2D Standard:
  • 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 Quando surface count è 1:
  • DXGI_FORMAT_AYUV
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
  • DXGI_FORMAT_V408
Quando Surface Count è 2:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Quando 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 Quando surface count è 1:
  • DXGI_FORMAT_NV12
  • DXGI_FORMAT_YUY2
  • DXGI_FORMAT_P208
  • DXGI_FORMAT_V208
Quando Surface Count è 2:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8G8_UNORM}
Quando Surface Count è 3:
  • {DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM}
 

La GPU deve avere anche un supporto sufficiente per un formato pixel da supportare da D2D. Per determinare se D2D supporta un formato, chiamare IsDxgiFormatSupported.

Questa API converte i formati YCbCr in sRGB usando il tipo di spazio colore e le opzioni forniti. Si presuppone che i dati RGBA si trovano nello spazio desiderato e D2D non applica alcuna conversione.

Se vengono fornite più superfici, questo metodo deduce se i piani cromatici sono sottocampionati (di 2x) dalle dimensioni relative di ogni rettangolo di origine corrispondente (o se il parametro dei rettangoli di origine è NULL, i limiti di ogni superficie). Il secondo e il terzo rettangolo devono essere uguali alla dimensione del primo rettangolo o al primo rettangolo con una o entrambe le dimensioni ridimensionate di 0,5 (durante l'arrotondamento).

Se specificato, i rettangoli di origine devono trovarsi all'interno dei limiti della superficie corrispondente. I rettangoli di origine possono avere origini diverse. In questo caso, questo metodo sposta i dati da ogni piano per allinearsi tra loro.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [app desktop | App UWP]
Server minimo supportato Windows Server 2016 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1_3.h
DLL D2d1.dll

Vedi anche

ID2D1DeviceContext2