Fungsi SetPixelFormat (wingdi.h)
Fungsi SetPixelFormat mengatur format piksel konteks perangkat yang ditentukan ke format yang ditentukan oleh indeks iPixelFormat .
Sintaks
BOOL SetPixelFormat(
HDC hdc,
int format,
const PIXELFORMATDESCRIPTOR *ppfd
);
Parameter
hdc
Menentukan konteks perangkat yang format pikselnya coba disetel fungsi.
format
Indeks yang mengidentifikasi format piksel yang akan diatur. Berbagai format piksel yang didukung oleh konteks perangkat diidentifikasi oleh indeks berbasis satu.
ppfd
Penunjuk ke struktur PIXELFORMATDESCRIPTOR yang berisi spesifikasi format piksel logis. Komponen metafile sistem menggunakan struktur ini untuk merekam spesifikasi format piksel logis. Struktur tidak memiliki efek lain pada perilaku fungsi SetPixelFormat .
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Jika hdc mereferensikan jendela, memanggil fungsi SetPixelFormat juga mengubah format piksel jendela. Mengatur format piksel jendela lebih dari sekali dapat menyebabkan komplikasi yang signifikan untuk Window Manager dan untuk aplikasi multithread, sehingga tidak diizinkan. Aplikasi hanya dapat mengatur format piksel jendela satu kali. Setelah format piksel jendela diatur, format piksel tidak dapat diubah.
Anda harus memilih format piksel dalam konteks perangkat sebelum memanggil fungsi wglCreateContext . Fungsi wglCreateContext membuat konteks penyajian untuk menggambar pada perangkat dalam format piksel yang dipilih dari konteks perangkat.
Jendela OpenGL memiliki format pikselnya sendiri. Karena itu, hanya konteks perangkat yang diambil untuk area klien jendela OpenGL yang diizinkan untuk menggambar ke jendela. Akibatnya, jendela OpenGL harus dibuat dengan gaya WS_CLIPCHILDREN dan WS_CLIPSIBLINGS. Selain itu, atribut kelas jendela tidak boleh menyertakan gaya CS_PARENTDC.
Contoh
Contoh kode berikut menunjukkan penggunaan SetPixelFormat .
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;
// get the best available match of pixel format for the device context
iPixelFormat = ChoosePixelFormat(hdc, &pfd);
// make that the pixel format of the device context
SetPixelFormat(hdc, iPixelFormat, &pfd);
Persyaratan
Persyaratan | Nilai |
---|---|
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 |