From 1a182e8f4ecf4a609602ab30f226297a529c8a01 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Fri, 16 Apr 2004 18:38:43 +0000 Subject: [PATCH] don't setup normals if lighting is off --- stepmania/src/RageDisplay_OGL.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/stepmania/src/RageDisplay_OGL.cpp b/stepmania/src/RageDisplay_OGL.cpp index e5df43ea08..4d25b39580 100644 --- a/stepmania/src/RageDisplay_OGL.cpp +++ b/stepmania/src/RageDisplay_OGL.cpp @@ -1141,14 +1141,26 @@ public: glTexCoordPointer(2, GL_FLOAT, 0, NULL); // AssertNoGLError(); - glEnableClientState(GL_NORMAL_ARRAY); - GLExt::glBindBufferARB( GL_ARRAY_BUFFER_ARB, m_nNormals ); -// AssertNoGLError(); - glNormalPointer(GL_FLOAT, 0, NULL); -// AssertNoGLError(); + // TRICKY: Don't bind and send normals if lighting is disabled. This + // will save some effort transforming these values. + GLboolean bLighting; + glGetBooleanv( GL_LIGHTING, &bLighting ); + if( bLighting ) + { + glEnableClientState(GL_NORMAL_ARRAY); + GLExt::glBindBufferARB( GL_ARRAY_BUFFER_ARB, m_nNormals ); + // AssertNoGLError(); + glNormalPointer(GL_FLOAT, 0, NULL); + // AssertNoGLError(); + + GLExt::glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, m_nTriangles ); + // AssertNoGLError(); + } + else + { + glDisableClientState(GL_NORMAL_ARRAY); + } - GLExt::glBindBufferARB( GL_ELEMENT_ARRAY_BUFFER_ARB, m_nTriangles ); -// AssertNoGLError(); #define BUFFER_OFFSET(o) ((char*)(o))