struktur DD_LOCKDATA (ddrawint.h)
Struktur DD_LOCKDATA berisi informasi yang diperlukan untuk melakukan penguncian seperti yang ditentukan oleh struktur parameter Microsoft DirectDraw.
Sintaks
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;
Anggota
lpDD
Menunjuk ke struktur DD_DIRECTDRAW_GLOBAL yang menjelaskan perangkat driver.
lpDDSurface
Menunjuk ke struktur DD_SURFACE_LOCAL yang menjelaskan permukaan--dalam kasus LockD3DBuffer, buffer--yang terkait dengan wilayah memori yang akan dikunci.
bHasRect
Menentukan apakah area di rArea valid. Nilai 0x00000001 menunjukkan area yang valid, 0x00000000 menunjukkan area yang tidak valid.
rArea
Menentukan struktur RECTL yang menentukan area di permukaan untuk dikunci.
lpSurfData
Menentukan lokasi di mana driver dapat mengembalikan penunjuk ke wilayah memori yang dikuncinya.
ddRVal
Menentukan lokasi di mana driver menulis nilai pengembalian dari panggilan balik DdLock atau LockD3DBuffer . Kode pengembalian DD_OK menunjukkan keberhasilan. Untuk informasi selengkapnya, lihat Mengembalikan Nilai untuk DirectDraw.
Lock
Digunakan oleh API DirectDraw dan tidak boleh diisi oleh driver.
dwFlags
Menentukan bitmask yang memberi tahu driver cara melakukan penguncian memori. Anggota ini adalah bitwise ATAU dari salah satu nilai berikut:
Bendera | Makna |
---|---|
DDLOCK_DISCARDCONTENTS |
Bendera ini adalah petunjuk bagi driver bahwa bendera ini dapat melewati proses pengurutan ulang karena aplikasi berencana untuk menimpa setiap piksel di permukaan atau persegi panjang terkunci (sehingga tetap menghapus piksel yang tidak diurutkan ulang). Aplikasi harus selalu mengatur bendera ini ketika mereka berniat menimpa seluruh permukaan atau persegi panjang terkunci. |
DDLOCK_DONOTWAIT | Pada antarmuka IDirectDrawSurface7 dan yang lebih tinggi, defaultnya adalah DDLOCK_WAIT. Jika Anda ingin mengganti default dan menggunakan waktu saat akselerator sibuk (sebagaimana ditandai dengan kode pengembalian DDERR_WASSTILLDRAWING) maka gunakan bendera ini. |
DDLOCK_EVENT | Atur jika handel peristiwa sedang diteruskan ke Kunci, yang memicu peristiwa ketika dapat mengembalikan penunjuk memori permukaan yang diminta. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | Driver harus mengembalikan penunjuk memori yang valid ke awal tekstur subvolume yang ditentukan dalam persegi panjang (RECTL) di rArea. Driver memperoleh koordinat depan dan belakang subvolume dari 16 bit teratas koordinat kiri dan kanan (anggota kiri dan kanan RECTL) masing-masing. Koordinat kiri dan kanan dibatasi hingga 16 bit bawah. Jika tidak ada persegi panjang yang ditentukan, driver harus mengembalikan penunjuk ke bagian atas seluruh volume. Nilai ini tersedia di DirectX 8.1 dan yang lebih baru. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Hanya digunakan dengan kunci buffer vertex Direct3D. Menunjukkan bahwa tidak ada simpul yang disebut dalam panggilan IDirect3DDevice7::D rawPrimitiveVB dan IDirect3DDevice7::D rawIndexedPrimitiveVB (dijelaskan dalam dokumentasi Direct3D SDK) sejak awal bingkai (atau kunci terakhir tanpa bendera ini) dimodifikasi selama kunci. Ini dapat berguna ketika seseorang hanya menambahkan data ke buffer vertex. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | Sama seperti DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | Permukaan yang dikunci hanya akan dibaca. Pada Windows 2000 dan yang lebih baru, bendera ini tidak pernah diatur. |
DDLOCK_SURFACEMEMORYPTR | Driver harus mengembalikan penunjuk memori yang valid ke bagian atas persegi panjang yang ditentukan dalam rArea. Jika tidak ada persegi panjang yang ditentukan, driver harus mengembalikan penunjuk ke bagian atas permukaan. |
DDLOCK_WAIT | Atur untuk menunjukkan bahwa Kunci harus menunggu hingga dapat memperoleh penunjuk memori yang valid sebelum kembali. Jika bit ini diatur, Lock tidak pernah mengembalikan DDERR_WASSTILLDRAWING. |
DDLOCK_WRITEONLY | Permukaan yang dikunci hanya akan ditulis. Pada Windows 2000 dan yang lebih baru, bendera ini tidak pernah diatur. |
fpProcess
Menentukan penunjuk ke pemetaan mode pengguna memori driver. Driver melakukan pemetaan ini di DdMapMemory. Hanya Windows 2000 dan yang lebih baru.
Persyaratan
Header | ddrawint.h (termasuk Winddi.h) |