Struktur DDPIXELFORMAT (ddraw.h)
Struktur DDPIXELFORMAT menjelaskan format piksel objek DirectDrawSurface untuk metode IDirectDrawSurface7::GetPixelFormat .
Sintaks
typedef struct _DDPIXELFORMAT {
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
#if ...
union {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
struct {
WORD wFlipMSTypes;
WORD wBltMSTypes;
} MultiSampleCaps;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAMEN;
#else
union {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} DUMMYUNIONNAMEN;
#endif
} DDPIXELFORMAT;
Anggota
dwSize
Ukuran struktur, dalam byte. Anggota ini harus diinisialisasi sebelum struktur digunakan.
dwFlags
Bendera berikut untuk menjelaskan kontrol opsional untuk struktur ini.
DDPF_ALPHA
Format piksel menjelaskan permukaan khusus alfa.
DDPF_ALPHAPIXELS
Permukaan memiliki informasi saluran alfa dalam format piksel.
DDPF_ALPHAPREMULT
Permukaan menggunakan format alfa yang telah ditentukan sebelumnya. Artinya, komponen warna di setiap piksel telah diisi sebelumnya oleh komponen alfa.
DDPF_BUMPLUMINANCE
Data luminance dalam format piksel valid, dan anggota dwLuminanceBitMask menjelaskan bit luminance yang valid untuk permukaan luminance-only atau luminance-alpha.
DDPF_BUMPDUDV
Data peta benjolan dalam format piksel valid. Informasi bump-map ada di anggota dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask, dan dwBumpLuminanceBitMask .
DDPF_COMPRESSED
Permukaan menerima data piksel dalam format yang ditentukan dan memadatkannya selama operasi tulis.
DDPF_D3DFORMAT
Menunjukkan entri kemampuan format DirectX 8.0 dan yang lebih baru dalam daftar format tekstur. Bendera ini tidak terekspos ke aplikasi dan didefinisikan dalam Ddrawi.h.
DDPF_FOURCC
Anggota dwFourCC valid dan berisi kode FOURCC yang menjelaskan format piksel non-RGB.
DDPF_LUMINANCE
Format piksel menjelaskan permukaan luminance-only atau luminance-alpha.
DDPF_PALETTEINDEXED1
Permukaannya diindeks warna 1-bit.
DDPF_PALETTEINDEXED2
Permukaannya diindeks warna 2-bit.
DDPF_PALETTEINDEXED4
Permukaannya diindeks warna 4-bit.
DDPF_PALETTEINDEXED8
Permukaannya diindeks warna 8-bit.
DDPF_PALETTEINDEXEDTO8
Permukaannya adalah 1-, 2-, atau 4-bit-warna-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 mengodekan informasi stensil dan kedalaman di setiap piksel z-buffer. Bendera ini hanya dapat digunakan jika bendera DDPF_ZBUFFER juga ditentukan.
DDPF_YUV
Data YUV dalam struktur format piksel valid.
DDPF_ZBUFFER
Format piksel menjelaskan permukaan z-buffer.
DDPF_ZPIXELS
Permukaan berisi informasi z dalam piksel.
dwFourCC
Kode FourCC.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
Bit RGB per piksel (4, 8, 16, 24, atau 32).
DUMMYUNIONNAMEN.dwYUVBitCount
BIT YUV per piksel (4, 8, 16, 24, atau 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Kedalaman bit z-buffer (8, 16, 24, atau 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
Kedalaman bit saluran alfa (1, 2, 4, atau 8) untuk permukaan khusus alfa (DDPF_ALPHA). Untuk format piksel yang berisi informasi alfa yang diselingi dengan data warna (DDPF_ALPHAPIXELS), hitung bit dalam anggota dwRGBAlphaBitMask untuk mendapatkan kedalaman bit komponen alfa. Untuk informasi selengkapnya tentang cara menentukan kedalaman bit alfa, lihat Keterangan.
DUMMYUNIONNAMEN.dwLuminanceBitCount
Total bit luminance per piksel. Anggota ini hanya berlaku untuk permukaan luminance-only dan luminance-alpha.
DUMMYUNIONNAMEN.dwBumpBitCount
Total bit peta benjolan per piksel di permukaan peta benjolan.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
Bit per piksel format driver privat. Hanya valid dalam daftar format tekstur dan jika DDPF_D3DFORMAT diatur.
DUMMYUNIONNAMEN.dwRBitMask
Masker untuk bit merah.
DUMMYUNIONNAMEN.dwYBitMask
Masker untuk bit Y.
DUMMYUNIONNAMEN.dwStencilBitDepth
Sedikit kedalaman buffer stensil. Anggota ini menentukan berapa banyak bit yang dicadangkan dalam setiap piksel z-buffer untuk informasi stensil (jumlah total z-bit sama dengan dwZBufferBitDepth minus dwStencilBitDepth).
DUMMYUNIONNAMEN.dwLuminanceBitMask
Masker untuk bit luminance.
DUMMYUNIONNAMEN.dwBumpDuBitMask
Masker untuk bit U-delta bump-map.
DUMMYUNIONNAMEN.dwOperations
Bendera yang menentukan operasi yang dapat dilakukan pada permukaan dengan format piksel DDPF_D3DFORMAT. Bendera didefinisikan dalam Ddrawi.h.
DUMMYUNIONNAMEN.dwGBitMask
Masker untuk bit hijau.
DUMMYUNIONNAMEN.dwUBitMask
Masker untuk bit U.
DUMMYUNIONNAMEN.dwZBitMask
Masker untuk bit z.
DUMMYUNIONNAMEN.dwBumpDvBitMask
Masker untuk bit V-delta peta benjolan.
DUMMYUNIONNAMEN.MultiSampleCaps
Struktur yang berisi dua anggota berikut. Struktur ini digunakan untuk menentukan permukaan yang dapat digunakan saat melakukan penyajian multisample. Setiap bit dalam masker 16-bit menunjukkan dukungan multisampling dengan jumlah sampel tertentu. Misalnya, bit 0 menunjukkan dukungan multisampling hanya dengan satu sampel, bit 1 menunjukkan dukungan multisampling dengan dua sampel, dan sebagainya. Driver dapat menunjukkan lebih dari satu tingkat yang didukung dengan menggabungkan bit dengan menggunakan bitwise OR.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
Masker 16-bit untuk multisampling mode layar penuh (balik).
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
Masker 16-bit untuk multisampling mode windowed (transfer blok bit).
DUMMYUNIONNAMEN.dwBBitMask
Masker untuk bit biru.
DUMMYUNIONNAMEN.dwVBitMask
Masker untuk bit V.
DUMMYUNIONNAMEN.dwStencilBitMask
Masker untuk bit stensil dalam setiap piksel z-buffer.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
Masker untuk luminance dalam piksel benjolan-peta.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Masker RGB untuk saluran alfa.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Masker YUV untuk saluran alfa.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Masker luminance untuk saluran alpha.
DUMMYUNIONNAMEN.dwRGBZBitMask
Masker RGB untuk saluran z.
DUMMYUNIONNAMEN.dwYUVZBitMask
Masker YUV untuk saluran z.
Keterangan
Anggota dwAlphaBitDepth mencerminkan kedalaman bit format piksel khusus alfa (DDPF_ALPHA). Untuk format piksel yang menyertakan komponen alfa dengan komponen warna (DDPF_ALPHAPIXELS), kedalaman bit alfa diperoleh dengan menghitung bit dalam berbagai anggota masker. Contoh kode berikut mengembalikan jumlah bit yang ditetapkan dalam bitmask tertentu.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
Penyatuan di DDPIXELFORMAT telah diperbarui untuk bekerja dengan pengkompilasi yang tidak mendukung serikat tanpa nama. Jika compiler Anda tidak mendukung union tanpa nama, tentukan token NONAMELESSUNION sebelum menyertakan file header Ddraw.h.
Persyaratan
Header | ddraw.h |