【问题标题】:GetDeviceGammaRamp to adjust colorsGetDeviceGammaRamp 调整颜色
【发布时间】:2011-02-20 14:50:53
【问题描述】:

我覆盖了一个 OpenGL 应用程序 (c++),这个 openGL 应用程序使用 SetDeviceGammaRamp 将桌面的亮度设置为非常高(不知道为什么)。这个应用程序是全屏的,看起来不错,但我的叠加层非常亮。由于高伽马,我得到黄色而不是正常亮度的橙色。

我想要做的:获取当前设置的伽玛(使用GetDeviceGammaRamp),然后使用它来调整我设置的颜色。

喜欢; glColor4f(r, g, b, a) 变为 glColor4f(r / gamma, g / gamma, b / gamma, a);

因此,如果桌面的亮度非常高,则 r g 和 b 值会更低(更暗)并且看起来应该如此。

我怎样才能做到这一点? GetDeviceGammaRamp 填充表格,如何使用它来修改我的颜色?

谢谢

【问题讨论】:

    标签: c++ opengl colors gamma


    【解决方案1】:

    如果可以的话,最好只使用 ARB_framebuffer_sRGB 扩展:

    #define GL_FRAMEBUFFER_SRGB 0x8DB9 //might already be defined
    
    bool supportSRGB = (0 != strstr((char*)glGetString(GL_EXTENSIONS), "GL_ARB_texture_non_power_of_two"));
    if(supportsSRGB)
    {
        glEnable(GL_FRAMEBUFFER_SRGB);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 2022-06-14
      • 2016-05-19
      • 2020-02-11
      • 2011-03-17
      • 2012-04-27
      • 1970-01-01
      相关资源
      最近更新 更多