0

我想知道要更改PIXELFORMATDESCRIPTOR对象中的哪些值来更改颜色深度。

根据 OpenGL wiki,这是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
};

但它有不同的变量影响颜色深度。

我需要更改哪些以相应地调整颜色深度?

4

1 回答 1

0

在您的特定示例中,第一个数字 32 指定了帧缓冲区可用的颜色位平面的数量。其他数字定义用于每个组件的位平面的数量。完全有可能将 5-6-5 像素格式放入 32 位平面帧缓冲区,这是一个有效的选择。

当您将 PIXELFORMATDESCRIPTOR 传递给ChoosePixelFormat这些值时,这些值将作为最小值。但是,使用的算法ChoosePixelFormat可能无法为您所需的应用程序提供最佳结果。然后,最好枚举所有可用的像素格式并使用一组自定义规则从它们中进行选择。

于 2013-09-23T13:53:03.443 回答