我想知道在PIXELFORMATDESCRIPTOR
对象中要更改哪些值来更改颜色深度。
根据OpenGL wiki,这就是为OpenGL上下文创建PIXELFORMATDESCRIPTOR
对象的方法:
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 :(得分:0)
第一个数字,在您的特定示例中为32,指定帧缓冲区可用的颜色位面数量。其他数字定义了用于每个组件的位平面数。将5-6-5像素格式放入32位平面帧缓冲区是完全可能的,这是一个有效的选择。
将PIXELFORMATDESCRIPTOR传递给ChoosePixelFormat
时,值将作为最小值。但是,ChoosePixelFormat
使用的算法可能无法为您所需的应用程序提供最佳结果。然后,可以更好地枚举所有可用的像素格式,并使用一组自定义规则从中进行选择。