From http://www.jwz.org/xscreensaver/xscreensaver-5.15.tar.gz
[xscreensaver] / hacks / glx / juggler3d.c
index b83a3aba3c77ebb532c1da3444684e0d7b014d26..6349d9df2cc5bf0fbcdb6514326120bc91b2f86a 100644 (file)
@@ -1696,6 +1696,8 @@ show_arms(ModeInfo * mi)
   int soffx = 10;
   int soffy = 11;
 
+  glFrontFace(GL_CCW);
+
   j = 1;
   for(side = LEFT; side <= RIGHT; side = (Hand)((int)side + 1)) {
        /* Translate into device coords */
@@ -1799,6 +1801,8 @@ show_figure(ModeInfo * mi, Bool init)
 
   glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gcolor);
 
+  glFrontFace(GL_CCW);
+
   {
     GLfloat scale = ((GLfloat) a[10].x - a[9].x) / 2;
     int slices = 12;
@@ -2065,6 +2069,8 @@ show_ball(ModeInfo *mi, unsigned long color, Trace *s)
   gcolor2[1] = gcolor1[1] / 3;
   gcolor2[2] = gcolor1[2] / 3;
 
+  glFrontFace(GL_CCW);
+
   {
     GLfloat scale = BALLRADIUS;
     glPushMatrix();
@@ -2120,6 +2126,8 @@ show_europeanclub(ModeInfo *mi, unsigned long color, Trace *s)
   gcolor1[1] = mi->colors[color].green / 65536.0;
   gcolor1[2] = mi->colors[color].blue  / 65536.0;
 
+  glFrontFace(GL_CCW);
+
   {
     GLfloat scale = radius;
     glPushMatrix();
@@ -2241,6 +2249,8 @@ show_knife(ModeInfo *mi, unsigned long color, Trace *s)
   gcolor1[1] = mi->colors[color].green / 65536.0;
   gcolor1[2] = mi->colors[color].blue  / 65536.0;
 
+  glFrontFace(GL_CCW);
+
   glPushMatrix();
   glTranslatef(x, y, 0);
   glScalef (2, 2, 2);
@@ -2299,6 +2309,8 @@ show_ring(ModeInfo *mi, unsigned long color, Trace *s)
   gcolor2[1] = gcolor1[1] / 3;
   gcolor2[2] = gcolor1[2] / 3;
 
+  glFrontFace(GL_CCW);
+
   glPushMatrix();
   glTranslatef(0, 0, 12);  /* back of ring in hand */
 
@@ -2388,6 +2400,8 @@ show_bball(ModeInfo *mi, unsigned long color, Trace *s)
   gcolor1[1] = mi->colors[color].green / 65536.0;
   gcolor1[2] = mi->colors[color].blue  / 65536.0;
 
+  glFrontFace(GL_CCW);
+
   {
     GLfloat scale = radius;
     glPushMatrix();
@@ -2654,6 +2668,7 @@ init_juggle (ModeInfo * mi)
   load_font (mi->dpy, "titleFont",  &sp->mode_font, &sp->font_dlist);
 
   reshape_juggle (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+  clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
 
   if (!wire)
     {