我有一个遗留的OpenGL应用程序,它基于ChoosePixelFormat
而不是wglChoosePixelFormatARB
或wglGetPixelFormatAttribivARB/wglGetPixelFormatAttribfvARB
设置像素格式。ChoosePixelFormat
不允许使用WGL_EXT_colorspace
显式设置帧缓冲区颜色空间。尽管如此,我注意到调用glEnable(GL_FRAMEBUFFER_SRB)
在渲染测试纹理时提供了颜色空间转换。它是如何工作的?ChoosePixelFormat
是否默认设置sRGB颜色空间?
您已经回答了自己的问题:
ChoosePixelFormat
不允许显式设置帧缓冲区颜色空间。
ChoosePixelFormat
的规则中没有任何禁止实现返回支持sRGB编码的像素格式。但它也不是必需的。你不能在这里依赖任何东西。但在使用合成器("Aero"或微软喜欢称之为的任何东西(的现代窗口上,你通常会看到sRGB支持,但仍然无法保证。