ecere/gfx/drivers/OpenGL: Added GLSetupLighting API
authorJerome St-Louis <jerome@ecere.com>
Wed, 9 Sep 2015 04:44:57 +0000 (12:44 +0800)
committerJerome St-Louis <jerome@ecere.com>
Thu, 15 Oct 2015 00:26:38 +0000 (20:26 -0400)
ecere/src/gfx/drivers/OpenGLDisplayDriver.ec

index cd21972..c1a2844 100644 (file)
@@ -462,6 +462,14 @@ public void GLSetupTexturing(bool enable)
 #endif
 }
 
+public void GLSetupLighting(bool enable)
+{
+#if defined(SHADERS)
+   shader_lighting(enable);
+#elif !defined(EM_MODE)
+   (enable ? glEnable : glDisable)(GL_LIGHTING);
+#endif
+}
 
 // Non OpenGL ES friendly stuff
 
@@ -2873,10 +2881,8 @@ class OpenGLDisplayDriver : DisplayDriver
 
          glEnable(GL_DEPTH_TEST);
 
-#if defined(SHADERS)
-         shader_lighting(true);
-#elif !defined(EM_MODE)
-         glEnable(GL_LIGHTING);
+         GLSetupLighting(true);
+#if !defined(EM_MODE) && !defined(SHADERS)
          glShadeModel(GL_SMOOTH);
 #endif
          glDepthMask((byte)bool::true);
@@ -2891,11 +2897,10 @@ class OpenGLDisplayDriver : DisplayDriver
 
          glDisable(GL_CULL_FACE);
          glDisable(GL_DEPTH_TEST);
+
          GLSetupTexturing(false);
-#if defined(SHADERS)
-         shader_lighting(false);
-#elif !defined(EM_MODE)
-         glDisable(GL_LIGHTING);
+         GLSetupLighting(false);
+#if !defined(SHADERS) && !defined(EM_MODE)
          glDisable(GL_FOG);
          glShadeModel(GL_FLAT);
 #endif