From http://www.jwz.org/xscreensaver/xscreensaver-5.27.tar.gz
[xscreensaver] / hacks / glx / font-ximage.c
index c7b0051d752664b6e0b1722c0a1392800acceb07..22ef3a814e7388a972d54d8a09e9953fb0af4f9d 100644 (file)
@@ -1,5 +1,5 @@
 /* font-ximage.c --- renders text to an XImage for use with OpenGL.
- * xscreensaver, Copyright (c) 2001, 2003 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2001-2013 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
 
 #ifdef HAVE_COCOA
 # include "jwxyz.h"
-# include <OpenGL/gl.h>
 #else  /* !HAVE_COCOA */
 # include <X11/Xlib.h>
 # include <X11/Xutil.h>
 # include <GL/gl.h>    /* only for GLfloat */
 #endif /* !HAVE_COCOA */
 
+#ifdef HAVE_JWZGLES
+# include "jwzgles.h"
+#endif /* HAVE_JWZGLES */
+
 extern char *progname;
 
 #include "font-ximage.h"
@@ -65,7 +68,7 @@ to_pow2 (int i)
    This XImage will be 32 bits per pixel, 8 each per R, G, and B, with the
    extra byte set to 0xFF.
 
-   Foregroune and background are GL-style color specifiers: 4 floats from
+   Foreground and background are GL-style color specifiers: 4 floats from
    0.0-1.0.
  */
 XImage *
@@ -125,12 +128,14 @@ text_to_ximage (Screen *screen, Visual *visual,
         XCharStruct o2;
         int ascent, descent, direction;
         token = 0;
-        XTextExtents (f, line, strlen(line),
+        XTextExtents (f, line, (int) strlen(line),
                       &direction, &ascent, &descent, &o2);
         overall.lbearing = MAX(overall.lbearing, o2.lbearing);
         overall.rbearing = MAX(overall.rbearing, o2.rbearing);
         lines++;
       }
+    free (text);
+    text = 0;
 
     width = overall.lbearing + overall.rbearing + margin + margin + 1;
     height = ((f->ascent + f->descent) * lines) + margin + margin;
@@ -161,7 +166,7 @@ text_to_ximage (Screen *screen, Visual *visual,
         int ascent, descent, direction;
         token = 0;
 
-        XTextExtents(f, line, strlen(line),
+        XTextExtents(f, line, (int)strlen(line),
                      &direction, &ascent, &descent, &o2);
         XDrawString(dpy, bitmap, gc,
                     overall.lbearing + margin + xoff,
@@ -169,7 +174,7 @@ text_to_ximage (Screen *screen, Visual *visual,
                      (f->descent * lines) +
                      margin +
                      yoff),
-                    line, strlen(line));
+                    line, (int) strlen(line));
         lines++;
       }
     free(text2);