Freigeben über


IDCompositionSurfaceFactory::CreateSurface-Methode (dcomp.h)

Erstellt ein Oberflächenobjekt, das einem oder mehreren Visuals für die Komposition zugeordnet werden kann.

Syntax

HRESULT CreateSurface(
  [in]  UINT                 width,
  [in]  UINT                 height,
  [in]  DXGI_FORMAT          pixelFormat,
  [in]  DXGI_ALPHA_MODE      alphaMode,
  [out] IDCompositionSurface **surface
);

Parameter

[in] width

Die Breite der Oberfläche in Pixel.

[in] height

Die Höhe der Oberfläche in 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] surface

Das neu erstellte Surface-Objekt. 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

Eine Microsoft DirectComposition-Oberfläche ist ein rechteckiges Array von Pixeln, die einem Visual für die Komposition zugeordnet werden können.

Ein neu erstelltes 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 mit 100 % transparenten Pixeln.

Um die Oberfläche mit Pixeldaten zu initialisieren, verwenden Sie die IDCompositionSurface::BeginDraw-Methode . Der erste Aufruf dieser Methode muss die gesamte Oberfläche abdecken, um einen Anfangswert für jedes Pixel bereitzustellen. Nachfolgende Aufrufe können kleinere Unterrechtecke der zu aktualisierenden Oberfläche angeben.

Diese Methode schlägt fehl, wenn entweder die Breite oder Höhe die maximale Texturgröße überschreitet. Wenn Ihr Szenario Dimensionen erfordert, die über die maximale Texturgröße hinausgehen, verwenden Sie die CreateVirtualSurface-Methode .

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

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT

Anforderungen

   
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