Logo Search packages:      
Sourcecode: pymol version File versions  Download package

os_gl.c

#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(char *pos)
{
  int flag = 0;
  GLenum  glerr = glGetError( );
  while( glerr != GL_NO_ERROR ) 
    {
      printf("OpenGL-Error: Where? %s: %s\n",pos,(char*)gluErrorString(glerr));
      glerr = glGetError( );
        flag=1;
    }
   return flag;
}

#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>

#ifndef NULL
#define NULL ((void*)0)
#endif

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 */

#ifndef NULL
#define NULL ((void*)0)
#endif

#ifndef false
#define false 0
#endif

#ifndef true
#define true 1
#endif

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

Generated by  Doxygen 1.6.0   Back to index