DD_LOCKDATA-Struktur (ddrawint.h)
Die DD_LOCKDATA-Struktur enthält Informationen, die erforderlich sind, um eine Sperre gemäß der Definition der Microsoft DirectDraw-Parameterstrukturen durchzuführen.
Syntax
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;
Member
lpDD
Verweist auf eine DD_DIRECTDRAW_GLOBAL-Struktur , die das Gerät des Treibers beschreibt.
lpDDSurface
Verweist auf eine DD_SURFACE_LOCAL-Struktur , die die Oberfläche beschreibt– im Fall von LockD3DBuffer, einem Puffer, der dem zu sperrenden Speicherbereich zugeordnet ist.
bHasRect
Gibt an, ob der Bereich in rArea gültig ist. Ein Wert von 0x00000001 gibt einen gültigen Bereich an, 0x00000000 einen ungültigen Bereich an.
rArea
Gibt eine RECTL-Struktur an, die den zu sperrenden Bereich auf der Oberfläche definiert.
lpSurfData
Gibt den Speicherort an, an dem der Treiber einen Zeiger auf den gesperrten Speicherbereich zurückgeben kann.
ddRVal
Gibt den Speicherort an, an dem der Treiber den Rückgabewert des DdLock - oder LockD3DBuffer-Rückrufs schreibt. Ein Rückgabecode von DD_OK zeigt den Erfolg an. Weitere Informationen finden Sie unter Rückgabewerte für DirectDraw.
Lock
Wird von der DirectDraw-API verwendet und sollte nicht vom Treiber ausgefüllt werden.
dwFlags
Gibt eine Bitmaske an, die dem Treiber mitteilt, wie die Speichersperre ausgeführt werden soll. Dieses Element ist ein bitweiser OR mit einem der folgenden Werte:
Flag | Bedeutung |
---|---|
DDLOCK_DISCARDCONTENTS |
Dieses Flag ist ein Hinweis für den Treiber, dass er den Prozess zum Aufheben der Neuanordnung überspringen kann, da die Anwendung plant, jedes einzelne Pixel in der Oberfläche oder dem gesperrten Rechteck zu überschreiben (und daher alle nicht neu sortierten Pixel trotzdem zu löschen). Anwendungen sollten dieses Flag immer festlegen, wenn sie die gesamte Oberfläche oder das gesperrte Rechteck überschreiben möchten. |
DDLOCK_DONOTWAIT | Auf IDirectDrawSurface7 - und höheren Schnittstellen ist der Standardwert DDLOCK_WAIT. Wenn Sie die Standardeinstellung überschreiben und die Zeit verwenden möchten, zu der der Accelerator ausgelastet ist (wie durch den DDERR_WASSTILLDRAWING Rückgabecode gekennzeichnet), verwenden Sie dieses Flag. |
DDLOCK_EVENT | Legen Sie fest, ob ein Ereignishandle an Lock übergeben wird, wodurch das Ereignis ausgelöst wird, wenn der angeforderte Surface-Speicherzeiger zurückgegeben werden kann. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | Der Treiber sollte einen gültigen Speicherzeiger auf den Anfang der Teilvolumtextur zurückgeben, die im Rechteck (RECTL) in rArea angegeben ist. Der Treiber erhält die Vorder- und Rückseitenkoordinaten des Untervolums aus den oberen 16 Bits der linken und rechten Koordinaten (linke und rechte Elemente von RECTL). Die linken und rechten Koordinaten sind auf die unteren 16 Bits beschränkt. Wenn kein Rechteck angegeben ist, sollte der Treiber einen Zeiger auf den oberen Rand des gesamten Volumes zurückgeben. Dieser Wert ist in DirectX 8.1 und höher verfügbar. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Wird nur mit Direct3D-Vertexpuffersperren verwendet. Gibt an, dass in IDirect3DDevice7::D rawPrimitiveVB - und IDirect3DDevice7::D rawIndexedPrimitiveVB-Aufrufen (beschrieben in der Direct3D SDK-Dokumentation) seit dem Start des Frames (oder der letzten Sperre ohne dieses Flag) während der Sperre keine Scheitelpunkte geändert werden. Dies kann nützlich sein, wenn nur Daten an den Scheitelpunktpuffer angefügt werden. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | Identisch mit DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | Die gesperrte Oberfläche wird nur aus gelesen. Unter Windows 2000 und höher wird dieses Flag nie festgelegt. |
DDLOCK_SURFACEMEMORYPTR | Der Treiber sollte einen gültigen Speicherzeiger an den oberen Rand des in rArea angegebenen Rechtecks zurückgeben. Wenn kein Rechteck angegeben ist, sollte der Treiber einen Zeiger auf den oberen Rand der Oberfläche zurückgeben. |
DDLOCK_WAIT | Legen Sie fest, um anzugeben, dass Lock warten soll, bis ein gültiger Speicherzeiger abgerufen werden kann, bevor sie zurückgibt. Wenn dieses Bit festgelegt ist, gibt Lock nie DDERR_WASSTILLDRAWING zurück. |
DDLOCK_WRITEONLY | Die zu sperrende Oberfläche wird nur auf geschrieben. Unter Windows 2000 und höher wird dieses Flag nie festgelegt. |
fpProcess
Gibt einen Zeiger auf eine Benutzermoduszuordnung des Arbeitsspeichers des Treibers an. Der Treiber führt diese Zuordnung in DdMapMemory aus. Nur Windows 2000 und höher.
Anforderungen
Kopfzeile | ddrawint.h (include Winddi.h) |