Salome HOME
Restore Descartes project changes
authorabd <abd@opencascade.com>
Thu, 1 Dec 2005 09:51:26 +0000 (09:51 +0000)
committerabd <abd@opencascade.com>
Thu, 1 Dec 2005 09:51:26 +0000 (09:51 +0000)
src/GLViewer/GLViewer_Drawer.cxx

index 999d4573a040a8d9c25f1a7833a31130e468cefa..841fb6b844d4dcf2cca0406e3308ab40c443fb60 100644 (file)
@@ -664,16 +664,20 @@ void GLViewer_Drawer::drawTexturePart( GLuint texture,
                                        GLfloat y,
                                        GLfloat scale )
 {
+  if( !texture )
+    return;
+
   float xScale = scale > 0. ? 1./scale : myXScale;
   float yScale = scale > 0. ? 1./scale : myYScale;
 
   glColor4f( 1.0, 1.0, 1.0, 1.0 );
 
+
   glEnable( GL_TEXTURE_2D );
-  glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
-  glAlphaFunc( GL_GREATER, 0.05F );
-  glEnable( GL_ALPHA_TEST );
-  
+  glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
+  bool hasAlpha = glIsEnabled( GL_ALPHA_TEST );
+  glDisable( GL_ALPHA_TEST );
+
   glBindTexture( GL_TEXTURE_2D, texture );
   glBegin( GL_QUADS );
 
@@ -692,7 +696,9 @@ void GLViewer_Drawer::drawTexturePart( GLuint texture,
   glEnd();
   glFlush();
 
-  glDisable( GL_ALPHA_TEST );
+  if ( hasAlpha )
+    glEnable( GL_ALPHA_TEST );
+
   glDisable( GL_TEXTURE_2D );
 }