From http://www.jwz.org/xscreensaver/xscreensaver-5.16.tar.gz
[xscreensaver] / hacks / glx / tangram_shapes.c
index 25dec5b21f5f3defd8b3ff8c09485988f0185adb..32b7014c51bee5485352daea84ebc01e938a04c0 100644 (file)
@@ -9,7 +9,19 @@
  * implied warranty.
  */
 
-#include <GL/gl.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifndef HAVE_COCOA
+# include <GL/gl.h>
+#endif
+
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
+#include "tangram_shapes.h"
 
 #define small_scale  ( 1 )
 #define large_scale  ( 2 )
@@ -32,45 +44,60 @@ static void tri_45_90(int wire)
 
     glNormal3f(0, 1, 0);
     glVertex3fv(vertices[0]);
+    glNormal3f(0, 1, 0);
     glVertex3fv(vertices[2]);
+    glNormal3f(0, 1, 0);
     glVertex3fv(vertices[1]);
 
     glNormal3f(0, -1, 0);
     glVertex3fv(vertices[3]);
+    glNormal3f(0, -1, 0);
     glVertex3fv(vertices[4]);
+    glNormal3f(0, -1, 0);
     glVertex3fv(vertices[5]);
     glEnd();
 
     glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);
     glNormal3f(1, 0, 1);
     glVertex3fv(vertices[2]);
+    glNormal3f(1, 0, 1);
     glVertex3fv(vertices[5]);
+    glNormal3f(1, 0, 1);
     glVertex3fv(vertices[4]);
+    glNormal3f(1, 0, 1);
     glVertex3fv(vertices[1]);
 
     glNormal3f(-1, 0, 0);
     glVertex3fv(vertices[0]);
+    glNormal3f(-1, 0, 0);
     glVertex3fv(vertices[1]);
+    glNormal3f(-1, 0, 0);
     glVertex3fv(vertices[4]);
+    glNormal3f(-1, 0, 0);
     glVertex3fv(vertices[3]);
 
     glNormal3f(0, 0, -1);
-    glVertex3fv(vertices[2]);
-    glVertex3fv(vertices[5]);
-    glVertex3fv(vertices[3]);
     glVertex3fv(vertices[0]);
+    glNormal3f(0, 0, -1);
+    glVertex3fv(vertices[3]);
+    glNormal3f(0, 0, -1);
+    glVertex3fv(vertices[5]);
+    glNormal3f(0, 0, -1);
+    glVertex3fv(vertices[2]);
     glEnd();
 }
 
+static
 void unit_cube(int wire)
 {
     glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);
 
-    glNormal3f(0.0f, -1.0f, 0.0f);
-    glVertex3f(0.0f, -alpha, 0.0f);
-    glVertex3f(1.0f, -alpha, 0.0f);
-    glVertex3f(1.0f, -alpha, 1.0f);
-    glVertex3f(0.0f, -alpha, 1.0f);
+
+    glNormal3f(0.0f, 1.0f, 0.0f);
+    glVertex3f(0.0f, alpha, 0.0f);
+    glVertex3f(0.0f, alpha, 1.0f);
+    glVertex3f(1.0f, alpha, 1.0f);
+    glVertex3f(1.0f, alpha, 0.0f);
 
     glNormal3f(0.0f, 0.0f, 1.0f);
     glVertex3f(0.0f, -alpha, 1.0f);
@@ -96,14 +123,16 @@ void unit_cube(int wire)
     glVertex3f(0.0f, alpha, 1.0f);
     glVertex3f(0.0f, alpha, 0.0f);
 
-    glNormal3f(0.0f, 1.0f, 0.0f);
-    glVertex3f(0.0f, alpha, 0.0f);
-    glVertex3f(0.0f, alpha, 1.0f);
-    glVertex3f(1.0f, alpha, 1.0f);
-    glVertex3f(1.0f, alpha, 0.0f);
+    glNormal3f(0.0f, -1.0f, 0.0f);
+    glVertex3f(0.0f, -alpha, 0.0f);
+    glVertex3f(1.0f, -alpha, 0.0f);
+    glVertex3f(1.0f, -alpha, 1.0f);
+    glVertex3f(0.0f, -alpha, 1.0f);
+
     glEnd();
 }
 
+static
 void unit_rhomboid(int wire)
 {
     glBegin((wire) ? GL_LINE_LOOP : GL_QUADS);