DD_SURFACE_GLOBAL struttura (ddrawint.h)
La struttura DD_SURFACE_GLOBAL contiene dati relativi alla superficie globale che possono essere condivisi tra più superfici.
Sintassi
typedef struct _DD_SURFACE_GLOBAL {
union {
DWORD dwBlockSizeY;
LONG lSlicePitch;
};
union {
LPVIDEOMEMORY lpVidMemHeap;
DWORD dwBlockSizeX;
DWORD dwUserMemSize;
};
FLATPTR fpVidMem;
union {
LONG lPitch;
DWORD dwLinearSize;
};
LONG yHint;
LONG xHint;
DWORD wHeight;
DWORD wWidth;
ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
FLATPTR fpHeapOffset;
HANDLE hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;
Members
dwBlockSizeY
Specifica la posizione in cui il driver restituisce l'altezza, nelle righe di analisi, del blocco di memoria offscreen che Microsoft DirectDraw deve allocare. Il driver deve impostare questo valore quando restituisce DDHAL_PLEASEALLOC_BLOCKSIZE nel membro fpVidMem .
lSlicePitch
Passo delle sezioni per le trame del volume.
lpVidMemHeap
Punta a una struttura VIDEOMEMORY da cui è stata allocata la memoria di visualizzazione dell'heap.
dwBlockSizeX
Specifica il percorso in cui il driver restituisce le dimensioni in byte della larghezza del blocco di memoria offscreen che DirectDraw deve allocare. Il driver deve impostare questo valore quando restituisce DDHAL_PLEASEALLOC_BLOCKSIZE nel membro fpVidMem .
dwUserMemSize
Specifica il percorso in cui il driver restituisce le dimensioni in byte del blocco di memoria che DirectDraw deve allocare nella memoria di sistema in modalità utente. Il driver deve impostare questo valore quando restituisce DDHAL_PLEASEALLOC_USERMEM nel membro fpVidMem .
fpVidMem
Se il driver alloca il blocco di memoria, deve restituire l'offset nella memoria visualizzata in questo membro. Se il driver richiede DirectDraw di eseguire l'allocazione della memoria, può invece restituire uno dei valori seguenti in questo membro dalla routine DdCreateSurface :
Valore | Significato |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw deve allocare un blocco di memoria di dimensioni dwBlockSizeX e dwBlockSizeY in memoria offscreen. |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw deve allocare un blocco di memoria di dimensioni dwUserMemSize nella memoria in modalità utente. |
lPitch
Specifica il passo della superficie; ovvero la distanza in byte all'inizio della riga successiva. Questo è noto anche come stilo della superficie.
dwLinearSize
Specifica le dimensioni lineari in byte di una superficie nontangulare.
yHint
Specifica la coordinata y della superficie. Questo membro è una coordinata cartesiana 2D specificata nello spazio del dispositivo.
xHint
Specifica la coordinata x della superficie. Questo membro è una coordinata cartesiana 2D specificata nello spazio del dispositivo.
wHeight
Specifica l'altezza in pixel della superficie.
wWidth
Specifica la larghezza in pixel della superficie.
dwReserved1
Riservato per l'uso da parte del driver di visualizzazione.
ddpfSurface
Punta alla struttura DDPIXELFORMAT che descrive il formato pixel della superficie.
fpHeapOffset
Punta all'offset non elaborato nell'heap di origine.
hCreatorProcess
Riservato per l'uso del sistema e deve essere ignorato dal driver.
Commenti
Un buffer del vertice, creato da CreateD3DBuffer, contiene un elenco di vertici usati dal callback D3dDrawPrimitives2 per il rendering delle primitive. Microsoft Windows rappresenta i buffer dei vertici come superfici DirectDraw e quindi stabilisce una connessione tra i buffer dei vertici e la struttura DD_SURFACE_GLOBAL.
Quando un driver DirectX usa un buffer vertex, è importante che sia in grado di determinare correttamente le dimensioni del buffer. DirectDraw passa le dimensioni del buffer lineare al driver nel membro lPitch di questa struttura. In Windows 2000 e versioni successive, ma non in Windows 98/Me, il membro wWidth di questa struttura è impostato sullo stesso valore. Si noti che entrambi i membri della struttura devono essere considerati di sola lettura. Il valore che DirectDraw inserisce in questi membri rappresenta la dimensione minima del buffer dei vertici. Se la necessità di un buffer di dimensioni maggiori (ad esempio per l'ottimizzazione), un writer driver è libero di creare un buffer maggiore di quella dimensione. In nessun caso, tuttavia, il driver segnala le dimensioni del buffer più grandi a DirectDraw.
Requisiti
Intestazione | ddrawint.h (include Winddi.h) |