WGL - 选择像素格式和 sRGB 帧缓冲区

WGL - ChoosePixelFormat and sRGB framebuffer

我有一个遗留的 OpenGL 应用程序,它根据 ChoosePixelFormat 而不是 wglChoosePixelFormatARBwglGetPixelFormatAttribivARB/wglGetPixelFormatAttribfvARB 设置像素格式。 ChoosePixelFormat 不允许使用 WGL_EXT_colorspace 显式设置帧缓冲区颜色 space 尽管我注意到调用 glEnable(GL_FRAMEBUFFER_SRB) 在渲染时提供颜色 space 转换测试纹理。它是如何工作的 ? ChoosePixelFormat 是否默认设置 sRGB 颜色space?

您已经回答了自己的问题:

ChoosePixelFormat doesn't allow to set a framebuffer color space explicitly.

ChoosePixelFormat 的规则中没有任何内容 禁止 实现 return 支持 sRGB 编码的像素格式。但这也不是 必需的。你不能依赖这里的任何东西。但是在使用合成器(“Aero”或微软喜欢的任何名称)的现代 windows 上,您通常会看到 sRGB 支持,但仍然不能保证。