![]() ![]() ![]() ![]() |
|
![]() |
|
![]() |
D3DLOCK_READONLY = $00000010; D3DLOCK_DISCARD = $00002000; D3DLOCK_NOOVERWRITE = $00001000; D3DLOCK_NOSYSLOCK = $00000800; D3DLOCK_NO_DIRTY_UPDATE = $00008000; |
D3DLOCK_READONLY
Der Vertex- oder Indexbuffer wird nicht beschrieben. Der reine Lesezugriff wird damit ein wenig optimiert. Dieses Flag kann nicht zusammen mit D3DLOCK_DISCARD verwendet werden. Darüberhinaus ist das Flag nicht anwendbar, wenn der Vertexbuffer mit D3DUSAGE_WRITEONLY erstellt worden ist.
D3DLOCK_DISCARD
Damit wird ein reiner Schreibvorgang angekündigt. Die neuen Daten werden über den Zeiger in einen neuen Speicherbereich geschrieben. Das Flag ist nur anwendbar, wenn der Buffer oder die Textur dynamisch erstellt wurden.
D3DLOCK_NOOVERWRITE
Stellt sicher, dass bereits vorhandene Daten nicht überschrieben werden, sondern lediglich neue Daten angehängt werden. Für diese Art von Zugriff bewirkt das Flag eine Optimierung des Vorganges.
D3DLOCK_NOSYSLOCK
Dieses Flag ist sinnvoll, wenn zwischen Locken und Unlocken etwas mehr Zeit vergeht. Im Normalfall würde es zu kleinen Aussetzern (zum Beispiel in der Bewegung der Maus) kommen, während der Buffer gelockt ist, da die Grafikkarte den Zugang zum Displayspeicher vorrübergehend sperrt.
D3DLOCK_NO_DIRTY_UPDATE
Normalerweise wird beim Zugriff auf eine Ressourcendatei eine sogenannte Dirty-Region angelegt. Dieses Flag verhindert den Zugriff auf Dirty-Regions. Sie sollten das Flag benutzen, wenn Sie Informationen über die Speicherregionen verfügen, die verändert werden. Dieses Flag ist nicht für Vertex- und Indexbuffer verfügbar.