1/*
2 * freeglut_glutfont_definitions_x11.c
3 *
4 * Bitmap and stroke fonts displaying.
5 *
6 * Copyright (c) 2003 Stephen J. Baker (whether he wants it or not).
7 * All Rights Reserved.
8 * Written by John F. Fay <fayjf@sourceforge.net>, who releases the
9 * copyright over to the "freeglut" project lead.
10 * Creation date: Mon July 21 2003
11 *
12 * Permission is hereby granted, free of charge, to any person obtaining a
13 * copy of this software and associated documentation files (the "Software"),
14 * to deal in the Software without restriction, including without limitation
15 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 * and/or sell copies of the Software, and to permit persons to whom the
17 * Software is furnished to do so, subject to the following conditions:
18 *
19 * The above copyright notice and this permission notice shall be included
20 * in all copies or substantial portions of the Software.
21 *
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25 * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
26 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
27 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 */
29
30/*
31 * This file is necessary for the *nix version of "freeglut" because the
32 * original GLUT defined its font variables in rather an unusual way.
33 * Publicly, in "glut.h", they were defined as "void *". Privately,
34 * in one of the source code files, they were defined as pointers to a
35 * structure. Most compilers and linkers are satisfied with the "void *"
36 * and don't go any farther, but some of them balked. In particular,
37 * when compiling with "freeglut" and then trying to run using the GLUT
38 * ".so" library, some of them would give an error. So we are having to
39 * create this file to define the variables as pointers to an unusual
40 * structure to match GLUT.
41 */
42
43/*
44 * freeglut_internal.h uses some GL types, but including the GL header portably
45 * is a bit tricky, so we include freeglut_std.h here, which contains the
46 * necessary machinery. But this poses another problem, caused by the ugly
47 * original definition of the font constants in "classic" GLUT: They are defined
48 * as void* externally, so we move them temporarily out of the way by AN EXTREME
49 * CPP HACK.
50 */
51
52#define glutStrokeRoman glutStrokeRomanIGNOREME
53#define glutStrokeMonoRoman glutStrokeMonoRomanIGNOREME
54#define glutBitmap9By15 glutBitmap9By15IGNOREME
55#define glutBitmap8By13 glutBitmap8By13IGNOREME
56#define glutBitmapTimesRoman10 glutBitmapTimesRoman10IGNOREME
57#define glutBitmapTimesRoman24 glutBitmapTimesRoman24IGNOREME
58#define glutBitmapHelvetica10 glutBitmapHelvetica10IGNOREME
59#define glutBitmapHelvetica12 glutBitmapHelvetica12IGNOREME
60#define glutBitmapHelvetica18 glutBitmapHelvetica18IGNOREME
61
62#include <GL/freeglut_std.h>
63
64#undef glutStrokeRoman
65#undef glutStrokeMonoRoman
66#undef glutBitmap9By15
67#undef glutBitmap8By13
68#undef glutBitmapTimesRoman10
69#undef glutBitmapTimesRoman24
70#undef glutBitmapHelvetica10
71#undef glutBitmapHelvetica12
72#undef glutBitmapHelvetica18
73
74#include "../fg_internal.h"
75
76struct freeglutStrokeFont
77{
78 const char *name ;
79 int num_chars ;
80 void *ch ;
81 float top ;
82 float bottom ;
83};
84
85struct freeglutBitmapFont
86{
87 const char *name ;
88 const int num_chars ;
89 const int first ;
90 const void *ch ;
91};
92
93
94struct freeglutStrokeFont glutStrokeRoman ;
95struct freeglutStrokeFont glutStrokeMonoRoman ;
96
97struct freeglutBitmapFont glutBitmap9By15 ;
98struct freeglutBitmapFont glutBitmap8By13 ;
99struct freeglutBitmapFont glutBitmapTimesRoman10 ;
100struct freeglutBitmapFont glutBitmapTimesRoman24 ;
101struct freeglutBitmapFont glutBitmapHelvetica10 ;
102struct freeglutBitmapFont glutBitmapHelvetica12 ;
103struct freeglutBitmapFont glutBitmapHelvetica18 ;
104
105