http://www.jwz.org/xscreensaver/xscreensaver-5.09.tar.gz
[xscreensaver] / hacks / glx / glxfonts.h
1 /* glxfonts, Copyright (c) 2001-2009 Jamie Zawinski <jwz@jwz.org>
2  * Loads X11 fonts for use with OpenGL.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation.  No representations are made about the suitability of this
9  * software for any purpose.  It is provided "as is" without express or 
10  * implied warranty.
11  *
12  * Loads X11 fonts for use with OpenGL.
13  */
14
15 #ifndef __GLXFONTS_H__
16 #define __GLXFONTS_H__
17
18 /* This is basically the same as glXUseXFont().
19    We have our own version of it for portability.
20  */
21 extern void xscreensaver_glXUseXFont (Display *dpy, Font font, 
22                                       int first, int count, int listbase);
23
24 /* Loads the font named by the X resource "res".
25    Returns an XFontStruct.
26    Also converts the font to a set of GL lists and returns the first list.
27 */
28 extern void load_font (Display *, char *resource,
29                        XFontStruct **font_ret,
30                        GLuint *dlist_ret);
31
32 /* Bounding box of the string in pixels.
33  */
34 extern int string_width (XFontStruct *f, const char *c, int *height_ret);
35
36 /* Draws the string on the window at the given pixel position.
37    Newlines and tab stops are honored.
38    Any text inside [] will be rendered as a subscript.
39    Assumes the font has been loaded as with load_font(). */
40 void print_gl_string (Display *dpy,
41                       XFontStruct *font,
42                       GLuint font_dlist,
43                       int window_width, int window_height,
44                       GLfloat x, GLfloat y,
45                       const char *string,
46                       Bool clear_background_p);
47
48 #endif /* __GLXFONTS_H__ */