【问题标题】:Color Depth PIXELFORMATDESCRIPTOR颜色深度 PIXELFORMATDESCRIPTOR
【发布时间】:2013-09-27 19:48:40
【问题描述】:

我想知道要更改 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
};

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

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

【问题讨论】:

    标签: c winapi opengl pixelformat


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      相关资源
      最近更新 更多