Преглед изворни кода

glgsg: fix sRGB for FBOs created from non-sRGB host window

In this case _current_properties in begin_frame() will not have srgb_color set, as the current props are set by the host window
rdb пре 7 година
родитељ
комит
e1af4abf11
1 измењених фајлова са 7 додато и 0 уклоњено
  1. 7 0
      panda/src/glstuff/glGraphicsBuffer_src.cxx

+ 7 - 0
panda/src/glstuff/glGraphicsBuffer_src.cxx

@@ -283,6 +283,13 @@ begin_frame(FrameMode mode, Thread *current_thread) {
     rebuild_bitplanes();
     rebuild_bitplanes();
   }
   }
 
 
+  // The host window may not have had sRGB enabled, so we need to do this.
+#ifndef OPENGLES
+  if (get_fb_properties().get_srgb_color()) {
+    glEnable(GL_FRAMEBUFFER_SRGB);
+  }
+#endif
+
   _gsg->set_current_properties(&get_fb_properties());
   _gsg->set_current_properties(&get_fb_properties());
   report_my_gl_errors();
   report_my_gl_errors();
   return true;
   return true;