ftp://ftp.linux.ncsu.edu/mirror/ftp.redhat.com/pub/redhat/linux/enterprise/4/en/os...
[xscreensaver] / hacks / glx / glut_stroke.c
1
2 /* Copyright (c) Mark J. Kilgard, 1994. */
3
4 /* This program is freely distributable without licensing fees
5    and is provided without guarantee or warrantee expressed or
6    implied. This program is -not- in the public domain. */
7
8 #if 0   /* for Mesa */
9 # include "glutint.h"
10 #else   /* for xscreensaver */
11 # include "config.h"
12 # include <GL/gl.h>
13 # undef APIENTRY
14 # define APIENTRY /**/
15 #endif
16
17 #include "glutstroke.h"
18
19 void APIENTRY 
20 glutStrokeCharacter(GLUTstrokeFont font, int c)
21 {
22   const StrokeCharRec *ch;
23   const StrokeRec *stroke;
24   const CoordRec *coord;
25   StrokeFontPtr fontinfo;
26   int i, j;
27
28
29 #if defined(_WIN32)
30   fontinfo = (StrokeFontPtr) __glutFont(font);
31 #else
32   fontinfo = (StrokeFontPtr) font;
33 #endif
34
35   if (c < 0 || c >= fontinfo->num_chars)
36     return;
37   ch = &(fontinfo->ch[c]);
38   if (ch) {
39     for (i = ch->num_strokes, stroke = ch->stroke;
40       i > 0; i--, stroke++) {
41       glBegin(GL_LINE_STRIP);
42       for (j = stroke->num_coords, coord = stroke->coord;
43         j > 0; j--, coord++) {
44         glVertex2f(coord->x, coord->y);
45       }
46       glEnd();
47     }
48     glTranslatef(ch->right, 0.0, 0.0);
49   }
50 }