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)

Vedi anche

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY