Condividi tramite


Metodo IDCompositionDevice2::CreateVirtualSurface (dcomp.h)

Crea una superficie popolata di tipo sparse che può essere associata a uno o più oggetti visivi per la composizione.

Sintassi

HRESULT CreateVirtualSurface(
  [in]  UINT                        initialWidth,
  [in]  UINT                        initialHeight,
  [in]  DXGI_FORMAT                 pixelFormat,
  [in]  DXGI_ALPHA_MODE             alphaMode,
  [out] IDCompositionVirtualSurface **virtualSurface
);

Parametri

[in] initialWidth

Tipo: UINT

Larghezza della superficie, in pixel. La larghezza massima è 16.777.216 pixel.

[in] initialHeight

Tipo: UINT

Altezza della superficie, in pixel. L'altezza massima è 16.777.216 pixel.

[in] pixelFormat

Tipo: DXGI_FORMAT

Formato pixel della superficie.

[in] alphaMode

Tipo: DXGI_ALPHA_MODE

Significato del canale alfa, se il formato pixel contiene un canale alfa. Può essere uno dei valori seguenti:

Valore Significato
DXGI_ALPHA_MODE_UNSPECIFIED
Il canale alfa non è specificato. Questo valore ha lo stesso effetto di DXGI_ALPHA_MODE_IGNORE.
DXGI_ALPHA_MODE_PREMULTIPLIED
I canali di colore contengono valori premoltiplicati con il canale alfa.
DXGI_ALPHA_MODE_IGNORE
Il canale alfa deve essere ignorato e il rendering della bitmap deve essere opacamente.

[out] virtualSurface

Tipo: IDCompositionVirtualSurface**

Oggetto superficie appena creato. Questo parametro non deve essere NULL.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT . Per un elenco di codici di errore, vedere Codici di errore directComposition .

Commenti

Una superficie di tipo sparse Microsoft DirectComposition è un oggetto logico che si comporta come una matrice rettangolare di pixel che può essere associata a un oggetto visivo per la composizione. La superficie non è necessariamente supportata da alcun video fisico o memoria di sistema per ogni pixel. L'applicazione può realizzare o virtualizzare parti della superficie logica in momenti diversi.

Un oggetto superficie appena creato si trova in uno stato non inizializzato. Sebbene non sia inizializzata, la superficie non ha alcun effetto sulla composizione dell'albero visivo. Si comporta esattamente come una superficie inizializzata con pixel trasparenti al 100%.

Per inizializzare la superficie con i dati pixel, usare i metodi IDCompositionSurface::BeginDraw e IDCompositionSurface::EndDraw . Questo metodo non solo fornisce pixel per la superficie, ma alloca anche lo spazio di archiviazione effettivo per tali pixel. L'allocazione di memoria viene mantenuta fino a quando l'applicazione non restituisce una parte della memoria al sistema. L'applicazione può liberare parte o tutta la memoria allocata chiamando il metodo IDCompositionVirtualSurface::Trim .

Le superfici DirectComposition supportano i formati pixel seguenti:

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT
Questo metodo ha esito negativo se initialWidth o initialHeight supera i 16.777.216 pixel.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dcomp.h
Libreria Dcomp.lib
DLL Dcomp.dll

Vedi anche

IDCompositionDevice2

IDCompositionDevice::CreateSurface