Fungsi ChoosePixelFormat (wingdi.h)
Fungsi ChoosePixelFormat mencoba mencocokkan format piksel yang sesuai yang didukung oleh konteks perangkat dengan spesifikasi format piksel tertentu.
Sintaks
int ChoosePixelFormat(
HDC hdc,
const PIXELFORMATDESCRIPTOR *ppfd
);
Parameter
hdc
Menentukan konteks perangkat yang diperiksa fungsi untuk menentukan kecocokan terbaik untuk deskriptor format piksel yang ditunjukkan oleh ppfd.
ppfd
Penunjuk ke struktur PIXELFORMATDESCRIPTOR yang menentukan format piksel yang diminta. Dalam konteks ini, anggota struktur PIXELFORMATDESCRIPTOR yang menunjuk PPFD digunakan sebagai berikut:
nSize | Menentukan ukuran struktur data PIXELFORMATDESCRIPTOR . Atur anggota ini ke sizeof(PIXELFORMATDESCRIPTOR) . |
nVersion | Menentukan nomor versi struktur data PIXELFORMATDESCRIPTOR . Atur anggota ini ke 1. |
dwFlags | Sekumpulan bendera bit yang menentukan properti buffer piksel. Anda dapat menggabungkan konstanta bendera bit berikut dengan menggunakan bitwise-OR. Jika salah satu bendera berikut diatur, fungsi ChoosePixelFormat mencoba mencocokkan format piksel yang juga memiliki bendera atau bendera yang ditetapkan. Jika tidak, ChoosePixelFormat mengabaikan bendera tersebut dalam format piksel: PFD_DRAW_TO_WINDOW, PFD_DRAW_TO_BITMAP, PFD_SUPPORT_GDI, PFD_SUPPORT_OPENGL Jika salah satu bendera berikut diatur, PilihPixelFormat mencoba mencocokkan format piksel yang juga memiliki bendera atau bendera yang ditetapkan. Jika tidak, ia mencoba mencocokkan format piksel tanpa set bendera tersebut: PFD_DOUBLEBUFFER PFD_STEREO Jika bendera berikut diatur, fungsi mengabaikan bendera PFD_DOUBLEBUFFER dalam format piksel: PFD_DOUBLEBUFFER_DONTCARE Jika bendera berikut diatur, fungsi mengabaikan bendera PFD_STEREO dalam format piksel: PFD_STEREO_DONTCARE |
iPixelType | Menentukan jenis format piksel untuk dipertimbangkan fungsi: PFD_TYPE_RGBA, PFD_TYPE_COLORINDEX |
cColorBits | Nol atau lebih besar. |
cRedBits | Tidak digunakan. |
cRedShift | Tidak digunakan. |
cGreenBits | Tidak digunakan. |
cGreenShift | Tidak digunakan. |
cBlueBits | Tidak digunakan. |
cBlueShift | Tidak digunakan. |
cAlphaBits | Nol atau lebih besar. |
cAlphaShift | Tidak digunakan. |
cAccumBits | Nol atau lebih besar. |
cAccumRedBits | Tidak digunakan. |
cAccumGreenBits | Tidak digunakan. |
cAccumBlueBits | Tidak digunakan. |
cAccumAlphaBits | Tidak digunakan. |
cDepthBits | Nol atau lebih besar. |
cStencilBits | Nol atau lebih besar. |
cAuxBuffers | Nol atau lebih besar. |
iLayerType | Menentukan salah satu nilai jenis lapisan berikut: PFD_MAIN_PLANE, PFD_OVERLAY_PLANE, PFD_UNDERLAY_PLANE |
bReserved | Tidak digunakan. |
dwLayerMask | Tidak digunakan. |
dwVisibleMask | Tidak digunakan. |
dwDamageMask | Tidak digunakan. |
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah indeks format piksel (berbasis satu) yang paling cocok dengan deskriptor format piksel yang diberikan.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Anda harus memastikan bahwa format piksel yang cocok dengan fungsi ChoosePixelFormat memenuhi kebutuhan Anda. Misalnya, jika Anda meminta format piksel dengan buffer warna RGB 24-bit tetapi konteks perangkat hanya menawarkan buffer warna RGB 8-bit, fungsi mengembalikan format piksel dengan buffer warna RGB 8-bit.
Contoh
Contoh kode berikut menunjukkan cara menggunakan ChoosePixelFormat untuk mencocokkan format piksel tertentu.
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
HDC hdc;
int iPixelFormat;
iPixelFormat = ChoosePixelFormat(hdc, &pfd);
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wingdi.h |
Pustaka | Gdi32.lib |
DLL | Gdi32.dll |