http://www.jwz.org/xscreensaver/xscreensaver-5.13.tar.gz
[xscreensaver] / hacks / glx / pinion.c
index 644ff615db3a631e09c5772a9d9bbfcd177bcede..860d015c73ac3dcb0e2b396cc5857d16d9975c0f 100644 (file)
@@ -1,4 +1,4 @@
-/* pinion, Copyright (c) 2004-2008 Jamie Zawinski <jwz@jwz.org>
+/* pinion, 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
@@ -883,6 +883,7 @@ push_gear (ModeInfo *mi)
 
   if (g->coax_p)
     {
+      if (!parent) abort();
       if (g->x != parent->x) abort();
       if (g->y != parent->y) abort();
       if (g->z == parent->z) abort();
@@ -1340,8 +1341,6 @@ init_pinion (ModeInfo *mi)
       fprintf(stderr, "%s: out of memory\n", progname);
       exit(1);
     }
-
-    pp = &pps[MI_SCREEN(mi)];
   }
 
   pp = &pps[MI_SCREEN(mi)];
@@ -1350,6 +1349,7 @@ init_pinion (ModeInfo *mi)
 
   load_fonts (mi);
   reshape_pinion (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+  clear_gl_error(); /* WTF? sometimes "invalid op" from glViewport! */
 
   pp->title_list  = glGenLists (1);