2013-09-23 108 views
0

我想知道要更改PIXELFORMATDESCRIPTOR對象中更改顏色深度的值。顏色深度PIXELFORMATDESCRIPTOR

根據OpenGL的維基,這是你如何創建一個PIXELFORMATDESCRIPTOR對象OpenGL上下文:

PIXELFORMATDESCRIPTOR pfd = 
{ 
    sizeof(PIXELFORMATDESCRIPTOR), 
    1, 
    PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags 
    PFD_TYPE_RGBA,   //The kind of framebuffer. RGBA or palette. 
    32,      //Colordepth of the framebuffer. 
    0, 0, 0, 0, 0, 0, 
    0, 
    0, 
    0, 
    0, 0, 0, 0, 
    24,      //Number of bits for the depthbuffer 
    8,      //Number of bits for the stencilbuffer 
    0,      //Number of Aux buffers in the framebuffer. 
    PFD_MAIN_PLANE, 
    0, 
    0, 0, 0 
}; 

但它有不同的變量影響的顏色深度。

我需要改變哪些來調整顏色深度?

回答

0

在您的特定示例中,第一個數字32指定可用於幀緩衝區的顏色位平面的數量。其他數字定義了用於每個組件的位平面的數量。將5-6-5像素格式放入32位平面幀緩衝區是完全可能的,這是一個有效的選擇。

當您將PIXELFORMATDESCRIPTOR傳遞到ChoosePixelFormat時,這些值將作爲最小值。然而,ChoosePixelFormat使用的算法可能無法爲您的應用程序提供最佳結果。那麼枚舉所有可用的像素格式並使用一組自定義的規則進行選擇會更好。