http://www.jwz.org/xscreensaver/xscreensaver-5.13.tar.gz
[xscreensaver] / hacks / glx / polyhedra-gl.c
index 7082a4e36e0a512aa857f056fd8d3b804b6893f5..83e4a38164a19d2f067fd18d21214cd52e1c099e 100644 (file)
@@ -1,4 +1,4 @@
-/* polyhedra, Copyright (c) 2004-2008 Jamie Zawinski <jwz@jwz.org>
+/* polyhedra, Copyright (c) 2004-2011 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -458,8 +458,6 @@ init_polyhedra (ModeInfo *mi)
       fprintf(stderr, "%s: out of memory\n", progname);
       exit(1);
     }
-
-    bp = &bps[MI_SCREEN(mi)];
   }
 
   bp = &bps[MI_SCREEN(mi)];
@@ -470,8 +468,6 @@ init_polyhedra (ModeInfo *mi)
   load_fonts (mi);
   startup_blurb (mi);
 
-  reshape_polyhedra (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
-
   if (!wire)
     {
       GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
@@ -556,6 +552,9 @@ init_polyhedra (ModeInfo *mi)
   }
 
   new_polyhedron (mi);
+  reshape_polyhedra (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+  clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
+
 }