Struktur DDLOCKOUT (ddkmapi.h)
Struktur DDLOCKOUT berisi deskripsi permukaan.
Sintaksis
typedef struct _DDLOCKOUT {
DWORD ddRVal;
DWORD dwSurfHeight;
DWORD dwSurfWidth;
LONG lSurfPitch;
PVOID lpSurface;
DWORD SurfaceCaps;
DWORD dwFormatFlags;
DWORD dwFormatFourCC;
DWORD dwFormatBitCount;
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
};
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
};
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
};
} DDLOCKOUT, *LPDDLOCKOUT;
Anggota
ddRVal
Menentukan lokasi di mana Microsoft DirectDraw menulis nilai pengembalian fungsi DxApi untuk operasi DD_DXAPI_LOCK. Kode pengembalian DD_OK menunjukkan keberhasilan.
dwSurfHeight
dwSurfWidth
Tentukan dimensi permukaan, dalam piksel.
lSurfPitch
Menentukan jarak, dalam byte, ke awal baris berikutnya.
lpSurface
Menunjuk ke memori permukaan.
SurfaceCaps
Menunjukkan sekumpulan bendera yang menentukan kemampuan permukaan. Anggota ini dapat diatur ke satu atau beberapa bendera berikut:
Bendera | Arti |
---|---|
DDSCAPS_3DDEVICE | Permukaan ini dapat digunakan untuk penyajian 3D. Aplikasi dapat menggunakan bendera ini untuk memastikan bahwa perangkat yang hanya dapat merender ke timbunan tertentu memiliki permukaan di luar layar yang dialokasikan dari tumpukan yang benar. Jika bendera ini diatur untuk timbunan, permukaan tidak dialokasikan dari timbunan tersebut. |
DDSCAPS_ALLOCONLOAD | Memori untuk permukaan tidak dialokasikan sampai permukaan dimuat oleh aplikasi menggunakan metode IDirect3DDevice7::Load. |
DDSCAPS_ALPHA | Permukaan ini berisi informasi alfa. Format piksel harus dikueri untuk menentukan apakah permukaan ini hanya berisi informasi alfa atau informasi alfa yang dihubungkan dengan data warna piksel (seperti RGBA atau YUVA). |
DDSCAPS_BACKBUFFER |
Permukaan ini adalah penyangga belakang struktur permukaan membalik. Biasanya, kemampuan ini diatur oleh metode CreateSurface aplikasi saat bendera DDSCAPS_FLIP digunakan. Hanya permukaan yang segera mendahului permukaan DDSCAPS_FRONTBUFFER yang memiliki set kemampuan ini. Permukaan lainnya diidentifikasi sebagai buffer belakang dengan adanya bendera DDSCAPS_FLIP, urutan lampirannya, dan tidak adanya kemampuan DDSCAPS_FRONTBUFFER dan DDSCAPS_BACKBUFFER. Jika kemampuan ini dikirim ke metode CreateSurface aplikasi, buffer belakang yang berdiri sendiri sedang dibuat. Setelah metode ini dipanggil, permukaan ini dapat dilampirkan ke buffer depan, buffer belakang lain, atau keduanya untuk membentuk struktur permukaan yang membalik. Untuk informasi selengkapnya, lihat metode AddAttachedSurface |
DDSCAPS_COMPLEX | Permukaan yang kompleks sedang dijelaskan. Permukaan yang kompleks menghasilkan pembuatan lebih dari satu permukaan. Permukaan tambahan melekat pada permukaan akar. Struktur kompleks hanya dapat dihancurkan dengan menghancurkan akar. |
DDSCAPS_FLIP |
Permukaan ini adalah bagian dari struktur membalik permukaan. Ketika kemampuan ini diteruskan ke metode CreateSurface |
DDSCAPS_FRONTBUFFER |
Permukaan ini adalah buffer depan struktur membalik permukaan. Bendera ini biasanya diatur oleh metode CreateSurface aplikasi saat kemampuan DDSCAPS_FLIP diatur. Jika kemampuan ini dikirim ke metode CreateSurface, buffer depan yang berdiri sendiri dibuat. Permukaan ini tidak akan memiliki kemampuan DDSCAPS_FLIP. Ini dapat dilampirkan ke buffer belakang lainnya untuk membentuk struktur membalik dengan menggunakan metode AddAttachedSurface |
DDSCAPS_HWCODEC | Permukaan ini harus dapat memiliki aliran yang didekompresi oleh perangkat keras. |
DDSCAPS_LIVEVIDEO | Permukaan ini harus dapat menerima video langsung. |
DDSCAPS_LOCALVIDMEM | Permukaan ini ada dalam memori tampilan lokal yang benar dan bukan memori tampilan nonlokal. Jika bendera ini ditentukan, maka DDSCAPS_VIDEOMEMORY juga harus ditentukan. Bendera ini tidak dapat digunakan dengan bendera DDSCAPS_NONLOCALVIDMEM. |
DDSCAPS_MIPMAP |
Permukaan ini adalah satu tingkat mipmap. Permukaan ini akan melekat pada permukaan DDSCAPS_MIPMAP lain untuk membentuk mipmap. Ini dapat dilakukan secara eksplisit dengan membuat sejumlah permukaan dan melampirkannya dengan menggunakan metode AddAttachedSurface |
DDSCAPS_MODEX | Permukaan ini adalah permukaan Mode X 320x200 atau 320x240. |
DDSCAPS_NONLOCALVIDMEM | Permukaan ini ada dalam memori tampilan nonlokal daripada memori tampilan lokal yang benar. Jika bendera ini ditentukan, maka bendera DDSCAPS_VIDEOMEMORY juga harus ditentukan. Ini tidak dapat digunakan dengan bendera DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Permukaan ini adalah permukaan di luar layar yang bukan overlay, tekstur, z-buffer, front-buffer, back-buffer, atau permukaan alfa. Ini digunakan untuk mengidentifikasi permukaan biasa. |
DDSCAPS_OPTIMIZED | Saat ini tidak diimplementasikan. |
DDSCAPS_OVERLAY | Permukaan ini adalah overlay. Ini mungkin atau mungkin tidak terlihat secara langsung tergantung pada apakah saat ini sedang dilapisi ke permukaan utama. DDSCAPS_VISIBLE dapat digunakan untuk menentukan apakah sedang dilapisi saat ini. |
DDSCAPS_OWNDC | Permukaan ini akan memiliki asosiasi konteks perangkat (DC) untuk jangka waktu yang lama. |
DDSCAPS_PALETTE | Driver perangkat ini memungkinkan objek DirectDrawPalette unik untuk dibuat dan dilampirkan ke permukaan ini. |
DDSCAPS_PRIMARYSURFACE | Permukaan adalah permukaan utama. Ini mewakili apa yang terlihat oleh pengguna saat ini. |
DDSCAPS_PRIMARYSURFACELEFT | Permukaan ini adalah permukaan utama untuk mata kiri. Ini mewakili apa yang terlihat oleh mata kiri pengguna saat ini. Ketika permukaan ini dibuat, permukaan dengan kemampuan DDSCAPS_PRIMARYSURFACE mewakili apa yang terlihat oleh mata kanan pengguna. |
DDSCAPS_STANDARDVGAMODE | Permukaan ini adalah permukaan mode VGA standar, dan bukan permukaan ModeX. Bendera ini tidak dapat digunakan dalam kombinasi dengan bendera DDSCAPS_MODEX. |
DDSCAPS_SYSTEMMEMORY | Memori permukaan ini dialokasikan dalam memori sistem. |
DDSCAPS_TEXTURE | Permukaan ini dapat digunakan sebagai tekstur 3D. Ini tidak menunjukkan apakah permukaan sedang digunakan untuk tujuan itu. |
DDSCAPS_VIDEOMEMORY | Permukaan ini ada dalam memori tampilan. |
DDSCAPS_VIDEOPORT | Permukaan ini dapat menerima data dari port video perangkat keras. |
DDSCAPS_VISIBLE | Perubahan yang dilakukan pada permukaan ini segera terlihat. Ini selalu diatur untuk permukaan utama, serta untuk overlay saat sedang dilapisi dan peta tekstur saat sedang diteksur. |
DDSCAPS_WRITEONLY | Hanya akses tulis yang diizinkan ke permukaan. Akses baca dari permukaan dapat menghasilkan kesalahan perlindungan umum (GPF), tetapi hasil baca dari permukaan ini tidak bermakna. |
DDSCAPS_ZBUFFER | Permukaan ini adalah z-buffer. Z-buffer berisi informasi yang tidak dapat ditampilkan. Sebaliknya, ini berisi informasi kedalaman bit yang digunakan untuk menentukan piksel mana yang terlihat dan mana yang dikaburkan. |
dwFormatFlags
Menentukan sekumpulan bendera kontrol opsional. Anggota ini dapat diatur ke kombinasi bendera berikut:
Bendera | Arti |
---|---|
DDPF_ALPHA | Format piksel menjelaskan permukaan khusus alfa. |
DDPF_ALPHAPIXELS | Permukaan memiliki informasi saluran alfa dalam format piksel. |
DDPF_ALPHAPREMULT | Dicadangkan untuk penggunaan sistem. |
DDPF_BUMPDUDV | Data dUdV peta benjolan dalam format piksel valid. |
DDPF_BUMPLUMINANCE |
Data luminance dalam format piksel valid. Bendera ini digunakan saat menggantung luminance dari permukaan benjolan; bitmask untuk bagian luminance piksel kemudian ditunjukkan oleh |
DDPF_COMPRESSED | Permukaan menerima data piksel dalam format yang ditentukan dan mengompresinya selama operasi tulis. |
DDPF_FOURCC |
Kode |
DDPF_LUMINANCE | Data luminance dalam format piksel valid. Bendera ini digunakan hanya untuk luminance atau luminance ditambah permukaan alfa; kedalaman bit kemudian ditunjukkan oleh dwLuminanceBitCount anggota struktur DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | Permukaan diindeks warna 1-bit. |
DDPF_PALETTEINDEXED2 | Permukaan diindeks warna 2-bit. |
DDPF_PALETTEINDEXED4 | Permukaan diindeks warna 4-bit. |
DDPF_PALETTEINDEXED8 | Permukaan diindeks warna 8-bit. |
DDPF_PALETTEINDEXEDTO8 | Permukaannya adalah warna 1-, 2-, atau 4-bit yang diindeks ke palet 8-bit. |
DDPF_RGB | Data RGB dalam struktur format piksel valid. |
DDPF_RGBTOYUV | Permukaan menerima data RGB dan menerjemahkannya selama operasi tulis ke data YUV. Format data yang akan ditulis terkandung dalam struktur format piksel. Bendera DDPF_RGB diatur. |
DDPF_STENCILBUFFER | Permukaan berisi informasi stensil bersama dengan informasi Z. |
DDPF_YUV | Data YUV dalam struktur format piksel valid. |
DDPF_ZBUFFER | Format piksel menjelaskan permukaan z-buffer-only. |
DDPF_ZPIXELS | Permukaan dalam format RGBZ. |
dwFormatFourCC
Menentukan kode
dwFormatBitCount
Menentukan jumlah bit per piksel (4, 8, 16, 24, atau 32) dari data RGB atau YUV.
dwRBitMask
Menentukan masker untuk bit merah.
dwYBitMask
Menentukan masker untuk bit Y.
dwGBitMask
Menentukan masker untuk bit hijau.
dwUBitMask
Menentukan masker untuk bit U.
dwBBitMask
Menentukan masker untuk bit biru.
dwVBitMask
Menentukan masker untuk bit V.
Persyaratan
Syarat | Nilai |
---|---|
Header |
ddkmapi.h (termasuk Ddkmapi.h) |