http://www.jwz.org/xscreensaver/xscreensaver-5.12.tar.gz
[xscreensaver] / hacks / glx / font-ximage.c
index 47e8a700dbaf3159b8b4895bfb31300318db599a..c7b0051d752664b6e0b1722c0a1392800acceb07 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <GL/gl.h>     /* only for GLfloat */
+
+#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 */
 
 extern char *progname;
 
-#include <X11/Xutil.h>
+#include "font-ximage.h"
 
 #undef MAX
 #define MAX(a,b) ((a)>(b)?(a):(b))
@@ -45,8 +51,9 @@ bigendian (void)
 static int
 to_pow2 (int i)
 {
-  static unsigned int pow2[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,
-                                 2048, 4096, 8192, 16384, 32768, 65536 };
+  static const unsigned int pow2[] = { 
+    1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,
+    2048, 4096, 8192, 16384, 32768, 65536 };
   int j;
   for (j = 0; j < countof(pow2); j++)
     if (pow2[j] >= i) return pow2[j];
@@ -151,15 +158,11 @@ text_to_ximage (Screen *screen, Visual *visual,
     while ((line = strtok(token, "\r\n")))
       {
         XCharStruct o2;
-        int ascent, descent, direction, xoff2;
+        int ascent, descent, direction;
         token = 0;
 
         XTextExtents(f, line, strlen(line),
                      &direction, &ascent, &descent, &o2);
-        xoff2 = (xoff +
-                 ((overall.lbearing + overall.rbearing) -
-                  (o2.lbearing + o2.rbearing)) / 2);
-
         XDrawString(dpy, bitmap, gc,
                     overall.lbearing + margin + xoff,
                     ((f->ascent * (lines + 1)) +
@@ -230,8 +233,6 @@ text_to_ximage (Screen *screen, Visual *visual,
                      XGetPixel (ximage1, x, y2) ? fg : bg);
       }
 
-    free (ximage1->data);
-    ximage1->data = 0;
     XDestroyImage (ximage1);
 
 #if 0