Freigeben über


IDCompositionSurfaceFactory::CreateVirtualSurface-Methode (dcomp.h)

Erstellt eine dünn aufgefüllte Oberfläche, die einem oder mehreren Visuals für die Komposition zugeordnet werden kann.

Syntax

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

Parameter

[in] initialWidth

Die Breite der Oberfläche in Pixel. Die maximale Breite beträgt 16.777.216 Pixel.

[in] initialHeight

Die Höhe der Oberfläche in Pixel. Die maximale Höhe beträgt 16.777.216 Pixel.

[in] pixelFormat

Das Pixelformat der Oberfläche.

[in] alphaMode

Das Format des Alphakanals, wenn ein Alphakanal im Pixelformat enthalten ist. Dies kann eine der DXGI_ALPHA_MODE_PREMULTIPLIED oder DXGI_ALPHA_MODE_IGNORE sein. Es kann auch DXGI_ALPHA_MODE_UNSPECIFIED werden, was als DXGI_ALPHA_MODE_IGNORE interpretiert wird.

[out] virtualSurface

Das neu erstellte virtuelle Oberflächenobjekt. Dieser Parameter darf nicht NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben. Eine Liste der Fehlercodes finden Sie unter DirectComposition-Fehlercodes .

Hinweise

Ein neu erstelltes virtuelles Oberflächenobjekt befindet sich in einem nicht initialisierten Zustand. Obwohl sie nicht initialisiert ist, hat die Oberfläche keine Auswirkungen auf die Zusammensetzung der visuellen Struktur. Es verhält sich genau wie eine Oberfläche, die mit 100 % transparenten Pixeln initialisiert wird.

Um die Oberfläche mit Pixeldaten zu initialisieren, verwenden Sie die IDCompositionSurface::BeginDraw-Methode . Diese Methode stellt nicht nur Pixel für die Oberfläche bereit, sondern belegt auch den tatsächlichen Speicherplatz für diese Pixel. Die Speicherbelegung wird beibehalten, bis die Anwendung einen Teil des Arbeitsspeichers an das System zurückgibt. Die Anwendung kann einen Teil oder den gesamten zugeordneten Arbeitsspeicher freigeben, indem die IDCompositionVirtualSurface::Trim - oder IDCompositionVirtualSurface::Resize-Methode aufgerufen wird .

Microsoft DirectComposition-Oberflächen unterstützen die folgenden Pixelformate:

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dcomp.h
Bibliothek Dcomp.lib
DLL Dcomp.dll

Weitere Informationen

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface

IDCompositionSurfaceFactory

IDCompositionSurfaceFactory::CreateVirtualSurface