layer0/os_gl.cpp (1,588 lines of code) (raw):
#include"os_predef.h"
#include"os_gl.h"
#include<stdio.h>
void PyMOLReadPixels(GLint x,
GLint y,
GLsizei width,
GLsizei height, GLenum format, GLenum type, GLvoid * pixels)
{
/* special "safe" version of glReadPixels for buggy OpenGL implementations */
GLint swapbytes, lsbfirst, rowlength;
GLint skiprows, skippixels, alignment;
/* Save current pixel store state. */
glGetIntegerv(GL_PACK_SWAP_BYTES, &swapbytes);
glGetIntegerv(GL_PACK_LSB_FIRST, &lsbfirst);
glGetIntegerv(GL_PACK_ROW_LENGTH, &rowlength);
glGetIntegerv(GL_PACK_SKIP_ROWS, &skiprows);
glGetIntegerv(GL_PACK_SKIP_PIXELS, &skippixels);
glGetIntegerv(GL_PACK_ALIGNMENT, &alignment);
/* Set desired pixel store state. */
glPixelStorei(GL_PACK_SWAP_BYTES, GL_FALSE);
glPixelStorei(GL_PACK_LSB_FIRST, GL_FALSE);
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
/* call glFlush & glFinish first to avoid full system crash on buggy
* ATI Radeon drivers, such as Radeon 7000 & 9000 series. (calling
* both is probably redundant and ultra-paranoid, but so what?) */
glFlush();
glFinish();
/* now get the pixels */
glReadPixels(x, y, width, height, format, type, pixels);
/* now flush once again just to be extra sure that we don't encounter
* the dreaded ATI driver bug system freeze-up */
glFlush();
glFinish();
/* and then estore current pixel store state. */
glPixelStorei(GL_PACK_SWAP_BYTES, swapbytes);
glPixelStorei(GL_PACK_LSB_FIRST, lsbfirst);
glPixelStorei(GL_PACK_ROW_LENGTH, rowlength);
glPixelStorei(GL_PACK_SKIP_ROWS, skiprows);
glPixelStorei(GL_PACK_SKIP_PIXELS, skippixels);
glPixelStorei(GL_PACK_ALIGNMENT, alignment);
}
void PyMOLDrawPixels(GLsizei width,
GLsizei height, GLenum format, GLenum type, const GLvoid * pixels)
{
/* special "safe" version of glDrawPixels for buggy OpenGL implementations */
GLint swapbytes, lsbfirst, rowlength;
GLint skiprows, skippixels, alignment;
/* Save current pixel store state. */
glGetIntegerv(GL_UNPACK_SWAP_BYTES, &swapbytes);
glGetIntegerv(GL_UNPACK_LSB_FIRST, &lsbfirst);
glGetIntegerv(GL_UNPACK_ROW_LENGTH, &rowlength);
glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skiprows);
glGetIntegerv(GL_UNPACK_SKIP_PIXELS, &skippixels);
glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);
/* Set desired pixel store state. */
glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);
glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glDrawPixels(width, height, format, type, pixels);
/* Restore current pixel store state. */
glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);
glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);
glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength);
glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
}
int PyMOLCheckOpenGLErr(const char *pos)
{
int flag = 0;
GLenum glerr = glGetError();
while(glerr != GL_NO_ERROR) {
printf("OpenGL-Error: Where? %s: glerr=%d\n", pos, glerr);
glerr = glGetError();
flag = 1;
}
return flag;
}
#ifdef _PYMOL_NO_GLUT
#ifndef _MACPYMOL_XCODE
int p_glutGet(GLenum type)
{
return 0;
}
#endif
#endif
#ifndef _PYMOL_NO_GLUT
#ifdef _PYMOL_PRETEND_GLUT_FONT
void plutBitmapCharacter(int c);
#endif
#ifdef _PYMOL_MIN_GLUT
/* NULL GLUT: Bare Minimum GLUT implementation for getting PyMOL up in
preparation for porting PYMOL to a non-GLUT environment (such as ActiveX)... */
#include<GL/glut.h>
static void (*idleFunc) (void) = NULL;
static int WinX = 640, WinY = 480;
int p_glutCreateWindow(const char *title)
{
char **myArgv, *myArgvv[2], myArgvvv[1024] = "pymol";
int myArgc;
myArgc = 1;
myArgvv[0] = myArgvvv;
myArgvv[1] = (void *) 0;
myArgv = myArgvv;
glutInit(&myArgc, myArgv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowPosition(0, 175);
glutInitWindowSize(WinX, WinY);
return glutCreateWindow(title);
}
void p_glutMainLoop(void)
{
while(1) {
if(idleFunc)
idleFunc();
}
}
void p_glutGameModeString(char *str)
{
}
void p_glutEnterGameMode(void)
{
}
void p_glutLeaveGameMode(void)
{
}
void p_glutBitmapCharacter(void *font, int character)
{
}
void p_glutSwapBuffers(void)
{
}
void p_glutPopWindow(void)
{
}
void p_glutShowWindow(void)
{
}
void p_glutHideWindow(void)
{
}
void p_glutDestroyWindow(int theWindow)
{
}
void p_glutReshapeWindow(int width, int height)
{
WinX = width;
WinY = height;
}
void p_glutFullScreen(void)
{
}
void p_glutPostRedisplay(void)
{
}
void p_glutInit(int *argcp, char **argv)
{
}
void p_glutInitDisplayMode(unsigned int mode)
{
}
void p_glutInitDisplayString(const char *string)
{
}
void p_glutInitWindowPosition(int x, int y)
{
}
void p_glutInitWindowSize(int width, int height)
{
WinX = width;
WinY = height;
}
int p_glutGet(GLenum type)
{
return 0;
}
int p_glutGetModifiers(void)
{
return 0;
}
void p_glutDisplayFunc(void (*func) (void))
{
}
void p_glutReshapeFunc(void (*func) (int width, int height))
{
}
void p_glutKeyboardFunc(void (*func) (unsigned char key, int x, int y))
{
}
void p_glutMouseFunc(void (*func) (int button, int state, int x, int y))
{
}
void p_glutMotionFunc(void (*func) (int x, int y))
{
}
void p_glutPassiveMotionFunc(void (*func) (int x, int y))
{
}
void p_glutSpecialFunc(void (*func) (int key, int x, int y))
{
}
void p_glutIdleFunc(void (*func) (void))
{
idleFunc = func;
}
void p_glutPositionWindow(int x, int y)
{
};
#endif
#ifdef _PYMOL_WX_GLUT
#include"P.h"
#include"main.h"
/* wxWindow-based GLUT emulation layer */
static void (*idleFunc) (void) = NULL;
static void (*displayFunc) (void) = NULL;
static void (*reshapeFunc) (int width, int height) = NULL;
static void (*mouseFunc) (int button, int state, int x, int y) = NULL;
static void (*keyboardFunc) (unsigned char key, int x, int y) = NULL;
static void (*specialFunc) (int key, int x, int y) = NULL;
static void (*motionFunc) (int x, int y) = NULL;
static void (*passiveMotionFunc) (int x, int y) = NULL;
static int WinX = 640, WinY = 480;
static int redisplay = true;
static int modifiers = 0;
int p_glutGetRedisplay(void)
{
int tmp = redisplay;
redisplay = false;
return (tmp);
}
void p_glutGameModeString(char *str)
{
}
void p_glutEnterGameMode(void)
{
}
void p_glutLeaveGameMode(void)
{
}
void p_glutHandleEvent(p_glut_event * ev)
{
/* NOTE: this function should be called with an unblocked interpreter,
just as if it were an asychronous thread */
modifiers = ev->mod;
switch (ev->event_code) {
case P_GLUT_IDLE_EVENT:
if(idleFunc)
idleFunc();
break;
case P_GLUT_DISPLAY_EVENT:
if(displayFunc)
displayFunc();
break;
case P_GLUT_RESHAPE_EVENT:
if(reshapeFunc)
reshapeFunc(ev->x, ev->y);
break;
case P_GLUT_MOUSE_EVENT:
if(mouseFunc)
mouseFunc(ev->input, ev->state, ev->x, ev->y);
break;
case P_GLUT_MOTION_EVENT:
if(motionFunc)
motionFunc(ev->x, ev->y);
break;
case P_GLUT_PASSIVE_MOTION_EVENT:
if(passiveMotionFunc)
passiveMotionFunc(ev->x, ev->y);
break;
case P_GLUT_CHAR_EVENT:
if(keyboardFunc)
keyboardFunc((unsigned char) ev->input, ev->x, ev->y);
break;
case P_GLUT_SPECIAL_EVENT:
if(specialFunc)
specialFunc(ev->input, ev->x, ev->y);
break;
}
}
int p_glutCreateWindow(const char *title)
{
return 0;
}
void p_glutMainLoop(void)
{
/* TRICK: for "pretend GLUT", this routine must return, so that the
host windowing system can keep control of the main thread... */
}
void p_glutBitmapCharacter(void *font, int character)
{
#ifdef _PYMOL_PRETEND_GLUT_FONT
plutBitmapCharacter(character);
#endif
}
void p_glutSwapBuffers(void)
{
PBlockLegacy();
PyRun_SimpleString("if hasattr(pymol,'_swap_buffers'): pymol._swap_buffers()");
PUnblockLegacy();
}
void p_glutPopWindow(void)
{
}
void p_glutShowWindow(void)
{
}
void p_glutHideWindow(void)
{
}
void p_glutDestroyWindow(int theWindow)
{
}
void p_glutReshapeWindow(int width, int height)
{
WinX = width;
WinY = height;
}
void p_glutFullScreen(void)
{
}
void p_glutPostRedisplay(void)
{
redisplay = true;
}
void p_glutInit(int *argcp, char **argv)
{
}
void p_glutInitDisplayMode(unsigned int mode)
{
}
void p_glutInitDisplayString(const char *string)
{
}
void p_glutInitWindowPosition(int x, int y)
{
}
void p_glutInitWindowSize(int width, int height)
{
WinX = width;
WinY = height;
}
int p_glutGet(GLenum type)
{
return 0;
}
int p_glutGetModifiers(void)
{
return modifiers;
}
void p_glutDisplayFunc(void (*func) (void))
{
displayFunc = func;
}
void p_glutReshapeFunc(void (*func) (int width, int height))
{
reshapeFunc = func;
}
void p_glutKeyboardFunc(void (*func) (unsigned char key, int x, int y))
{
keyboardFunc = func;
}
void p_glutMouseFunc(void (*func) (int button, int state, int x, int y))
{
mouseFunc = func;
}
void p_glutMotionFunc(void (*func) (int x, int y))
{
motionFunc = func;
}
void p_glutPassiveMotionFunc(void (*func) (int x, int y))
{
passiveMotionFunc = func;
}
void p_glutSpecialFunc(void (*func) (int key, int x, int y))
{
specialFunc = func;
}
void p_glutIdleFunc(void (*func) (void))
{
idleFunc = func;
}
void p_glutPositionWindow(int x, int y)
{
};
#endif
#ifdef _PYMOL_PRETEND_GLUT_FONT
/* BEGIN GLUT EXCERPT. THE FOLLOWING CODE IS:
* Copyright (c) Mark J. Kilgard, 1994.
* This program is freely distributable without licensing fees
* and is provided without guarantee or warrantee expressed or
* implied. This program is -not- in the public domain.
* Modifications by Warren L. DeLano, 2002.
*/
typedef struct {
const GLsizei width;
const GLsizei height;
const GLfloat xorig;
const GLfloat yorig;
const GLfloat advance;
const GLubyte *bitmap;
} BitmapCharRec, *BitmapCharPtr;
typedef struct {
const char *name;
const int num_chars;
const int first;
const BitmapCharRec *const *ch;
} BitmapFontRec, *BitmapFontPtr;
typedef void *PLUTbitmapFont;
/* GENERATED FILE -- DO NOT MODIFY */
#ifdef _WIN32
/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
a height or width of zero does not advance the raster position
as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch0data[] = { 0x0 };
static const BitmapCharRec ch0 = { 1, 1, 0, 0, 8, ch0data };
#else
static const BitmapCharRec ch0 = { 0, 0, 0, 0, 8, 0 };
#endif
#ifdef _WIN32
/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
a height or width of zero does not advance the raster position
as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch32data[] = { 0x0 };
static const BitmapCharRec ch32 = { 1, 1, 0, 0, 8, ch32data };
#else
static const BitmapCharRec ch32 = { 0, 0, 0, 0, 8, 0 };
#endif
#ifdef _WIN32
/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
a height or width of zero does not advance the raster position
as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch127data[] = { 0x0 };
static const BitmapCharRec ch127 = { 1, 1, 0, 0, 8, ch127data };
#else
static const BitmapCharRec ch127 = { 0, 0, 0, 0, 8, 0 };
#endif
#ifdef _WIN32
/* XXX Work around Microsoft OpenGL 1.1 bug where glBitmap with
a height or width of zero does not advance the raster position
as specified by OpenGL. (Cosmo OpenGL does not have this bug.) */
static const GLubyte ch160data[] = { 0x0 };
static const BitmapCharRec ch160 = { 1, 1, 0, 0, 8, ch160data };
#else
static const BitmapCharRec ch160 = { 0, 0, 0, 0, 8, 0 };
#endif
/* char: 0xff */
static const GLubyte ch255data[] = {
0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84, 0x0, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch255 = { 6, 12, -1, 2, 8, ch255data };
/* char: 0xfe */
static const GLubyte ch254data[] = {
0x80, 0x80, 0xb8, 0xc4, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80,
};
static const BitmapCharRec ch254 = { 6, 10, -1, 2, 8, ch254data };
/* char: 0xfd */
static const GLubyte ch253data[] = {
0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84, 0x0, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch253 = { 6, 12, -1, 2, 8, ch253data };
/* char: 0xfc */
static const GLubyte ch252data[] = {
0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch252 = { 6, 10, -1, 0, 8, ch252data };
/* char: 0xfb */
static const GLubyte ch251data[] = {
0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch251 = { 6, 10, -1, 0, 8, ch251data };
/* char: 0xfa */
static const GLubyte ch250data[] = {
0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch250 = { 6, 10, -1, 0, 8, ch250data };
/* char: 0xf9 */
static const GLubyte ch249data[] = {
0x74, 0x88, 0x88, 0x88, 0x88, 0x88, 0x0, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch249 = { 6, 10, -1, 0, 8, ch249data };
/* char: 0xf8 */
static const GLubyte ch248data[] = {
0x80, 0x78, 0xc4, 0xa4, 0x94, 0x8c, 0x78, 0x4,
};
static const BitmapCharRec ch248 = { 6, 8, -1, 1, 8, ch248data };
/* char: 0xf7 */
static const GLubyte ch247data[] = {
0x20, 0x20, 0x0, 0xf8, 0x0, 0x20, 0x20,
};
static const BitmapCharRec ch247 = { 5, 7, -1, -1, 8, ch247data };
/* char: 0xf6 */
static const GLubyte ch246data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch246 = { 6, 10, -1, 0, 8, ch246data };
/* char: 0xf5 */
static const GLubyte ch245data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x50, 0x28,
};
static const BitmapCharRec ch245 = { 6, 10, -1, 0, 8, ch245data };
/* char: 0xf4 */
static const GLubyte ch244data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch244 = { 6, 10, -1, 0, 8, ch244data };
/* char: 0xf3 */
static const GLubyte ch243data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch243 = { 6, 10, -1, 0, 8, ch243data };
/* char: 0xf2 */
static const GLubyte ch242data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x0, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch242 = { 6, 10, -1, 0, 8, ch242data };
/* char: 0xf1 */
static const GLubyte ch241data[] = {
0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8, 0x0, 0x0, 0x50, 0x28,
};
static const BitmapCharRec ch241 = { 6, 10, -1, 0, 8, ch241data };
/* char: 0xf0 */
static const GLubyte ch240data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78, 0x8, 0x50, 0x30, 0x48,
};
static const BitmapCharRec ch240 = { 6, 10, -1, 0, 8, ch240data };
/* char: 0xef */
static const GLubyte ch239data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x50, 0x50,
};
static const BitmapCharRec ch239 = { 5, 10, -1, 0, 8, ch239data };
/* char: 0xee */
static const GLubyte ch238data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x90, 0x60,
};
static const BitmapCharRec ch238 = { 5, 10, -1, 0, 8, ch238data };
/* char: 0xed */
static const GLubyte ch237data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x40, 0x20,
};
static const BitmapCharRec ch237 = { 5, 10, -1, 0, 8, ch237data };
/* char: 0xec */
static const GLubyte ch236data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x0, 0x20, 0x40,
};
static const BitmapCharRec ch236 = { 5, 10, -1, 0, 8, ch236data };
/* char: 0xeb */
static const GLubyte ch235data[] = {
0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch235 = { 6, 10, -1, 0, 8, ch235data };
/* char: 0xea */
static const GLubyte ch234data[] = {
0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch234 = { 6, 10, -1, 0, 8, ch234data };
/* char: 0xe9 */
static const GLubyte ch233data[] = {
0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch233 = { 6, 10, -1, 0, 8, ch233data };
/* char: 0xe8 */
static const GLubyte ch232data[] = {
0x78, 0x84, 0x80, 0xfc, 0x84, 0x78, 0x0, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch232 = { 6, 10, -1, 0, 8, ch232data };
/* char: 0xe7 */
static const GLubyte ch231data[] = {
0x20, 0x10, 0x78, 0x84, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch231 = { 6, 8, -1, 2, 8, ch231data };
/* char: 0xe6 */
static const GLubyte ch230data[] = {
0x6c, 0x92, 0x90, 0x7c, 0x12, 0x6c,
};
static const BitmapCharRec ch230 = { 7, 6, 0, 0, 8, ch230data };
/* char: 0xe5 */
static const GLubyte ch229data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x30, 0x48, 0x30,
};
static const BitmapCharRec ch229 = { 6, 10, -1, 0, 8, ch229data };
/* char: 0xe4 */
static const GLubyte ch228data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch228 = { 6, 10, -1, 0, 8, ch228data };
/* char: 0xe3 */
static const GLubyte ch227data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x50, 0x28,
};
static const BitmapCharRec ch227 = { 6, 10, -1, 0, 8, ch227data };
/* char: 0xe2 */
static const GLubyte ch226data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch226 = { 6, 10, -1, 0, 8, ch226data };
/* char: 0xe1 */
static const GLubyte ch225data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch225 = { 6, 10, -1, 0, 8, ch225data };
/* char: 0xe0 */
static const GLubyte ch224data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78, 0x0, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch224 = { 6, 10, -1, 0, 8, ch224data };
/* char: 0xdf */
static const GLubyte ch223data[] = {
0x80, 0xb8, 0xc4, 0x84, 0x84, 0xf8, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch223 = { 6, 9, -1, 1, 8, ch223data };
/* char: 0xde */
static const GLubyte ch222data[] = {
0x80, 0x80, 0x80, 0xf8, 0x84, 0x84, 0x84, 0xf8, 0x80,
};
static const BitmapCharRec ch222 = { 6, 9, -1, 0, 8, ch222data };
/* char: 0xdd */
static const GLubyte ch221data[] = {
0x20, 0x20, 0x20, 0x20, 0x50, 0x88, 0x88, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch221 = { 5, 10, -1, 0, 8, ch221data };
/* char: 0xdc */
static const GLubyte ch220data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch220 = { 6, 10, -1, 0, 8, ch220data };
/* char: 0xdb */
static const GLubyte ch219data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch219 = { 6, 10, -1, 0, 8, ch219data };
/* char: 0xda */
static const GLubyte ch218data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch218 = { 6, 10, -1, 0, 8, ch218data };
/* char: 0xd9 */
static const GLubyte ch217data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch217 = { 6, 10, -1, 0, 8, ch217data };
/* char: 0xd8 */
static const GLubyte ch216data[] = {
0x80, 0x78, 0xc4, 0xa4, 0xa4, 0xa4, 0x94, 0x94, 0x8c, 0x78, 0x4,
};
static const BitmapCharRec ch216 = { 6, 11, -1, 1, 8, ch216data };
/* char: 0xd7 */
static const GLubyte ch215data[] = {
0x84, 0x48, 0x30, 0x30, 0x48, 0x84,
};
static const BitmapCharRec ch215 = { 6, 6, -1, -1, 8, ch215data };
/* char: 0xd6 */
static const GLubyte ch214data[] = {
0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x28, 0x28,
};
static const BitmapCharRec ch214 = { 7, 10, 0, 0, 8, ch214data };
/* char: 0xd5 */
static const GLubyte ch213data[] = {
0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x28, 0x14,
};
static const BitmapCharRec ch213 = { 7, 10, 0, 0, 8, ch213data };
/* char: 0xd4 */
static const GLubyte ch212data[] = {
0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x24, 0x18,
};
static const BitmapCharRec ch212 = { 7, 10, 0, 0, 8, ch212data };
/* char: 0xd3 */
static const GLubyte ch211data[] = {
0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x10, 0x8,
};
static const BitmapCharRec ch211 = { 7, 10, 0, 0, 8, ch211data };
/* char: 0xd2 */
static const GLubyte ch210data[] = {
0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c, 0x0, 0x8, 0x10,
};
static const BitmapCharRec ch210 = { 7, 10, 0, 0, 8, ch210data };
/* char: 0xd1 */
static const GLubyte ch209data[] = {
0x82, 0x86, 0x8a, 0x92, 0xa2, 0xc2, 0x82, 0x0, 0x28, 0x14,
};
static const BitmapCharRec ch209 = { 7, 10, 0, 0, 8, ch209data };
/* char: 0xd0 */
static const GLubyte ch208data[] = {
0xfc, 0x42, 0x42, 0x42, 0xe2, 0x42, 0x42, 0x42, 0xfc,
};
static const BitmapCharRec ch208 = { 7, 9, 0, 0, 8, ch208data };
/* char: 0xcf */
static const GLubyte ch207data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x50, 0x50,
};
static const BitmapCharRec ch207 = { 5, 10, -1, 0, 8, ch207data };
/* char: 0xce */
static const GLubyte ch206data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch206 = { 5, 10, -1, 0, 8, ch206data };
/* char: 0xcd */
static const GLubyte ch205data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch205 = { 5, 10, -1, 0, 8, ch205data };
/* char: 0xcc */
static const GLubyte ch204data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch204 = { 5, 10, -1, 0, 8, ch204data };
/* char: 0xcb */
static const GLubyte ch203data[] = {
0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch203 = { 6, 10, -1, 0, 8, ch203data };
/* char: 0xca */
static const GLubyte ch202data[] = {
0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch202 = { 6, 10, -1, 0, 8, ch202data };
/* char: 0xc9 */
static const GLubyte ch201data[] = {
0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch201 = { 6, 10, -1, 0, 8, ch201data };
/* char: 0xc8 */
static const GLubyte ch200data[] = {
0xfc, 0x80, 0x80, 0xf0, 0x80, 0x80, 0xfc, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch200 = { 6, 10, -1, 0, 8, ch200data };
/* char: 0xc7 */
static const GLubyte ch199data[] = {
0x20, 0x10, 0x78, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch199 = { 6, 11, -1, 2, 8, ch199data };
/* char: 0xc6 */
static const GLubyte ch198data[] = {
0x9e, 0x90, 0x90, 0xf0, 0x9c, 0x90, 0x90, 0x90, 0x6e,
};
static const BitmapCharRec ch198 = { 7, 9, 0, 0, 8, ch198data };
/* char: 0xc5 */
static const GLubyte ch197data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x30, 0x48, 0x30,
};
static const BitmapCharRec ch197 = { 6, 10, -1, 0, 8, ch197data };
/* char: 0xc4 */
static const GLubyte ch196data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x48, 0x48,
};
static const BitmapCharRec ch196 = { 6, 10, -1, 0, 8, ch196data };
/* char: 0xc3 */
static const GLubyte ch195data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x50, 0x28,
};
static const BitmapCharRec ch195 = { 6, 10, -1, 0, 8, ch195data };
/* char: 0xc2 */
static const GLubyte ch194data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x48, 0x30,
};
static const BitmapCharRec ch194 = { 6, 10, -1, 0, 8, ch194data };
/* char: 0xc1 */
static const GLubyte ch193data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x20, 0x10,
};
static const BitmapCharRec ch193 = { 6, 10, -1, 0, 8, ch193data };
/* char: 0xc0 */
static const GLubyte ch192data[] = {
0x84, 0x84, 0xfc, 0x84, 0x84, 0x48, 0x30, 0x0, 0x10, 0x20,
};
static const BitmapCharRec ch192 = { 6, 10, -1, 0, 8, ch192data };
/* char: 0xbf */
static const GLubyte ch191data[] = {
0x78, 0x84, 0x84, 0x80, 0x40, 0x20, 0x20, 0x0, 0x20,
};
static const BitmapCharRec ch191 = { 6, 9, -1, 0, 8, ch191data };
/* char: 0xbe */
static const GLubyte ch190data[] = {
0x6, 0x1a, 0x12, 0xa, 0x66, 0x92, 0x10, 0x20, 0x90, 0x60,
};
static const BitmapCharRec ch190 = { 7, 10, 0, 0, 8, ch190data };
/* char: 0xbd */
static const GLubyte ch189data[] = {
0x1e, 0x10, 0xc, 0x2, 0xf2, 0x4c, 0x40, 0x40, 0xc0, 0x40,
};
static const BitmapCharRec ch189 = { 7, 10, 0, 0, 8, ch189data };
/* char: 0xbc */
static const GLubyte ch188data[] = {
0x6, 0x1a, 0x12, 0xa, 0xe6, 0x42, 0x40, 0x40, 0xc0, 0x40,
};
static const BitmapCharRec ch188 = { 7, 10, 0, 0, 8, ch188data };
/* char: 0xbb */
static const GLubyte ch187data[] = {
0x90, 0x48, 0x24, 0x12, 0x24, 0x48, 0x90,
};
static const BitmapCharRec ch187 = { 7, 7, 0, -1, 8, ch187data };
/* char: 0xba */
static const GLubyte ch186data[] = {
0xf0, 0x0, 0x60, 0x90, 0x90, 0x60,
};
static const BitmapCharRec ch186 = { 4, 6, -1, -3, 8, ch186data };
/* char: 0xb9 */
static const GLubyte ch185data[] = {
0xe0, 0x40, 0x40, 0x40, 0xc0, 0x40,
};
static const BitmapCharRec ch185 = { 3, 6, -1, -4, 8, ch185data };
/* char: 0xb8 */
static const GLubyte ch184data[] = {
0xc0, 0x40,
};
static const BitmapCharRec ch184 = { 2, 2, -3, 2, 8, ch184data };
/* char: 0xb7 */
static const GLubyte ch183data[] = {
0xc0,
};
static const BitmapCharRec ch183 = { 2, 1, -3, -4, 8, ch183data };
/* char: 0xb6 */
static const GLubyte ch182data[] = {
0x28, 0x28, 0x28, 0x28, 0x68, 0xe8, 0xe8, 0xe8, 0x7c,
};
static const BitmapCharRec ch182 = { 6, 9, -1, 0, 8, ch182data };
/* char: 0xb5 */
static const GLubyte ch181data[] = {
0x80, 0xb4, 0xcc, 0x84, 0x84, 0x84, 0x84,
};
static const BitmapCharRec ch181 = { 6, 7, -1, 1, 8, ch181data };
/* char: 0xb4 */
static const GLubyte ch180data[] = {
0x80, 0x40,
};
static const BitmapCharRec ch180 = { 2, 2, -3, -8, 8, ch180data };
/* char: 0xb3 */
static const GLubyte ch179data[] = {
0x60, 0x90, 0x10, 0x20, 0x90, 0x60,
};
static const BitmapCharRec ch179 = { 4, 6, -1, -4, 8, ch179data };
/* char: 0xb2 */
static const GLubyte ch178data[] = {
0xf0, 0x80, 0x60, 0x10, 0x90, 0x60,
};
static const BitmapCharRec ch178 = { 4, 6, -1, -4, 8, ch178data };
/* char: 0xb1 */
static const GLubyte ch177data[] = {
0xf8, 0x0, 0x20, 0x20, 0xf8, 0x20, 0x20,
};
static const BitmapCharRec ch177 = { 5, 7, -1, -1, 8, ch177data };
/* char: 0xb0 */
static const GLubyte ch176data[] = {
0x60, 0x90, 0x90, 0x60,
};
static const BitmapCharRec ch176 = { 4, 4, -2, -5, 8, ch176data };
/* char: 0xaf */
static const GLubyte ch175data[] = {
0xfc,
};
static const BitmapCharRec ch175 = { 6, 1, -1, -8, 8, ch175data };
/* char: 0xae */
static const GLubyte ch174data[] = {
0x38, 0x44, 0xaa, 0xb2, 0xaa, 0xaa, 0x92, 0x44, 0x38,
};
static const BitmapCharRec ch174 = { 7, 9, 0, -1, 8, ch174data };
/* char: 0xad */
static const GLubyte ch173data[] = {
0xfc,
};
static const BitmapCharRec ch173 = { 6, 1, -1, -4, 8, ch173data };
/* char: 0xac */
static const GLubyte ch172data[] = {
0x4, 0x4, 0x4, 0xfc,
};
static const BitmapCharRec ch172 = { 6, 4, -1, -1, 8, ch172data };
/* char: 0xab */
static const GLubyte ch171data[] = {
0x12, 0x24, 0x48, 0x90, 0x48, 0x24, 0x12,
};
static const BitmapCharRec ch171 = { 7, 7, 0, -1, 8, ch171data };
/* char: 0xaa */
static const GLubyte ch170data[] = {
0xf8, 0x0, 0x78, 0x88, 0x78, 0x8, 0x70,
};
static const BitmapCharRec ch170 = { 5, 7, -1, -2, 8, ch170data };
/* char: 0xa9 */
static const GLubyte ch169data[] = {
0x38, 0x44, 0x92, 0xaa, 0xa2, 0xaa, 0x92, 0x44, 0x38,
};
static const BitmapCharRec ch169 = { 7, 9, 0, -1, 8, ch169data };
/* char: 0xa8 */
static const GLubyte ch168data[] = {
0xd8,
};
static const BitmapCharRec ch168 = { 5, 1, -1, -8, 8, ch168data };
/* char: 0xa7 */
static const GLubyte ch167data[] = {
0x60, 0x90, 0x10, 0x60, 0x90, 0x90, 0x60, 0x80, 0x90, 0x60,
};
static const BitmapCharRec ch167 = { 4, 10, -2, 0, 8, ch167data };
/* char: 0xa6 */
static const GLubyte ch166data[] = {
0x80, 0x80, 0x80, 0x80, 0x0, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch166 = { 1, 9, -3, 0, 8, ch166data };
/* char: 0xa5 */
static const GLubyte ch165data[] = {
0x10, 0x10, 0x7c, 0x10, 0x7c, 0x28, 0x44, 0x82, 0x82,
};
static const BitmapCharRec ch165 = { 7, 9, 0, 0, 8, ch165data };
/* char: 0xa4 */
static const GLubyte ch164data[] = {
0x84, 0x78, 0x48, 0x48, 0x78, 0x84,
};
static const BitmapCharRec ch164 = { 6, 6, -1, -1, 8, ch164data };
/* char: 0xa3 */
static const GLubyte ch163data[] = {
0xdc, 0x62, 0x20, 0x20, 0x20, 0x70, 0x20, 0x22, 0x1c,
};
static const BitmapCharRec ch163 = { 7, 9, 0, 0, 8, ch163data };
/* char: 0xa2 */
static const GLubyte ch162data[] = {
0x20, 0x70, 0xa8, 0xa0, 0xa0, 0xa8, 0x70, 0x20,
};
static const BitmapCharRec ch162 = { 5, 8, -1, -1, 8, ch162data };
/* char: 0xa1 */
static const GLubyte ch161data[] = {
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x80,
};
static const BitmapCharRec ch161 = { 1, 9, -3, 0, 8, ch161data };
/* char: 0x7e '~' */
static const GLubyte ch126data[] = {
0x90, 0xa8, 0x48,
};
static const BitmapCharRec ch126 = { 5, 3, -1, -6, 8, ch126data };
/* char: 0x7d '}' */
static const GLubyte ch125data[] = {
0xe0, 0x10, 0x10, 0x20, 0x18, 0x20, 0x10, 0x10, 0xe0,
};
static const BitmapCharRec ch125 = { 5, 9, -1, 0, 8, ch125data };
/* char: 0x7c '|' */
static const GLubyte ch124data[] = {
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch124 = { 1, 9, -3, 0, 8, ch124data };
/* char: 0x7b '{' */
static const GLubyte ch123data[] = {
0x38, 0x40, 0x40, 0x20, 0xc0, 0x20, 0x40, 0x40, 0x38,
};
static const BitmapCharRec ch123 = { 5, 9, -2, 0, 8, ch123data };
/* char: 0x7a 'z' */
static const GLubyte ch122data[] = {
0xfc, 0x40, 0x20, 0x10, 0x8, 0xfc,
};
static const BitmapCharRec ch122 = { 6, 6, -1, 0, 8, ch122data };
/* char: 0x79 'y' */
static const GLubyte ch121data[] = {
0x78, 0x84, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x84,
};
static const BitmapCharRec ch121 = { 6, 8, -1, 2, 8, ch121data };
/* char: 0x78 'x' */
static const GLubyte ch120data[] = {
0x84, 0x48, 0x30, 0x30, 0x48, 0x84,
};
static const BitmapCharRec ch120 = { 6, 6, -1, 0, 8, ch120data };
/* char: 0x77 'w' */
static const GLubyte ch119data[] = {
0x44, 0xaa, 0x92, 0x92, 0x82, 0x82,
};
static const BitmapCharRec ch119 = { 7, 6, 0, 0, 8, ch119data };
/* char: 0x76 'v' */
static const GLubyte ch118data[] = {
0x20, 0x50, 0x50, 0x88, 0x88, 0x88,
};
static const BitmapCharRec ch118 = { 5, 6, -1, 0, 8, ch118data };
/* char: 0x75 'u' */
static const GLubyte ch117data[] = {
0x74, 0x88, 0x88, 0x88, 0x88, 0x88,
};
static const BitmapCharRec ch117 = { 6, 6, -1, 0, 8, ch117data };
/* char: 0x74 't' */
static const GLubyte ch116data[] = {
0x38, 0x44, 0x40, 0x40, 0x40, 0xf8, 0x40, 0x40,
};
static const BitmapCharRec ch116 = { 6, 8, -1, 0, 8, ch116data };
/* char: 0x73 's' */
static const GLubyte ch115data[] = {
0x78, 0x84, 0x18, 0x60, 0x84, 0x78,
};
static const BitmapCharRec ch115 = { 6, 6, -1, 0, 8, ch115data };
/* char: 0x72 'r' */
static const GLubyte ch114data[] = {
0x40, 0x40, 0x40, 0x40, 0x44, 0xb8,
};
static const BitmapCharRec ch114 = { 6, 6, -1, 0, 8, ch114data };
/* char: 0x71 'q' */
static const GLubyte ch113data[] = {
0x4, 0x4, 0x4, 0x74, 0x8c, 0x84, 0x8c, 0x74,
};
static const BitmapCharRec ch113 = { 6, 8, -1, 2, 8, ch113data };
/* char: 0x70 'p' */
static const GLubyte ch112data[] = {
0x80, 0x80, 0x80, 0xb8, 0xc4, 0x84, 0xc4, 0xb8,
};
static const BitmapCharRec ch112 = { 6, 8, -1, 2, 8, ch112data };
/* char: 0x6f 'o' */
static const GLubyte ch111data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch111 = { 6, 6, -1, 0, 8, ch111data };
/* char: 0x6e 'n' */
static const GLubyte ch110data[] = {
0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8,
};
static const BitmapCharRec ch110 = { 6, 6, -1, 0, 8, ch110data };
/* char: 0x6d 'm' */
static const GLubyte ch109data[] = {
0x82, 0x92, 0x92, 0x92, 0x92, 0xec,
};
static const BitmapCharRec ch109 = { 7, 6, 0, 0, 8, ch109data };
/* char: 0x6c 'l' */
static const GLubyte ch108data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x60,
};
static const BitmapCharRec ch108 = { 5, 9, -1, 0, 8, ch108data };
/* char: 0x6b 'k' */
static const GLubyte ch107data[] = {
0x84, 0x88, 0x90, 0xe0, 0x90, 0x88, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch107 = { 6, 9, -1, 0, 8, ch107data };
/* char: 0x6a 'j' */
static const GLubyte ch106data[] = {
0x70, 0x88, 0x88, 0x8, 0x8, 0x8, 0x8, 0x18, 0x0, 0x8,
};
static const BitmapCharRec ch106 = { 5, 10, -1, 2, 8, ch106data };
/* char: 0x69 'i' */
static const GLubyte ch105data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x60, 0x0, 0x20,
};
static const BitmapCharRec ch105 = { 5, 8, -1, 0, 8, ch105data };
/* char: 0x68 'h' */
static const GLubyte ch104data[] = {
0x84, 0x84, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch104 = { 6, 9, -1, 0, 8, ch104data };
/* char: 0x67 'g' */
static const GLubyte ch103data[] = {
0x78, 0x84, 0x78, 0x80, 0x70, 0x88, 0x88, 0x74,
};
static const BitmapCharRec ch103 = { 6, 8, -1, 2, 8, ch103data };
/* char: 0x66 'f' */
static const GLubyte ch102data[] = {
0x40, 0x40, 0x40, 0x40, 0xf8, 0x40, 0x40, 0x44, 0x38,
};
static const BitmapCharRec ch102 = { 6, 9, -1, 0, 8, ch102data };
/* char: 0x65 'e' */
static const GLubyte ch101data[] = {
0x78, 0x84, 0x80, 0xfc, 0x84, 0x78,
};
static const BitmapCharRec ch101 = { 6, 6, -1, 0, 8, ch101data };
/* char: 0x64 'd' */
static const GLubyte ch100data[] = {
0x74, 0x8c, 0x84, 0x84, 0x8c, 0x74, 0x4, 0x4, 0x4,
};
static const BitmapCharRec ch100 = { 6, 9, -1, 0, 8, ch100data };
/* char: 0x63 'c' */
static const GLubyte ch99data[] = {
0x78, 0x84, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch99 = { 6, 6, -1, 0, 8, ch99data };
/* char: 0x62 'b' */
static const GLubyte ch98data[] = {
0xb8, 0xc4, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch98 = { 6, 9, -1, 0, 8, ch98data };
/* char: 0x61 'a' */
static const GLubyte ch97data[] = {
0x74, 0x8c, 0x84, 0x7c, 0x4, 0x78,
};
static const BitmapCharRec ch97 = { 6, 6, -1, 0, 8, ch97data };
/* char: 0x60 '`' */
static const GLubyte ch96data[] = {
0x10, 0x60, 0xe0,
};
static const BitmapCharRec ch96 = { 4, 3, -2, -6, 8, ch96data };
/* char: 0x5f '_' */
static const GLubyte ch95data[] = {
0xfe,
};
static const BitmapCharRec ch95 = { 7, 1, 0, 1, 8, ch95data };
/* char: 0x5e '^' */
static const GLubyte ch94data[] = {
0x88, 0x50, 0x20,
};
static const BitmapCharRec ch94 = { 5, 3, -1, -6, 8, ch94data };
/* char: 0x5d ']' */
static const GLubyte ch93data[] = {
0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xf0,
};
static const BitmapCharRec ch93 = { 4, 9, -1, 0, 8, ch93data };
/* char: 0x5c '\' */
static const GLubyte ch92data[] = {
0x2, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x80,
};
static const BitmapCharRec ch92 = { 7, 9, 0, 0, 8, ch92data };
/* char: 0x5b '[' */
static const GLubyte ch91data[] = {
0xf0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0,
};
static const BitmapCharRec ch91 = { 4, 9, -2, 0, 8, ch91data };
/* char: 0x5a 'Z' */
static const GLubyte ch90data[] = {
0xfc, 0x80, 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0xfc,
};
static const BitmapCharRec ch90 = { 6, 9, -1, 0, 8, ch90data };
/* char: 0x59 'Y' */
static const GLubyte ch89data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0x28, 0x44, 0x82, 0x82,
};
static const BitmapCharRec ch89 = { 7, 9, 0, 0, 8, ch89data };
/* char: 0x58 'X' */
static const GLubyte ch88data[] = {
0x82, 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x82,
};
static const BitmapCharRec ch88 = { 7, 9, 0, 0, 8, ch88data };
/* char: 0x57 'W' */
static const GLubyte ch87data[] = {
0x44, 0xaa, 0x92, 0x92, 0x92, 0x82, 0x82, 0x82, 0x82,
};
static const BitmapCharRec ch87 = { 7, 9, 0, 0, 8, ch87data };
/* char: 0x56 'V' */
static const GLubyte ch86data[] = {
0x10, 0x28, 0x28, 0x28, 0x44, 0x44, 0x44, 0x82, 0x82,
};
static const BitmapCharRec ch86 = { 7, 9, 0, 0, 8, ch86data };
/* char: 0x55 'U' */
static const GLubyte ch85data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
};
static const BitmapCharRec ch85 = { 6, 9, -1, 0, 8, ch85data };
/* char: 0x54 'T' */
static const GLubyte ch84data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xfe,
};
static const BitmapCharRec ch84 = { 7, 9, 0, 0, 8, ch84data };
/* char: 0x53 'S' */
static const GLubyte ch83data[] = {
0x78, 0x84, 0x4, 0x4, 0x78, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch83 = { 6, 9, -1, 0, 8, ch83data };
/* char: 0x52 'R' */
static const GLubyte ch82data[] = {
0x84, 0x88, 0x90, 0xa0, 0xf8, 0x84, 0x84, 0x84, 0xf8,
};
static const BitmapCharRec ch82 = { 6, 9, -1, 0, 8, ch82data };
/* char: 0x51 'Q' */
static const GLubyte ch81data[] = {
0x4, 0x78, 0x94, 0xa4, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch81 = { 6, 10, -1, 1, 8, ch81data };
/* char: 0x50 'P' */
static const GLubyte ch80data[] = {
0x80, 0x80, 0x80, 0x80, 0xf8, 0x84, 0x84, 0x84, 0xf8,
};
static const BitmapCharRec ch80 = { 6, 9, -1, 0, 8, ch80data };
/* char: 0x4f 'O' */
static const GLubyte ch79data[] = {
0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch79 = { 6, 9, -1, 0, 8, ch79data };
/* char: 0x4e 'N' */
static const GLubyte ch78data[] = {
0x84, 0x84, 0x84, 0x8c, 0x94, 0xa4, 0xc4, 0x84, 0x84,
};
static const BitmapCharRec ch78 = { 6, 9, -1, 0, 8, ch78data };
/* char: 0x4d 'M' */
static const GLubyte ch77data[] = {
0x82, 0x82, 0x82, 0x92, 0x92, 0xaa, 0xc6, 0x82, 0x82,
};
static const BitmapCharRec ch77 = { 7, 9, 0, 0, 8, ch77data };
/* char: 0x4c 'L' */
static const GLubyte ch76data[] = {
0xfc, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch76 = { 6, 9, -1, 0, 8, ch76data };
/* char: 0x4b 'K' */
static const GLubyte ch75data[] = {
0x84, 0x88, 0x90, 0xa0, 0xc0, 0xa0, 0x90, 0x88, 0x84,
};
static const BitmapCharRec ch75 = { 6, 9, -1, 0, 8, ch75data };
/* char: 0x4a 'J' */
static const GLubyte ch74data[] = {
0x70, 0x88, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x3c,
};
static const BitmapCharRec ch74 = { 6, 9, -1, 0, 8, ch74data };
/* char: 0x49 'I' */
static const GLubyte ch73data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xf8,
};
static const BitmapCharRec ch73 = { 5, 9, -1, 0, 8, ch73data };
/* char: 0x48 'H' */
static const GLubyte ch72data[] = {
0x84, 0x84, 0x84, 0x84, 0xfc, 0x84, 0x84, 0x84, 0x84,
};
static const BitmapCharRec ch72 = { 6, 9, -1, 0, 8, ch72data };
/* char: 0x47 'G' */
static const GLubyte ch71data[] = {
0x74, 0x8c, 0x84, 0x9c, 0x80, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch71 = { 6, 9, -1, 0, 8, ch71data };
/* char: 0x46 'F' */
static const GLubyte ch70data[] = {
0x80, 0x80, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80, 0xfc,
};
static const BitmapCharRec ch70 = { 6, 9, -1, 0, 8, ch70data };
/* char: 0x45 'E' */
static const GLubyte ch69data[] = {
0xfc, 0x80, 0x80, 0x80, 0xf0, 0x80, 0x80, 0x80, 0xfc,
};
static const BitmapCharRec ch69 = { 6, 9, -1, 0, 8, ch69data };
/* char: 0x44 'D' */
static const GLubyte ch68data[] = {
0xfc, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xfc,
};
static const BitmapCharRec ch68 = { 7, 9, 0, 0, 8, ch68data };
/* char: 0x43 'C' */
static const GLubyte ch67data[] = {
0x78, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x84, 0x78,
};
static const BitmapCharRec ch67 = { 6, 9, -1, 0, 8, ch67data };
/* char: 0x42 'B' */
static const GLubyte ch66data[] = {
0xfc, 0x42, 0x42, 0x42, 0x7c, 0x42, 0x42, 0x42, 0xfc,
};
static const BitmapCharRec ch66 = { 7, 9, 0, 0, 8, ch66data };
/* char: 0x41 'A' */
static const GLubyte ch65data[] = {
0x84, 0x84, 0x84, 0xfc, 0x84, 0x84, 0x84, 0x48, 0x30,
};
static const BitmapCharRec ch65 = { 6, 9, -1, 0, 8, ch65data };
/* char: 0x40 '@' */
static const GLubyte ch64data[] = {
0x78, 0x80, 0x94, 0xac, 0xa4, 0x9c, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch64 = { 6, 9, -1, 0, 8, ch64data };
/* char: 0x3f '?' */
static const GLubyte ch63data[] = {
0x10, 0x0, 0x10, 0x10, 0x8, 0x4, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch63 = { 6, 9, -1, 0, 8, ch63data };
/* char: 0x3e '>' */
static const GLubyte ch62data[] = {
0x80, 0x40, 0x20, 0x10, 0x8, 0x10, 0x20, 0x40, 0x80,
};
static const BitmapCharRec ch62 = { 5, 9, -1, 0, 8, ch62data };
/* char: 0x3d '=' */
static const GLubyte ch61data[] = {
0xfc, 0x0, 0x0, 0xfc,
};
static const BitmapCharRec ch61 = { 6, 4, -1, -2, 8, ch61data };
/* char: 0x3c '<' */
static const GLubyte ch60data[] = {
0x8, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x8,
};
static const BitmapCharRec ch60 = { 5, 9, -2, 0, 8, ch60data };
/* char: 0x3b ';' */
static const GLubyte ch59data[] = {
0x80, 0x60, 0x70, 0x0, 0x0, 0x20, 0x70, 0x20,
};
static const BitmapCharRec ch59 = { 4, 8, -1, 1, 8, ch59data };
/* char: 0x3a ':' */
static const GLubyte ch58data[] = {
0x40, 0xe0, 0x40, 0x0, 0x0, 0x40, 0xe0, 0x40,
};
static const BitmapCharRec ch58 = { 3, 8, -2, 1, 8, ch58data };
/* char: 0x39 '9' */
static const GLubyte ch57data[] = {
0x70, 0x8, 0x4, 0x4, 0x74, 0x8c, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch57 = { 6, 9, -1, 0, 8, ch57data };
/* char: 0x38 '8' */
static const GLubyte ch56data[] = {
0x78, 0x84, 0x84, 0x84, 0x78, 0x84, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch56 = { 6, 9, -1, 0, 8, ch56data };
/* char: 0x37 '7' */
static const GLubyte ch55data[] = {
0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x8, 0x4, 0xfc,
};
static const BitmapCharRec ch55 = { 6, 9, -1, 0, 8, ch55data };
/* char: 0x36 '6' */
static const GLubyte ch54data[] = {
0x78, 0x84, 0x84, 0xc4, 0xb8, 0x80, 0x80, 0x40, 0x38,
};
static const BitmapCharRec ch54 = { 6, 9, -1, 0, 8, ch54data };
/* char: 0x35 '5' */
static const GLubyte ch53data[] = {
0x78, 0x84, 0x4, 0x4, 0xc4, 0xb8, 0x80, 0x80, 0xfc,
};
static const BitmapCharRec ch53 = { 6, 9, -1, 0, 8, ch53data };
/* char: 0x34 '4' */
static const GLubyte ch52data[] = {
0x8, 0x8, 0xfc, 0x88, 0x88, 0x48, 0x28, 0x18, 0x8,
};
static const BitmapCharRec ch52 = { 6, 9, -1, 0, 8, ch52data };
/* char: 0x33 '3' */
static const GLubyte ch51data[] = {
0x78, 0x84, 0x4, 0x4, 0x38, 0x10, 0x8, 0x4, 0xfc,
};
static const BitmapCharRec ch51 = { 6, 9, -1, 0, 8, ch51data };
/* char: 0x32 '2' */
static const GLubyte ch50data[] = {
0xfc, 0x80, 0x40, 0x30, 0x8, 0x4, 0x84, 0x84, 0x78,
};
static const BitmapCharRec ch50 = { 6, 9, -1, 0, 8, ch50data };
/* char: 0x31 '1' */
static const GLubyte ch49data[] = {
0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa0, 0x60, 0x20,
};
static const BitmapCharRec ch49 = { 5, 9, -1, 0, 8, ch49data };
/* char: 0x30 '0' */
static const GLubyte ch48data[] = {
0x30, 0x48, 0x84, 0x84, 0x84, 0x84, 0x84, 0x48, 0x30,
};
static const BitmapCharRec ch48 = { 6, 9, -1, 0, 8, ch48data };
/* char: 0x2f '/' */
static const GLubyte ch47data[] = {
0x80, 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x2,
};
static const BitmapCharRec ch47 = { 7, 9, 0, 0, 8, ch47data };
/* char: 0x2e '.' */
static const GLubyte ch46data[] = {
0x40, 0xe0, 0x40,
};
static const BitmapCharRec ch46 = { 3, 3, -2, 1, 8, ch46data };
/* char: 0x2d '-' */
static const GLubyte ch45data[] = {
0xfc,
};
static const BitmapCharRec ch45 = { 6, 1, -1, -4, 8, ch45data };
/* char: 0x2c ',' */
static const GLubyte ch44data[] = {
0x80, 0x60, 0x70,
};
static const BitmapCharRec ch44 = { 4, 3, -1, 1, 8, ch44data };
/* char: 0x2b '+' */
static const GLubyte ch43data[] = {
0x20, 0x20, 0xf8, 0x20, 0x20,
};
static const BitmapCharRec ch43 = { 5, 5, -1, -2, 8, ch43data };
/* char: 0x2a '*' */
static const GLubyte ch42data[] = {
0x48, 0x30, 0xfc, 0x30, 0x48,
};
static const BitmapCharRec ch42 = { 6, 5, -1, -2, 8, ch42data };
/* char: 0x29 ')' */
static const GLubyte ch41data[] = {
0x80, 0x40, 0x40, 0x20, 0x20, 0x20, 0x40, 0x40, 0x80,
};
static const BitmapCharRec ch41 = { 3, 9, -2, 0, 8, ch41data };
/* char: 0x28 '(' */
static const GLubyte ch40data[] = {
0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20,
};
static const BitmapCharRec ch40 = { 3, 9, -3, 0, 8, ch40data };
/* char: 0x27 ''' */
static const GLubyte ch39data[] = {
0x80, 0x60, 0x70,
};
static const BitmapCharRec ch39 = { 4, 3, -1, -6, 8, ch39data };
/* char: 0x26 '&' */
static const GLubyte ch38data[] = {
0x74, 0x88, 0x94, 0x60, 0x90, 0x90, 0x60,
};
static const BitmapCharRec ch38 = { 6, 7, -1, 0, 8, ch38data };
/* char: 0x25 '%' */
static const GLubyte ch37data[] = {
0x88, 0x54, 0x48, 0x20, 0x10, 0x10, 0x48, 0xa4, 0x44,
};
static const BitmapCharRec ch37 = { 6, 9, -1, 0, 8, ch37data };
/* char: 0x24 '$' */
static const GLubyte ch36data[] = {
0x20, 0xf0, 0x28, 0x70, 0xa0, 0x78, 0x20,
};
static const BitmapCharRec ch36 = { 5, 7, -1, -1, 8, ch36data };
/* char: 0x23 '#' */
static const GLubyte ch35data[] = {
0x48, 0x48, 0xfc, 0x48, 0xfc, 0x48, 0x48,
};
static const BitmapCharRec ch35 = { 6, 7, -1, -1, 8, ch35data };
/* char: 0x22 '"' */
static const GLubyte ch34data[] = {
0x90, 0x90, 0x90,
};
static const BitmapCharRec ch34 = { 4, 3, -2, -6, 8, ch34data };
/* char: 0x21 '!' */
static const GLubyte ch33data[] = {
0x80, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch33 = { 1, 9, -3, 0, 8, ch33data };
/* char: 0x1f */
static const GLubyte ch31data[] = {
0x80,
};
static const BitmapCharRec ch31 = { 1, 1, -3, -3, 8, ch31data };
/* char: 0x1e */
static const GLubyte ch30data[] = {
0xdc, 0x62, 0x20, 0x20, 0x20, 0x70, 0x20, 0x22, 0x1c,
};
static const BitmapCharRec ch30 = { 7, 9, 0, 0, 8, ch30data };
/* char: 0x1d */
static const GLubyte ch29data[] = {
0x80, 0x40, 0xfe, 0x10, 0xfe, 0x4, 0x2,
};
static const BitmapCharRec ch29 = { 7, 7, 0, 0, 8, ch29data };
/* char: 0x1c */
static const GLubyte ch28data[] = {
0x88, 0x48, 0x48, 0x48, 0x48, 0xfc,
};
static const BitmapCharRec ch28 = { 6, 6, -1, 0, 8, ch28data };
/* char: 0x1b */
static const GLubyte ch27data[] = {
0xfe, 0x80, 0x20, 0x8, 0x2, 0x8, 0x20, 0x80,
};
static const BitmapCharRec ch27 = { 7, 8, 0, 0, 8, ch27data };
/* char: 0x1a */
static const GLubyte ch26data[] = {
0xfe, 0x2, 0x8, 0x20, 0x80, 0x20, 0x8, 0x2,
};
static const BitmapCharRec ch26 = { 7, 8, 0, 0, 8, ch26data };
/* char: 0x19 */
static const GLubyte ch25data[] = {
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch25 = { 1, 13, -3, 2, 8, ch25data };
/* char: 0x18 */
static const GLubyte ch24data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0xff,
};
static const BitmapCharRec ch24 = { 8, 6, 0, 2, 8, ch24data };
/* char: 0x17 */
static const GLubyte ch23data[] = {
0xff, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};
static const BitmapCharRec ch23 = { 8, 8, 0, -3, 8, ch23data };
/* char: 0x16 */
static const GLubyte ch22data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};
static const BitmapCharRec ch22 = { 4, 13, 0, 2, 8, ch22data };
/* char: 0x15 */
static const GLubyte ch21data[] = {
0x80, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch21 = { 5, 13, -3, 2, 8, ch21data };
/* char: 0x14 */
static const GLubyte ch20data[] = {
0xff,
};
static const BitmapCharRec ch20 = { 8, 1, 0, 1, 8, ch20data };
/* char: 0x13 */
static const GLubyte ch19data[] = {
0xff,
};
static const BitmapCharRec ch19 = { 8, 1, 0, -1, 8, ch19data };
/* char: 0x12 */
static const GLubyte ch18data[] = {
0xff,
};
static const BitmapCharRec ch18 = { 8, 1, 0, -3, 8, ch18data };
/* char: 0x11 */
static const GLubyte ch17data[] = {
0xff,
};
static const BitmapCharRec ch17 = { 8, 1, 0, -5, 8, ch17data };
/* char: 0x10 */
static const GLubyte ch16data[] = {
0xff,
};
static const BitmapCharRec ch16 = { 8, 1, 0, -7, 8, ch16data };
/* char: 0xf */
static const GLubyte ch15data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0xff, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};
static const BitmapCharRec ch15 = { 8, 13, 0, 2, 8, ch15data };
/* char: 0xe */
static const GLubyte ch14data[] = {
0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch14 = { 5, 8, -3, -3, 8, ch14data };
/* char: 0xd */
static const GLubyte ch13data[] = {
0x80, 0x80, 0x80, 0x80, 0x80, 0xf8,
};
static const BitmapCharRec ch13 = { 5, 6, -3, 2, 8, ch13data };
/* char: 0xc */
static const GLubyte ch12data[] = {
0x10, 0x10, 0x10, 0x10, 0x10, 0xf0,
};
static const BitmapCharRec ch12 = { 4, 6, 0, 2, 8, ch12data };
/* char: 0xb */
static const GLubyte ch11data[] = {
0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};
static const BitmapCharRec ch11 = { 4, 8, 0, -3, 8, ch11data };
/* char: 0xa */
static const GLubyte ch10data[] = {
0x8, 0x8, 0x8, 0x8, 0x3e, 0x20, 0x50, 0x88, 0x88,
};
static const BitmapCharRec ch10 = { 7, 9, 0, 2, 8, ch10data };
/* char: 0x9 */
static const GLubyte ch9data[] = {
0x3e, 0x20, 0x20, 0x20, 0x88, 0x98, 0xa8, 0xc8, 0x88,
};
static const BitmapCharRec ch9 = { 7, 9, 0, 2, 8, ch9data };
/* char: 0x8 */
static const GLubyte ch8data[] = {
0xfe, 0x10, 0x10, 0xfe, 0x10, 0x10,
};
static const BitmapCharRec ch8 = { 7, 6, 0, 0, 8, ch8data };
/* char: 0x7 */
static const GLubyte ch7data[] = {
0x70, 0x88, 0x88, 0x70,
};
static const BitmapCharRec ch7 = { 5, 4, -1, -5, 8, ch7data };
/* char: 0x6 */
static const GLubyte ch6data[] = {
0x20, 0x20, 0x3c, 0x20, 0x3e, 0xf8, 0x80, 0x80, 0x80,
};
static const BitmapCharRec ch6 = { 7, 9, 0, 2, 8, ch6data };
/* char: 0x5 */
static const GLubyte ch5data[] = {
0x22, 0x22, 0x3c, 0x22, 0x3c, 0x78, 0x80, 0x80, 0x78,
};
static const BitmapCharRec ch5 = { 7, 9, 0, 2, 8, ch5data };
/* char: 0x4 */
static const GLubyte ch4data[] = {
0x10, 0x10, 0x1c, 0x10, 0x9e, 0x80, 0xe0, 0x80, 0xf0,
};
static const BitmapCharRec ch4 = { 7, 9, 0, 2, 8, ch4data };
/* char: 0x3 */
static const GLubyte ch3data[] = {
0x8, 0x8, 0x8, 0x3e, 0x88, 0x88, 0xf8, 0x88, 0x88,
};
static const BitmapCharRec ch3 = { 7, 9, 0, 2, 8, ch3data };
/* char: 0x2 */
static const GLubyte ch2data[] = {
0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
};
static const BitmapCharRec ch2 = { 8, 12, 0, 2, 8, ch2data };
/* char: 0x1 */
static const GLubyte ch1data[] = {
0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10,
};
static const BitmapCharRec ch1 = { 7, 7, 0, -1, 8, ch1data };
static const BitmapCharRec *const chars[] = {
&ch0,
&ch1,
&ch2,
&ch3,
&ch4,
&ch5,
&ch6,
&ch7,
&ch8,
&ch9,
&ch10,
&ch11,
&ch12,
&ch13,
&ch14,
&ch15,
&ch16,
&ch17,
&ch18,
&ch19,
&ch20,
&ch21,
&ch22,
&ch23,
&ch24,
&ch25,
&ch26,
&ch27,
&ch28,
&ch29,
&ch30,
&ch31,
&ch32,
&ch33,
&ch34,
&ch35,
&ch36,
&ch37,
&ch38,
&ch39,
&ch40,
&ch41,
&ch42,
&ch43,
&ch44,
&ch45,
&ch46,
&ch47,
&ch48,
&ch49,
&ch50,
&ch51,
&ch52,
&ch53,
&ch54,
&ch55,
&ch56,
&ch57,
&ch58,
&ch59,
&ch60,
&ch61,
&ch62,
&ch63,
&ch64,
&ch65,
&ch66,
&ch67,
&ch68,
&ch69,
&ch70,
&ch71,
&ch72,
&ch73,
&ch74,
&ch75,
&ch76,
&ch77,
&ch78,
&ch79,
&ch80,
&ch81,
&ch82,
&ch83,
&ch84,
&ch85,
&ch86,
&ch87,
&ch88,
&ch89,
&ch90,
&ch91,
&ch92,
&ch93,
&ch94,
&ch95,
&ch96,
&ch97,
&ch98,
&ch99,
&ch100,
&ch101,
&ch102,
&ch103,
&ch104,
&ch105,
&ch106,
&ch107,
&ch108,
&ch109,
&ch110,
&ch111,
&ch112,
&ch113,
&ch114,
&ch115,
&ch116,
&ch117,
&ch118,
&ch119,
&ch120,
&ch121,
&ch122,
&ch123,
&ch124,
&ch125,
&ch126,
&ch127,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
&ch160,
&ch161,
&ch162,
&ch163,
&ch164,
&ch165,
&ch166,
&ch167,
&ch168,
&ch169,
&ch170,
&ch171,
&ch172,
&ch173,
&ch174,
&ch175,
&ch176,
&ch177,
&ch178,
&ch179,
&ch180,
&ch181,
&ch182,
&ch183,
&ch184,
&ch185,
&ch186,
&ch187,
&ch188,
&ch189,
&ch190,
&ch191,
&ch192,
&ch193,
&ch194,
&ch195,
&ch196,
&ch197,
&ch198,
&ch199,
&ch200,
&ch201,
&ch202,
&ch203,
&ch204,
&ch205,
&ch206,
&ch207,
&ch208,
&ch209,
&ch210,
&ch211,
&ch212,
&ch213,
&ch214,
&ch215,
&ch216,
&ch217,
&ch218,
&ch219,
&ch220,
&ch221,
&ch222,
&ch223,
&ch224,
&ch225,
&ch226,
&ch227,
&ch228,
&ch229,
&ch230,
&ch231,
&ch232,
&ch233,
&ch234,
&ch235,
&ch236,
&ch237,
&ch238,
&ch239,
&ch240,
&ch241,
&ch242,
&ch243,
&ch244,
&ch245,
&ch246,
&ch247,
&ch248,
&ch249,
&ch250,
&ch251,
&ch252,
&ch253,
&ch254,
&ch255,
};
const BitmapFontRec plutBitmap8By13 = {
"-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1",
256,
0,
chars
};
void plutBitmapCharacter(int c)
{
const BitmapCharRec *ch;
BitmapFontPtr fontinfo;
GLint swapbytes, lsbfirst, rowlength;
GLint skiprows, skippixels, alignment;
fontinfo = (BitmapFontPtr) & plutBitmap8By13;
if(c < fontinfo->first || c >= fontinfo->first + fontinfo->num_chars)
return;
ch = fontinfo->ch[c - fontinfo->first];
if(ch) {
/* Save current modes. */
glGetIntegerv(GL_UNPACK_SWAP_BYTES, &swapbytes);
glGetIntegerv(GL_UNPACK_LSB_FIRST, &lsbfirst);
glGetIntegerv(GL_UNPACK_ROW_LENGTH, &rowlength);
glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skiprows);
glGetIntegerv(GL_UNPACK_SKIP_PIXELS, &skippixels);
glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);
/* Little endian machines (DEC Alpha for example) could
benefit from setting GL_UNPACK_LSB_FIRST to GL_TRUE
instead of GL_FALSE, but this would require changing the
generated bitmaps too. */
glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);
glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBitmap(ch->width, ch->height, ch->xorig, ch->yorig, ch->advance, 0, ch->bitmap);
/* Restore saved modes. */
glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);
glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);
glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength);
glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);
glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
}
}
#endif
#endif