Share via


PDD_CANCREATESURFACE Rückruffunktion (ddrawint.h)

Die Rückruffunktion CanCreateD3DBuffer bestimmt, ob der Treiber einen Befehl auf Treiberebene oder einen Vertexpuffer der angegebenen Beschreibung erstellen kann.

Syntax

PDD_CANCREATESURFACE PddCancreatesurface;

DWORD PddCancreatesurface(
  PDD_CANCREATESURFACEDATA unnamedParam1
)
{...}

Parameter

unnamedParam1

Verweist auf eine DD_CANCREATESURFACEDATA-Struktur . Diese Struktur enthält die Informationen, die der Treiber benötigt, um zu bestimmen, ob ein Befehl oder ein Vertexpuffer erstellt werden kann.

Rückgabewert

CanCreateD3DBuffer gibt einen Rückrufcode zurück.

Hinweise

Dieser Rückruf wird nur verwendet, wenn der Treiber Befehls- und Vertexpuffer auf Treiberebene verwaltet.

CanCreateD3DBuffer sollte die Oberflächenbeschreibung überprüfen, auf die der lpDDSurfaceDesc-Member der DD_CANCREATESURFACEDATA-Struktur bei lpCanCreateD3DBuffer verweist, um festzustellen, ob der Treiber das Format und die Funktionen des angeforderten Puffers für den Modus unterstützen kann, in dem sich der Treiber derzeit befindet. Der Treiber sollte DD_OK im ddRVal-Member derselben Struktur zurückgeben, wenn er diesen Puffertyp unterstützt. Andernfalls sollte der DDERR_Xxx-Fehlercode zurückgegeben werden, der am besten beschreibt, warum der Puffer nicht unterstützt wird.

Dieser Aufruf verfügt über denselben Prototyp wie DdCanCreateSurface. Der CanCreateD3DBuffer-Rückruf wird jedoch verwendet, wenn auf der betreffenden Oberfläche das flag DDSCAPS_EXECUTEBUFFER im ddsCaps-Element der DD_SURFACE_LOCAL-Struktur festgelegt ist.

Der Treiber bestimmt den Typ des angeforderten Puffers, indem er den ddsCaps-Member der DD_SURFACE_LOCAL-Struktur auf die folgenden Flags überprüft:

Flag Bedeutung
DDSCAPS2_COMMANDBUFFER Der Treiber sollte einen Befehlspuffer zuordnen.
DDSCAPS2_VERTEXBUFFER Der Treiber sollte einen expliziten Vertexpuffer zuordnen.
 
Hinweis Wenn keines der Flags festgelegt ist, sollte der Treiber einen impliziten Vertexpuffer zuordnen. Implizite Vertexpuffer sollten nicht im Videospeicher platziert werden, da von ihnen Lese-/Schreibzugriff erwartet wird. Nur explizite Vertexpuffer mit dem DDSCAPS_WRITEONLY Flags können sicher im Videospeicher platziert werden.
 

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile ddrawint.h (einschließlich Winddi.h)

Weitere Informationen

CreateD3DBuffer

DD_CANCREATESURFACEDATA

DD_SURFACE_LOCAL

DdCanCreateSurface