http://packetstorm.tacticalflex.com/UNIX/admin/xscreensaver-3.27.tar.gz
[xscreensaver] / hacks / glx / extrusion.c
index c79d45c17b12363610594eb46bf6f8e03d8d6764..8537da38858e763d90a4996ca485faacebac7ab7 100644 (file)
@@ -15,6 +15,7 @@
 
  * Revision History:
  * Tue Oct 19 22:24:47 PDT 1999    Initial creation by David Konerding
+ *                                 <dek@cgl.ucsf.edu>
  *                                                                 
  * Notes:
  * This screensaver requires the GLE ("OpenGL Tubing and Extrusion Library")
@@ -28,7 +29,9 @@
 
 #include <X11/Intrinsic.h>
 
-
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #ifdef STANDALONE
 # define PROGCLASS                                             "Screensaver"
 #include <malloc.h>
 #include <GL/gl.h>
 #include <GL/glu.h>
+#ifdef HAVE_GLE3
+#include <GL/gle.h>
+#else
 #include <GL/tube.h>
+#endif
 
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
@@ -455,8 +462,10 @@ void Create_Texture(char *filename, int do_mipmap, int do_texture_quality)
                      format, GL_UNSIGNED_BYTE, image);
   }
   else {
+    clear_gl_error();
     glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0,
                 format, GL_UNSIGNED_BYTE, image);
+    check_gl_error("texture");
   }
   free(image);
 }
@@ -674,6 +683,7 @@ void SetupLight(void)
   glEnable (GL_LIGHTING);
 
   glColorMaterial (GL_FRONT, GL_DIFFUSE);
+  glColorMaterial (GL_BACK, GL_DIFFUSE);
   glEnable (GL_COLOR_MATERIAL);
 }
 
@@ -690,6 +700,8 @@ void resetProjection(void) {
 static void
 reshape(int width, int height)
 {
+  global_width=width;
+  global_height=height;
   glViewport( 0, 0, global_width, global_height );
   resetProjection();
 }
@@ -729,21 +741,21 @@ void initializeGL(GLsizei width, GLsizei height)
   int style;
   int mode;
 
-  global_width=width;
-  global_height=height;
-
+  reshape(width, height);
   glViewport( 0, 0, width, height ); 
 
   glEnable(GL_DEPTH_TEST);
   glClearColor(0,0,0,0);
-  glCullFace(GL_BACK);
-  glEnable(GL_CULL_FACE);
+/*    glCullFace(GL_BACK); */
+/*    glEnable(GL_CULL_FACE); */
   glShadeModel(GL_SMOOTH);
 
   if (do_light)
        SetupLight();
-  if (do_wire)
+  if (do_wire) {
        glPolygonMode(GL_FRONT,GL_LINE);
+       glPolygonMode(GL_BACK,GL_LINE);
+  }
   if (do_texture) {
        Create_Texture(which_image, do_mipmap, do_texture_quality);
        glEnable(GL_TEXTURE_2D);