PDD_CREATESURFACE funzione di callback (ddrawint.h)
La funzione di callback CreateD3DBuffer viene usata per creare un comando a livello di driver o un buffer del vertice della descrizione specificata.
Sintassi
PDD_CREATESURFACE PddCreatesurface;
DWORD PddCreatesurface(
PDD_CREATESURFACEDATA unnamedParam1
)
{...}
Parametri
unnamedParam1
Punta a una struttura DD_CREATESURFACEDATA che contiene le informazioni necessarie per creare il buffer.
Valore restituito
CreateD3DBuffer restituisce uno dei codici di callback seguenti:
Commenti
Questo callback viene usato solo se il driver gestisce i buffer dei vertici e dei comandi a livello di driver.
Per impostazione predefinita, il driver non riceve una notifica quando viene creata una superficie primaria in Windows 2000 e versioni successive. Tuttavia, se il driver supporta il GUID GUID_NTPrivateDriverCaps in una chiamata DdGetDriverInfo e il flag di DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION viene impostato nel membro dwPrivateCaps della struttura DD_NTPRIVATEDRIVERCAPS , il driver viene notificato.
Il passo deve essere restituito nel membro lPitch delle strutture DD_SURFACE_GLOBAL e DDSURFACEDESC . Per la memoria lineare, il driver deve impostare dwBlockSizeX sulle dimensioni, in byte, dell'area di memoria e impostare dwBlockSizeY su 1. Entrambi sono membri della struttura DD_SURFACE_GLOBAL.
Questa chiamata ha lo stesso prototipo di DdCreateSurface. Il callback CreateD3DBuffer viene usato invece quando l'area in questione ha il flag DDSCAPS_EXECUTEBUFFER impostato nel membro ddsCaps della struttura DD_SURFACE_LOCAL . I flag di creazione del buffer sono DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER e DDSCAPS2_COMMANDBUFFER.
Il driver determina il tipo di buffer richiesto controllando il membro ddsCaps della struttura di DD_SURFACE_LOCAL per i flag seguenti:
Contrassegno | Significato |
---|---|
DDSCAPS2_COMMANDBUFFER | Il driver deve allocare un buffer dei comandi. |
DDSCAPS2_VERTEXBUFFER | Il driver deve allocare un buffer del vertice esplicito. |
In alternativa, il driver può richiedere che DirectDraw alloca il buffer restituendo uno dei valori seguenti in fpVidMem:
Valore | Significato |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw deve allocare la memoria del buffer dalla memoria offscreen. |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw deve allocare la memoria del buffer dalla memoria utente. Il driver deve restituire anche le dimensioni, in byte, dell'area di memoria in dwUserMemSize. |
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | ddrawint.h (include Winddi.h) |