projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From http://www.jwz.org/xscreensaver/xscreensaver-5.23.tar.gz
[xscreensaver]
/
hacks
/
glx
/
font-ximage.c
diff --git
a/hacks/glx/font-ximage.c
b/hacks/glx/font-ximage.c
index c0321e7ae4c4dffb8170cfc00fa85ad7022a8899..bb51736787de110104f6f8921cf3c0cd0f0e42d6 100644
(file)
--- a/
hacks/glx/font-ximage.c
+++ b/
hacks/glx/font-ximage.c
@@
-1,5
+1,5
@@
/* font-ximage.c --- renders text to an XImage for use with OpenGL.
/* font-ximage.c --- renders text to an XImage for use with OpenGL.
- * xscreensaver, Copyright (c) 2001
, 200
3 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2001
-201
3 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
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@
-17,13
+17,22
@@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#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"
+#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;
extern char *progname;
-#include
<X11/Xutil.h>
+#include
"font-ximage.h"
#undef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#undef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
@@
-45,8
+54,9
@@
bigendian (void)
static int
to_pow2 (int i)
{
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];
int j;
for (j = 0; j < countof(pow2); j++)
if (pow2[j] >= i) return pow2[j];
@@
-58,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.
This XImage will be 32 bits per pixel, 8 each per R, G, and B, with the
extra byte set to 0xFF.
- Foregroun
e
and background are GL-style color specifiers: 4 floats from
+ Foregroun
d
and background are GL-style color specifiers: 4 floats from
0.0-1.0.
*/
XImage *
0.0-1.0.
*/
XImage *
@@
-124,6
+134,8
@@
text_to_ximage (Screen *screen, Visual *visual,
overall.rbearing = MAX(overall.rbearing, o2.rbearing);
lines++;
}
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;
width = overall.lbearing + overall.rbearing + margin + margin + 1;
height = ((f->ascent + f->descent) * lines) + margin + margin;
@@
-151,15
+163,11
@@
text_to_ximage (Screen *screen, Visual *visual,
while ((line = strtok(token, "\r\n")))
{
XCharStruct o2;
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);
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)) +
XDrawString(dpy, bitmap, gc,
overall.lbearing + margin + xoff,
((f->ascent * (lines + 1)) +