http://www.jwz.org/xscreensaver/xscreensaver-5.13.tar.gz
[xscreensaver] / hacks / glx / glxfonts.c
index 9197af975b2f69ecb4ab8e4e8fb7f0395ff615d1..a03eb61128a0d40424f7d8b127790fbc3246104a 100644 (file)
@@ -1,4 +1,4 @@
-/* glxfonts, Copyright (c) 2001-2009 Jamie Zawinski <jwz@jwz.org>
+/* glxfonts, Copyright (c) 2001-2011 Jamie Zawinski <jwz@jwz.org>
  * Loads X11 fonts for use with OpenGL.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -124,6 +124,8 @@ xscreensaver_glXUseXFont (Display *dpy, Font font,
 
   int i;
 
+  clear_gl_error ();
+
   fs = XQueryFont (dpy, font);  
   if (!fs)
     {
@@ -166,6 +168,9 @@ xscreensaver_glXUseXFont (Display *dpy, Font font,
   glPixelStorei        (GL_UNPACK_SKIP_PIXELS, 0);
   glPixelStorei        (GL_UNPACK_ALIGNMENT, 1);
 
+  clear_gl_error(); /* WTF? sometimes "invalid op" from glPixelStorei! */
+
+
   pixmap = XCreatePixmap (dpy, win, 10, 10, 1);
   values.foreground = 0;
   values.background = 1;
@@ -257,6 +262,8 @@ xscreensaver_glXUseXFont (Display *dpy, Font font,
   glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
   glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
   glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
+
+  check_gl_error ("xscreensaver_glXUseXFont");
 }
 
 
@@ -315,9 +322,8 @@ load_font (Display *dpy, char *res, XFontStruct **font_ret, GLuint *dlist_ret)
       clear_gl_error ();
       *dlist_ret = glGenLists ((GLuint) last+1);
       check_gl_error ("glGenLists");
-      xscreensaver_glXUseXFont(dpy, id, first, last-first+1,
-                               *dlist_ret + first);
-      check_gl_error ("xscreensaver_glXUseXFont");
+      xscreensaver_glXUseXFont (dpy, id, first, last-first+1,
+                                *dlist_ret + first);
     }
 
   if (font_ret)