DD_LOCKDATA struttura (ddrawint.h)
La struttura DD_LOCKDATA contiene informazioni necessarie per eseguire un blocco come definito dalle strutture dei parametri di Microsoft DirectDraw.
Sintassi
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
Members
lpDD
Punta a una struttura DD_DIRECTDRAW_GLOBAL che descrive il dispositivo del driver.
lpDDSurface
Punta a una struttura DD_SURFACE_LOCAL che descrive la superficie nel caso di LockD3DBuffer, un buffer associato all'area di memoria da bloccare.
bHasRect
Specifica se l'area in rArea è valida. Un valore di 0x00000001 indica un'area valida, 0x00000000 indica un'area non valida.
rArea
Specifica una struttura RECTL che definisce l'area sulla superficie da bloccare.
lpSurfData
Specifica il percorso in cui il driver può restituire un puntatore all'area di memoria bloccata.
ddRVal
Specifica il percorso in cui il driver scrive il valore restituito del callback DdLock o LockD3DBuffer . Un codice restituito di DD_OK indica l'esito positivo. Per altre informazioni, vedere Restituire valori per DirectDraw.
Lock
Usato dall'API DirectDraw e non deve essere compilato dal driver.
dwFlags
Specifica una maschera bit che indica al driver come eseguire il blocco della memoria. Questo membro è un OR bit per bit di uno dei valori seguenti:
Flag | Significato |
---|---|
DDLOCK_DISCARDCONTENTS |
Questo flag è un suggerimento per il driver che può ignorare il processo di annullamento dell'ordinamento poiché i piani dell'applicazione sovrascrivono ogni singolo pixel nella superficie o nel rettangolo bloccato (e quindi cancellare tutti i pixel non riordinati comunque). Le applicazioni devono sempre impostare questo flag quando intendono sovrascrivere l'intera superficie o il rettangolo bloccato. |
DDLOCK_DONOTWAIT | Nelle interfacce IDirectDrawSurface7 e successive il valore predefinito è DDLOCK_WAIT. Se si desidera eseguire l'override del valore predefinito e usare il tempo in cui l'acceleratore è occupato (come indicato dal codice restituito DDERR_WASSTILLDRAWING) usare questo flag. |
DDLOCK_EVENT | Impostare se un handle eventi viene passato a Lock, che attiva l'evento quando può restituire il puntatore alla memoria di superficie richiesto. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | Il driver deve restituire un puntatore di memoria valido all'inizio della trama subvolume specificata nel rettangolo (RECTL) in rArea. Il driver ottiene rispettivamente le coordinate frontali e indietro della sottovolume dai primi 16 bit delle coordinate sinistro e destra (a sinistra e a destra di RECTL). Le coordinate a sinistra e destra sono vincolate ai 16 bit inferiori. Se non viene specificato alcun rettangolo, il driver deve restituire un puntatore all'inizio dell'intero volume. Questo valore è disponibile in DirectX 8.1 e versioni successive. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Usato solo con blocchi del buffer vertex Direct3D. Indica che nessun vertice a cui è stato fatto riferimento nelle chiamate IDirect3DDevice7::D rawPrimitiveVB e IDirect3DDevice7::DrawIndexedPrimitiveVB (descritto nella documentazione di Direct3D SDK) dall'inizio del frame (o l'ultimo blocco senza questo flag) vengono modificati durante il blocco. Ciò può risultare utile quando uno aggiunge solo i dati al buffer del vertice. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | Uguale a DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | La superficie bloccata verrà lette solo da. In Windows 2000 e versioni successive questo flag non viene mai impostato. |
DDLOCK_SURFACEMEMORYPTR | Il driver deve restituire un puntatore alla memoria valido nella parte superiore del rettangolo specificato in rArea. Se non viene specificato alcun rettangolo, il driver deve restituire un puntatore alla parte superiore della superficie. |
DDLOCK_WAIT | Impostare per indicare che Lock deve attendere fino a quando non può ottenere un puntatore alla memoria valido prima di restituire. Se questo bit è impostato, Lock non restituisce mai DDERR_WASSTILLDRAWING. |
DDLOCK_WRITEONLY | La superficie bloccata verrà scritta solo in. In Windows 2000 e versioni successive questo flag non viene mai impostato. |
fpProcess
Specifica un puntatore a un mapping in modalità utente della memoria del driver. Il driver esegue questo mapping in DdMapMemory. Windows 2000 e versioni successive.
Requisiti
Intestazione | ddrawint.h (include Winddi.h) |