I have a legacy OpenGL application which sets a pixel format based of ChoosePixelFormat
instead of wglChoosePixelFormatARB
or wglGetPixelFormatAttribivARB/wglGetPixelFormatAttribfvARB
. ChoosePixelFormat
doesn’t allow to set a framebuffer color space explicitly using WGL_EXT_colorspace
Despite that I have noticed that calling glEnable(GL_FRAMEBUFFER_SRB)
provides a color space conversion when render a test texture. How does it work ? Does ChoosePixelFormat
set sRGB colorspace by default ?
Physical framebuffers always use some form of gamma law; that’s just how video standards work (NTSC, VGA, HDMI, …, all of them). Enabling GL_FRAMEBUFFER_SRGB
just tells OpenGL to stop pretending that it’s linear.