diff options
author | Thierry Reding <[email protected]> | 2006-10-14 03:46:41 +0000 |
---|---|---|
committer | Thierry Reding <[email protected]> | 2006-10-14 03:46:41 +0000 |
commit | 1ddf606332a188e46a47607cd41eb5d81bdf4c8a (patch) | |
tree | 8cb51078803106d87aedeae7bbd7a762a0d369d1 /src/glut/dos |
Import Mesa 6.5.1 (MesaLib, MesaDemos, MesaGLUT).
Diffstat (limited to 'src/glut/dos')
32 files changed, 19001 insertions, 0 deletions
diff --git a/src/glut/dos/Makefile.DJ b/src/glut/dos/Makefile.DJ new file mode 100644 index 00000000000..7e4e0b8576a --- /dev/null +++ b/src/glut/dos/Makefile.DJ @@ -0,0 +1,126 @@ +# DOS/DJGPP Mesa Utility Toolkit +# Version: 1.0 +# +# Copyright (C) 2005 Daniel Borca All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +# +# Available options: +# +# Environment variables: +# CFLAGS +# +# GLIDE path to Glide3 SDK; used to resolve DXEs. +# default = $(TOP)/glide3 +# +# Targets: +# all: build GLUT +# clean: remove object files +# + + + +.PHONY: all clean + +TOP = ../../.. +GLIDE ?= $(TOP)/glide3 +LIBDIR = $(TOP)/lib +GLUT_LIB = libglut.a +GLUT_DXE = glut.dxe +GLUT_IMP = libiglut.a + +export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH);$(LIBDIR);$(GLIDE)/lib + +CC = gcc +CFLAGS += -I$(TOP)/include -I. -IPC_HW +CFLAGS += -DGLUT_IMPORT_LIB + +AR = ar +ARFLAGS = crus + +HAVEDXE3 = $(wildcard $(DJDIR)/bin/dxe3gen.exe) + +ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) +UNLINK = del $(subst /,\,$(1)) +else +UNLINK = $(RM) $(1) +endif + +CORE_SOURCES = \ + loop.c \ + callback.c \ + color.c \ + extens.c \ + init.c \ + menu.c \ + mouse.c \ + overlay.c \ + state.c \ + util.c \ + window.c \ + f8x13.c \ + f9x15.c \ + hel10.c \ + hel12.c \ + hel18.c \ + tr10.c \ + tr24.c \ + mroman.c \ + roman.c \ + bitmap.c \ + stroke.c \ + teapot.c \ + shapes.c + +PC_HW_SOURCES = \ + PC_HW/pc_hw.c \ + PC_HW/pc_keyb.c \ + PC_HW/pc_mouse.c \ + PC_HW/pc_timer.c \ + PC_HW/pc_irq.S + +SOURCES = $(CORE_SOURCES) $(PC_HW_SOURCES) + +OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) + +.c.o: + $(CC) -o $@ $(CFLAGS) -c $< +.S.o: + $(CC) -o $@ $(CFLAGS) -c $< +.s.o: + $(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $< + +all: $(LIBDIR)/$(GLUT_LIB) $(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP) + +$(LIBDIR)/$(GLUT_LIB): $(OBJECTS) + $(AR) $(ARFLAGS) $@ $^ + +$(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP): $(OBJECTS) +ifeq ($(HAVEDXE3),) + $(warning Missing DXE3 package... Skipping $(GLUT_DXE)) +else + -dxe3gen -o $(LIBDIR)/$(GLUT_DXE) -Y $(LIBDIR)/$(GLUT_IMP) -D "MesaGLUT DJGPP" -E _glut -P gl.dxe -U $^ +endif + +clean: + -$(call UNLINK,*.o) + -$(call UNLINK,PC_HW/*.o) + +-include depend diff --git a/src/glut/dos/PC_HW/pc_hw.c b/src/glut/dos/PC_HW/pc_hw.c new file mode 100644 index 00000000000..100b3721651 --- /dev/null +++ b/src/glut/dos/PC_HW/pc_hw.c @@ -0,0 +1,163 @@ +/* + * PC/HW routine collection v1.3 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + +#include <dpmi.h> +#include <fcntl.h> +#include <sys/stat.h> /* for mode definitions */ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include "pc_hw.h" + + +/* + * atexit + */ +#define MAX_ATEXIT 32 + +static volatile int atexitcnt; +static VFUNC atexittbl[MAX_ATEXIT]; + + +static void __attribute__((destructor)) +doexit (void) +{ + while (atexitcnt) atexittbl[--atexitcnt](); +} + + +int +pc_clexit (VFUNC f) +{ + int i; + + for (i = 0; i < atexitcnt; i++) { + if (atexittbl[i] == f) { + for (atexitcnt--; i < atexitcnt; i++) atexittbl[i] = atexittbl[i+1]; + atexittbl[i] = 0; + return 0; + } + } + return -1; +} + + +int +pc_atexit (VFUNC f) +{ + pc_clexit(f); + if (atexitcnt < MAX_ATEXIT) { + atexittbl[atexitcnt++] = f; + return 0; + } + return -1; +} + + +/* + * locked memory allocation + */ +void * +pc_malloc (size_t size) +{ + void *p = malloc(size); + + if (p) { + if (_go32_dpmi_lock_data(p, size)) { + free(p); + return NULL; + } + } + + return p; +} + + +/* + * standard redirection + */ +static char outname[L_tmpnam]; +static int h_out, h_outbak; +static char errname[L_tmpnam]; +static int h_err, h_errbak; + + +int +pc_open_stdout (void) +{ + tmpnam(outname); + + if ((h_out=open(outname, O_WRONLY | O_CREAT | O_TEXT | O_TRUNC, S_IREAD | S_IWRITE)) > 0) { + h_outbak = dup(STDOUT_FILENO); + fflush(stdout); + dup2(h_out, STDOUT_FILENO); + } + + return h_out; +} + + +void +pc_close_stdout (void) +{ + FILE *f; + char *line = alloca(512); + + if (h_out > 0) { + dup2(h_outbak, STDOUT_FILENO); + close(h_out); + close(h_outbak); + + f = fopen(outname, "rt"); + while (fgets(line, 512, f)) { + fputs(line, stdout); + } + fclose(f); + + remove(outname); + } +} + + +int +pc_open_stderr (void) +{ + tmpnam(errname); + + if ((h_err=open(errname, O_WRONLY | O_CREAT | O_TEXT | O_TRUNC, S_IREAD | S_IWRITE)) > 0) { + h_errbak = dup(STDERR_FILENO); + fflush(stderr); + dup2(h_err, STDERR_FILENO); + } + + return h_err; +} + + +void +pc_close_stderr (void) +{ + FILE *f; + char *line = alloca(512); + + if (h_err > 0) { + dup2(h_errbak, STDERR_FILENO); + close(h_err); + close(h_errbak); + + f = fopen(errname, "rt"); + while (fgets(line, 512, f)) { + fputs(line, stderr); + } + fclose(f); + + remove(errname); + } +} diff --git a/src/glut/dos/PC_HW/pc_hw.h b/src/glut/dos/PC_HW/pc_hw.h new file mode 100644 index 00000000000..41948ec991e --- /dev/null +++ b/src/glut/dos/PC_HW/pc_hw.h @@ -0,0 +1,229 @@ +/* + * PC/HW routine collection v1.4 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + +#ifndef PC_HW_H_included +#define PC_HW_H_included + +#include <dpmi.h> +#include <stdlib.h> + +/* + * misc C definitions + */ +#define FALSE 0 +#define TRUE !FALSE + +#define SQR(x) ((x) * (x)) + +#define MIN(x,y) (((x) < (y)) ? (x) : (y)) +#define MAX(x,y) (((x) > (y)) ? (x) : (y)) +#define MID(x,y,z) MAX((x), MIN((y), (z))) + +typedef void (*VFUNC) (void); +typedef void (*PFUNC) (void *); +typedef void (*MFUNC) (int x, int y, int z, int b); + +/* + * atexit + */ +int pc_atexit (VFUNC f); +int pc_clexit (VFUNC f); + +/* + * locked memory + */ +#define ENDOFUNC(x) static void x##_end() { } +#define LOCKFUNC(x) _go32_dpmi_lock_code((void *)x, (long)x##_end - (long)x) +#define LOCKDATA(x) _go32_dpmi_lock_data((void *)&x, sizeof(x)) +#define LOCKBUFF(x, l) _go32_dpmi_lock_data((void *)x, l) + +void *pc_malloc (size_t size); + +/* + * IRQ + */ +#define ENABLE() __asm __volatile ("sti") +#define DISABLE() __asm __volatile ("cli") + +extern int pc_install_irq (int i, int (*handler) ()); +extern int pc_remove_irq (int i); + +/* + * keyboard + */ +#define KB_SHIFT_FLAG 0x0001 +#define KB_CTRL_FLAG 0x0002 +#define KB_ALT_FLAG 0x0004 +#define KB_LWIN_FLAG 0x0008 +#define KB_RWIN_FLAG 0x0010 +#define KB_MENU_FLAG 0x0020 +#define KB_SCROLOCK_FLAG 0x0100 +#define KB_NUMLOCK_FLAG 0x0200 +#define KB_CAPSLOCK_FLAG 0x0400 +#define KB_INALTSEQ_FLAG 0x0800 +#define KB_ACCENT1_FLAG 0x1000 +#define KB_ACCENT2_FLAG 0x2000 +#define KB_ACCENT3_FLAG 0x4000 +#define KB_ACCENT4_FLAG 0x8000 + +#define KEY_A 1 +#define KEY_B 2 +#define KEY_C 3 +#define KEY_D 4 +#define KEY_E 5 +#define KEY_F 6 +#define KEY_G 7 +#define KEY_H 8 +#define KEY_I 9 +#define KEY_J 10 +#define KEY_K 11 +#define KEY_L 12 +#define KEY_M 13 +#define KEY_N 14 +#define KEY_O 15 +#define KEY_P 16 +#define KEY_Q 17 +#define KEY_R 18 +#define KEY_S 19 +#define KEY_T 20 +#define KEY_U 21 +#define KEY_V 22 +#define KEY_W 23 +#define KEY_X 24 +#define KEY_Y 25 +#define KEY_Z 26 +#define KEY_0 27 +#define KEY_1 28 +#define KEY_2 29 +#define KEY_3 30 +#define KEY_4 31 +#define KEY_5 32 +#define KEY_6 33 +#define KEY_7 34 +#define KEY_8 35 +#define KEY_9 36 +#define KEY_0_PAD 37 +#define KEY_1_PAD 38 +#define KEY_2_PAD 39 +#define KEY_3_PAD 40 +#define KEY_4_PAD 41 +#define KEY_5_PAD 42 +#define KEY_6_PAD 43 +#define KEY_7_PAD 44 +#define KEY_8_PAD 45 +#define KEY_9_PAD 46 +#define KEY_F1 47 +#define KEY_F2 48 +#define KEY_F3 49 +#define KEY_F4 50 +#define KEY_F5 51 +#define KEY_F6 52 +#define KEY_F7 53 +#define KEY_F8 54 +#define KEY_F9 55 +#define KEY_F10 56 +#define KEY_F11 57 +#define KEY_F12 58 +#define KEY_ESC 59 +#define KEY_TILDE 60 +#define KEY_MINUS 61 +#define KEY_EQUALS 62 +#define KEY_BACKSPACE 63 +#define KEY_TAB 64 +#define KEY_OPENBRACE 65 +#define KEY_CLOSEBRACE 66 +#define KEY_ENTER 67 +#define KEY_COLON 68 +#define KEY_QUOTE 69 +#define KEY_BACKSLASH 70 +#define KEY_BACKSLASH2 71 +#define KEY_COMMA 72 +#define KEY_STOP 73 +#define KEY_SLASH 74 +#define KEY_SPACE 75 +#define KEY_INSERT 76 +#define KEY_DEL 77 +#define KEY_HOME 78 +#define KEY_END 79 +#define KEY_PGUP 80 +#define KEY_PGDN 81 +#define KEY_LEFT 82 +#define KEY_RIGHT 83 +#define KEY_UP 84 +#define KEY_DOWN 85 +#define KEY_SLASH_PAD 86 +#define KEY_ASTERISK 87 +#define KEY_MINUS_PAD 88 +#define KEY_PLUS_PAD 89 +#define KEY_DEL_PAD 90 +#define KEY_ENTER_PAD 91 +#define KEY_PRTSCR 92 +#define KEY_PAUSE 93 +#define KEY_ABNT_C1 94 +#define KEY_YEN 95 +#define KEY_KANA 96 +#define KEY_CONVERT 97 +#define KEY_NOCONVERT 98 +#define KEY_AT 99 +#define KEY_CIRCUMFLEX 100 +#define KEY_COLON2 101 +#define KEY_KANJI 102 + +#define KEY_MODIFIERS 103 + +#define KEY_LSHIFT 103 +#define KEY_RSHIFT 104 +#define KEY_LCONTROL 105 +#define KEY_RCONTROL 106 +#define KEY_ALT 107 +#define KEY_ALTGR 108 +#define KEY_LWIN 109 +#define KEY_RWIN 110 +#define KEY_MENU 111 +#define KEY_SCRLOCK 112 +#define KEY_NUMLOCK 113 +#define KEY_CAPSLOCK 114 + +#define KEY_MAX 115 + +int pc_install_keyb (void); +void pc_remove_keyb (void); +int pc_keypressed (void); +int pc_readkey (void); +int pc_keydown (int code); +int pc_keyshifts (void); + +/* + * timer + */ +int pc_install_int (PFUNC func, void *parm, unsigned int freq); +int pc_remove_int (int fid); +int pc_adjust_int (int fid, unsigned int freq); +void pc_remove_timer (void); + +/* + * mouse + */ +int pc_install_mouse (void); +void pc_remove_mouse (void); +MFUNC pc_install_mouse_handler (MFUNC handler); +void pc_mouse_area (int x1, int y1, int x2, int y2); +void pc_mouse_speed (int xspeed, int yspeed); +int pc_query_mouse (int *x, int *y, int *z); +void pc_warp_mouse (int x, int y); + +/* + * standard redirection + */ +int pc_open_stdout (void); +int pc_open_stderr (void); +void pc_close_stdout (void); +void pc_close_stderr (void); + +#endif diff --git a/src/glut/dos/PC_HW/pc_irq.S b/src/glut/dos/PC_HW/pc_irq.S new file mode 100644 index 00000000000..7d62ac74ce0 --- /dev/null +++ b/src/glut/dos/PC_HW/pc_irq.S @@ -0,0 +1,182 @@ +/* + * PC/HW routine collection v1.3 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + + .file "pc_irq.S" + + .text + +#define IRQ_STACK_SIZE 16384 + +#define IRQ_WRAPPER_LEN (__irq_wrapper_1-__irq_wrapper_0) +#define IRQ_OLD (__irq_old_0-__irq_wrapper_0) +#define IRQ_HOOK (__irq_hook_0-__irq_wrapper_0) +#define IRQ_STACK (__irq_stack_0-__irq_wrapper_0) + + .balign 4 +common: + movw $0x0400, %ax + int $0x31 + + movl %ss:8(%ebp), %ebx + cmpl $15, %ebx + jbe 0f + fail: + orl $-1, %eax + popl %edi + popl %ebx + leave + ret + + 0: + movl %ebx, %edi + imull $IRQ_WRAPPER_LEN, %edi + addl $__irq_wrapper_0, %edi + + cmpb $7, %bl + jbe 1f + movb %dl, %dh + subb $8, %dh + 1: + addb %dh, %bl + ret + + .balign 4 + .global _pc_install_irq +_pc_install_irq: + pushl %ebp + movl %esp, %ebp + pushl %ebx + pushl %edi + + call common + + cmpl $0, IRQ_HOOK(%edi) + jne fail + + pushl $IRQ_WRAPPER_LEN + pushl %edi + call __go32_dpmi_lock_code + addl $8, %esp + testl %eax, %eax + jnz fail + + pushl $IRQ_STACK_SIZE + call _pc_malloc + popl %edx + testl %eax, %eax + jz fail + addl %edx, %eax + movl %eax, IRQ_STACK(%edi) + + movl ___djgpp_ds_alias, %eax + movl %eax, IRQ_STACK+4(%edi) + + movl %ss:12(%ebp), %eax + movl %eax, IRQ_HOOK(%edi) + + movw $0x0204, %ax + int $0x31 + movl %edx, IRQ_OLD(%edi) + movw %cx, IRQ_OLD+4(%edi) + movw $0x0205, %ax + movl %edi, %edx + movl %cs, %ecx + int $0x31 + + done: + xorl %eax, %eax + popl %edi + popl %ebx + leave + ret + + .balign 4 + .global _pc_remove_irq +_pc_remove_irq: + pushl %ebp + movl %esp, %ebp + pushl %ebx + pushl %edi + + call common + + cmpl $0, IRQ_HOOK(%edi) + je fail + + movl $0, IRQ_HOOK(%edi) + + movw $0x0205, %ax + movl IRQ_OLD(%edi), %edx + movl IRQ_OLD+4(%edi), %ecx + int $0x31 + + movl IRQ_STACK(%edi), %eax + subl $IRQ_STACK_SIZE, %eax + pushl %eax + call _free + popl %eax + + jmp done + +#define WRAPPER(x) ; \ + .balign 4 ; \ +__irq_wrapper_##x: ; \ + pushal ; \ + pushl %ds ; \ + pushl %es ; \ + pushl %fs ; \ + pushl %gs ; \ + movl %ss, %ebx ; \ + movl %esp, %esi ; \ + lss %cs:__irq_stack_##x, %esp ; \ + pushl %ss ; \ + pushl %ss ; \ + popl %es ; \ + popl %ds ; \ + movl ___djgpp_dos_sel, %fs ; \ + pushl %fs ; \ + popl %gs ; \ + call *__irq_hook_##x ; \ + movl %ebx, %ss ; \ + movl %esi, %esp ; \ + testl %eax, %eax ; \ + popl %gs ; \ + popl %fs ; \ + popl %es ; \ + popl %ds ; \ + popal ; \ + jz __irq_ignore_##x ; \ +__irq_bypass_##x: ; \ + ljmp *%cs:__irq_old_##x ; \ +__irq_ignore_##x: ; \ + iret ; \ + .balign 4 ; \ +__irq_old_##x: ; \ + .long 0, 0 ; \ +__irq_hook_##x: ; \ + .long 0 ; \ +__irq_stack_##x: ; \ + .long 0, 0 + + WRAPPER(0); + WRAPPER(1); + WRAPPER(2); + WRAPPER(3); + WRAPPER(4); + WRAPPER(5); + WRAPPER(6); + WRAPPER(7); + WRAPPER(8); + WRAPPER(9); + WRAPPER(10); + WRAPPER(11); + WRAPPER(12); + WRAPPER(13); + WRAPPER(14); + WRAPPER(15); diff --git a/src/glut/dos/PC_HW/pc_keyb.c b/src/glut/dos/PC_HW/pc_keyb.c new file mode 100644 index 00000000000..d7e3257b9d5 --- /dev/null +++ b/src/glut/dos/PC_HW/pc_keyb.c @@ -0,0 +1,540 @@ +/* + * PC/HW routine collection v1.3 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + +#include <pc.h> +#include <sys/exceptn.h> +#include <sys/farptr.h> + +#include "pc_hw.h" + + +#define KEYB_IRQ 1 + +#define KEY_BUFFER_SIZE 64 + +#define KB_MODIFIERS (KB_SHIFT_FLAG | KB_CTRL_FLAG | KB_ALT_FLAG | KB_LWIN_FLAG | KB_RWIN_FLAG | KB_MENU_FLAG) +#define KB_LED_FLAGS (KB_SCROLOCK_FLAG | KB_NUMLOCK_FLAG | KB_CAPSLOCK_FLAG) + +static int keyboard_installed; + +static volatile struct { + volatile int start, end; + volatile int key[KEY_BUFFER_SIZE]; +} key_buffer; + +static volatile int key_enhanced, key_pause_loop, key_shifts; +static int leds_ok = TRUE; +static int in_a_terrupt = FALSE; +static volatile char pc_key[KEY_MAX]; + + +/* convert Allegro format scancodes into key_shifts flag bits */ +static unsigned short modifier_table[KEY_MAX - KEY_MODIFIERS] = { + KB_SHIFT_FLAG, KB_SHIFT_FLAG, KB_CTRL_FLAG, + KB_CTRL_FLAG, KB_ALT_FLAG, KB_ALT_FLAG, + KB_LWIN_FLAG, KB_RWIN_FLAG, KB_MENU_FLAG, + KB_SCROLOCK_FLAG, KB_NUMLOCK_FLAG, KB_CAPSLOCK_FLAG +}; + + +/* lookup table for converting hardware scancodes into Allegro format */ +static unsigned char hw_to_mycode[128] = { + /* 0x00 */ 0, KEY_ESC, KEY_1, KEY_2, + /* 0x04 */ KEY_3, KEY_4, KEY_5, KEY_6, + /* 0x08 */ KEY_7, KEY_8, KEY_9, KEY_0, + /* 0x0C */ KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_TAB, + /* 0x10 */ KEY_Q, KEY_W, KEY_E, KEY_R, + /* 0x14 */ KEY_T, KEY_Y, KEY_U, KEY_I, + /* 0x18 */ KEY_O, KEY_P, KEY_OPENBRACE, KEY_CLOSEBRACE, + /* 0x1C */ KEY_ENTER, KEY_LCONTROL, KEY_A, KEY_S, + /* 0x20 */ KEY_D, KEY_F, KEY_G, KEY_H, + /* 0x24 */ KEY_J, KEY_K, KEY_L, KEY_COLON, + /* 0x28 */ KEY_QUOTE, KEY_TILDE, KEY_LSHIFT, KEY_BACKSLASH, + /* 0x2C */ KEY_Z, KEY_X, KEY_C, KEY_V, + /* 0x30 */ KEY_B, KEY_N, KEY_M, KEY_COMMA, + /* 0x34 */ KEY_STOP, KEY_SLASH, KEY_RSHIFT, KEY_ASTERISK, + /* 0x38 */ KEY_ALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, + /* 0x3C */ KEY_F2, KEY_F3, KEY_F4, KEY_F5, + /* 0x40 */ KEY_F6, KEY_F7, KEY_F8, KEY_F9, + /* 0x44 */ KEY_F10, KEY_NUMLOCK, KEY_SCRLOCK, KEY_7_PAD, + /* 0x48 */ KEY_8_PAD, KEY_9_PAD, KEY_MINUS_PAD, KEY_4_PAD, + /* 0x4C */ KEY_5_PAD, KEY_6_PAD, KEY_PLUS_PAD, KEY_1_PAD, + /* 0x50 */ KEY_2_PAD, KEY_3_PAD, KEY_0_PAD, KEY_DEL_PAD, + /* 0x54 */ KEY_PRTSCR, 0, KEY_BACKSLASH2, KEY_F11, + /* 0x58 */ KEY_F12, 0, 0, KEY_LWIN, + /* 0x5C */ KEY_RWIN, KEY_MENU, 0, 0, + /* 0x60 */ 0, 0, 0, 0, + /* 0x64 */ 0, 0, 0, 0, + /* 0x68 */ 0, 0, 0, 0, + /* 0x6C */ 0, 0, 0, 0, + /* 0x70 */ KEY_KANA, 0, 0, KEY_ABNT_C1, + /* 0x74 */ 0, 0, 0, 0, + /* 0x78 */ 0, KEY_CONVERT, 0, KEY_NOCONVERT, + /* 0x7C */ 0, KEY_YEN, 0, 0 +}; + + +/* lookup table for converting extended hardware codes into Allegro format */ +static unsigned char hw_to_mycode_ex[128] = { + /* 0x00 */ 0, KEY_ESC, KEY_1, KEY_2, + /* 0x04 */ KEY_3, KEY_4, KEY_5, KEY_6, + /* 0x08 */ KEY_7, KEY_8, KEY_9, KEY_0, + /* 0x0C */ KEY_MINUS, KEY_EQUALS, KEY_BACKSPACE, KEY_TAB, + /* 0x10 */ KEY_CIRCUMFLEX, KEY_AT, KEY_COLON2, KEY_R, + /* 0x14 */ KEY_KANJI, KEY_Y, KEY_U, KEY_I, + /* 0x18 */ KEY_O, KEY_P, KEY_OPENBRACE, KEY_CLOSEBRACE, + /* 0x1C */ KEY_ENTER_PAD, KEY_RCONTROL, KEY_A, KEY_S, + /* 0x20 */ KEY_D, KEY_F, KEY_G, KEY_H, + /* 0x24 */ KEY_J, KEY_K, KEY_L, KEY_COLON, + /* 0x28 */ KEY_QUOTE, KEY_TILDE, 0, KEY_BACKSLASH, + /* 0x2C */ KEY_Z, KEY_X, KEY_C, KEY_V, + /* 0x30 */ KEY_B, KEY_N, KEY_M, KEY_COMMA, + /* 0x34 */ KEY_STOP, KEY_SLASH_PAD, 0, KEY_PRTSCR, + /* 0x38 */ KEY_ALTGR, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, + /* 0x3C */ KEY_F2, KEY_F3, KEY_F4, KEY_F5, + /* 0x40 */ KEY_F6, KEY_F7, KEY_F8, KEY_F9, + /* 0x44 */ KEY_F10, KEY_NUMLOCK, KEY_PAUSE, KEY_HOME, + /* 0x48 */ KEY_UP, KEY_PGUP, KEY_MINUS_PAD, KEY_LEFT, + /* 0x4C */ KEY_5_PAD, KEY_RIGHT, KEY_PLUS_PAD, KEY_END, + /* 0x50 */ KEY_DOWN, KEY_PGDN, KEY_INSERT, KEY_DEL, + /* 0x54 */ KEY_PRTSCR, 0, KEY_BACKSLASH2, KEY_F11, + /* 0x58 */ KEY_F12, 0, 0, KEY_LWIN, + /* 0x5C */ KEY_RWIN, KEY_MENU, 0, 0, + /* 0x60 */ 0, 0, 0, 0, + /* 0x64 */ 0, 0, 0, 0, + /* 0x68 */ 0, 0, 0, 0, + /* 0x6C */ 0, 0, 0, 0, + /* 0x70 */ 0, 0, 0, 0, + /* 0x74 */ 0, 0, 0, 0, + /* 0x78 */ 0, 0, 0, 0, + /* 0x7C */ 0, 0, 0, 0 +}; + + +/* default mapping table for the US keyboard layout */ +static unsigned short standard_key_ascii_table[KEY_MAX] = { + /* start */ 0, + /* alphabet */ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + /* numbers */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* misc chars */ 27, '`', '-', '=', 8, 9, '[', ']', 13, ';', '\'', '\\', '\\', ',', '.', '/', ' ', + /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* numpad */ '/', '*', '-', '+', '.', 13, + /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + + +/* capslock mapping table for the US keyboard layout */ +static unsigned short standard_key_capslock_table[KEY_MAX] = { + /* start */ 0, + /* alphabet */ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + /* numbers */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* misc chars */ 27, '`', '-', '=', 8, 9, '[', ']', 13, ';', '\'', '\\', '\\', ',', '.', '/', ' ', + /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* numpad */ '/', '*', '-', '+', '.', 13, + /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + + +/* shifted mapping table for the US keyboard layout */ +static unsigned short standard_key_shift_table[KEY_MAX] = { + /* start */ 0, + /* alphabet */ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + /* numbers */ ')', '!', '@', '#', '$', '%', '^', '&', '*', '(', + /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* misc chars */ 27, '~', '_', '+', 8, 9, '{', '}', 13, ':', '"', '|', '|', '<', '>', '?', ' ', + /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* numpad */ '/', '*', '-', '+', '.', 13, + /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + + +/* ctrl+key mapping table for the US keyboard layout */ +static unsigned short standard_key_control_table[KEY_MAX] = { + /* start */ 0, + /* alphabet */ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + /* numbers */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* numpad */ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + /* func keys */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* misc chars */ 27, 2, 2, 2, 127, 127, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 2, + /* controls */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, + /* numpad */ 2, 2, 2, 2, 2, 10, + /* modifiers */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + + +/* convert numeric pad scancodes into arrow codes */ +static unsigned char numlock_table[10] = { + KEY_INSERT, KEY_END, KEY_DOWN, KEY_PGDN, KEY_LEFT, + KEY_5_PAD, KEY_RIGHT, KEY_HOME, KEY_UP, KEY_PGUP +}; + + +/* kb_wait_for_write_ready: + * Wait for the keyboard controller to set the ready-for-write bit. + */ +static __inline int +kb_wait_for_write_ready (void) +{ + int timeout = 4096; + + while ((timeout > 0) && (inportb(0x64) & 2)) timeout--; + + return (timeout > 0); +} + + +/* kb_wait_for_read_ready: + * Wait for the keyboard controller to set the ready-for-read bit. + */ +static __inline int +kb_wait_for_read_ready (void) +{ + int timeout = 16384; + + while ((timeout > 0) && (!(inportb(0x64) & 1))) timeout--; + + return (timeout > 0); +} + + +/* kb_send_data: + * Sends a byte to the keyboard controller. Returns 1 if all OK. + */ +static __inline int +kb_send_data (unsigned char data) +{ + int resends = 4; + int timeout, temp; + + do { + if (!kb_wait_for_write_ready()) + return 0; + + outportb(0x60, data); + timeout = 4096; + + while (--timeout > 0) { + if (!kb_wait_for_read_ready()) + return 0; + + temp = inportb(0x60); + + if (temp == 0xFA) + return 1; + + if (temp == 0xFE) + break; + } + } while ((resends-- > 0) && (timeout > 0)); + + return 0; +} + + +static void +update_leds (int leds) +{ + if (leds_ok) { + if (!in_a_terrupt) + DISABLE(); + + if (!kb_send_data(0xED)) { + kb_send_data(0xF4); + leds_ok = FALSE; + } else if (!kb_send_data((leds >> 8) & 7)) { + kb_send_data(0xF4); + leds_ok = FALSE; + } + + if (!in_a_terrupt) + ENABLE(); + } +} ENDOFUNC(update_leds) + + +static void +inject_key (int scancode) +{ + unsigned short *table; + + if ((scancode >= KEY_0_PAD) && (scancode <= KEY_9_PAD)) { + if (((key_shifts & KB_NUMLOCK_FLAG) != 0) == ((key_shifts & KB_SHIFT_FLAG) != 0)) { + scancode = numlock_table[scancode - KEY_0_PAD]; + } + table = standard_key_ascii_table; + } else if (key_shifts & KB_CTRL_FLAG) { + table = standard_key_control_table; + } else if (key_shifts & KB_SHIFT_FLAG) { + if (key_shifts & KB_CAPSLOCK_FLAG) { + if (standard_key_ascii_table[scancode] == standard_key_capslock_table[scancode]) { + table = standard_key_shift_table; + } else { + table = standard_key_ascii_table; + } + } else { + table = standard_key_shift_table; + } + } else if (key_shifts & KB_CAPSLOCK_FLAG) { + table = standard_key_capslock_table; + } else { + table = standard_key_ascii_table; + } + + key_buffer.key[key_buffer.end++] = (scancode << 16) | table[scancode]; + + if (key_buffer.end >= KEY_BUFFER_SIZE) + key_buffer.end = 0; + if (key_buffer.end == key_buffer.start) { + key_buffer.start++; + if (key_buffer.start >= KEY_BUFFER_SIZE) + key_buffer.start = 0; + } +} ENDOFUNC(inject_key) + + +static void +handle_code (int scancode, int keycode) +{ + in_a_terrupt++; + + if (keycode == 0) { /* pause */ + inject_key(scancode); + pc_key[KEY_PAUSE] ^= TRUE; + } else if (scancode) { + int flag; + + if (scancode >= KEY_MODIFIERS) { + flag = modifier_table[scancode - KEY_MODIFIERS]; + } else { + flag = 0; + } + if ((char)keycode < 0) { /* release */ + pc_key[scancode] = FALSE; + if (flag & KB_MODIFIERS) { + key_shifts &= ~flag; + } + } else { /* keypress */ + pc_key[scancode] = TRUE; + if (flag & KB_MODIFIERS) { + key_shifts |= flag; + } + if (flag & KB_LED_FLAGS) { + key_shifts ^= flag; + update_leds(key_shifts); + } + if (scancode < KEY_MODIFIERS) { + inject_key(scancode); + } + } + } + + in_a_terrupt--; +} ENDOFUNC(handle_code) + + +static int +keyboard () +{ + unsigned char temp, scancode; + + temp = inportb(0x60); + + if (temp <= 0xe1) { + if (key_pause_loop) { + if (!--key_pause_loop) handle_code(KEY_PAUSE, 0); + } else + switch (temp) { + case 0xe0: + key_enhanced = TRUE; + break; + case 0xe1: + key_pause_loop = 5; + break; + default: + if (key_enhanced) { + key_enhanced = FALSE; + scancode = hw_to_mycode_ex[temp & 0x7f]; + } else { + scancode = hw_to_mycode[temp & 0x7f]; + } + handle_code(scancode, temp); + } + } + + if (((temp==0x4F)||(temp==0x53))&&(key_shifts&KB_CTRL_FLAG)&&(key_shifts&KB_ALT_FLAG)) { + /* Hack alert: + * only SIGINT (but not Ctrl-Break) + * calls the destructors and will safely clean up + */ + __asm("\n\ + movb $0x79, %%al \n\ + call ___djgpp_hw_exception \n\ + ":::"%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"); + } + + __asm("\n\ + inb $0x61, %%al \n\ + movb %%al, %%ah \n\ + orb $0x80, %%al \n\ + outb %%al, $0x61 \n\ + xchgb %%al, %%ah \n\ + outb %%al, $0x61 \n\ + movb $0x20, %%al \n\ + outb %%al, $0x20 \n\ + ":::"%eax"); + return 0; +} ENDOFUNC(keyboard) + + +int +pc_keypressed (void) +{ + return (key_buffer.start!=key_buffer.end); +} + + +int +pc_readkey (void) +{ + if (keyboard_installed) { + int key; + + while (key_buffer.start == key_buffer.end) { + __dpmi_yield(); + } + + DISABLE(); + key = key_buffer.key[key_buffer.start++]; + if (key_buffer.start >= KEY_BUFFER_SIZE) + key_buffer.start = 0; + ENABLE(); + + return key; + } else { + return 0; + } +} + + +int +pc_keydown (int code) +{ + return pc_key[code]; +} + + +int +pc_keyshifts (void) +{ + return key_shifts; +} + + +void +pc_remove_keyb (void) +{ + if (keyboard_installed) { + int s1, s2, s3; + + keyboard_installed = FALSE; + pc_clexit(pc_remove_keyb); + + DISABLE(); + _farsetsel(__djgpp_dos_sel); + _farnspokew(0x41c, _farnspeekw(0x41a)); + + s1 = _farnspeekb(0x417) & 0x80; + s2 = _farnspeekb(0x418) & 0xFC; + s3 = _farnspeekb(0x496) & 0xF3; + + if (pc_key[KEY_RSHIFT]) { s1 |= 1; } + if (pc_key[KEY_LSHIFT]) { s1 |= 2; } + if (pc_key[KEY_LCONTROL]) { s2 |= 1; s1 |= 4; } + if (pc_key[KEY_ALT]) { s1 |= 8; s2 |= 2; } + if (pc_key[KEY_RCONTROL]) { s1 |= 4; s3 |= 4; } + if (pc_key[KEY_ALTGR]) { s1 |= 8; s3 |= 8; } + + if (key_shifts & KB_SCROLOCK_FLAG) s1 |= 16; + if (key_shifts & KB_NUMLOCK_FLAG) s1 |= 32; + if (key_shifts & KB_CAPSLOCK_FLAG) s1 |= 64; + + _farnspokeb(0x417, s1); + _farnspokeb(0x418, s2); + _farnspokeb(0x496, s3); + update_leds(key_shifts); + + ENABLE(); + pc_remove_irq(KEYB_IRQ); + } +} + + +int +pc_install_keyb (void) +{ + if (keyboard_installed || pc_install_irq(KEYB_IRQ, keyboard)) { + return -1; + } else { + int s1, s2, s3; + + LOCKDATA(key_buffer); + LOCKDATA(key_enhanced); + LOCKDATA(key_pause_loop); + LOCKDATA(key_shifts); + LOCKDATA(leds_ok); + LOCKDATA(in_a_terrupt); + LOCKDATA(pc_key); + LOCKDATA(modifier_table); + LOCKDATA(hw_to_mycode); + LOCKDATA(hw_to_mycode_ex); + LOCKDATA(standard_key_ascii_table); + LOCKDATA(standard_key_capslock_table); + LOCKDATA(standard_key_shift_table); + LOCKDATA(standard_key_control_table); + LOCKDATA(numlock_table); + LOCKFUNC(update_leds); + LOCKFUNC(inject_key); + LOCKFUNC(handle_code); + LOCKFUNC(keyboard); + + DISABLE(); + _farsetsel(__djgpp_dos_sel); + _farnspokew(0x41c, _farnspeekw(0x41a)); + + key_shifts = 0; + s1 = _farnspeekb(0x417); + s2 = _farnspeekb(0x418); + s3 = _farnspeekb(0x496); + + if (s1 & 1) { key_shifts |= KB_SHIFT_FLAG; pc_key[KEY_RSHIFT] = TRUE; } + if (s1 & 2) { key_shifts |= KB_SHIFT_FLAG; pc_key[KEY_LSHIFT] = TRUE; } + if (s2 & 1) { key_shifts |= KB_CTRL_FLAG; pc_key[KEY_LCONTROL] = TRUE; } + if (s2 & 2) { key_shifts |= KB_ALT_FLAG; pc_key[KEY_ALT] = TRUE; } + if (s3 & 4) { key_shifts |= KB_CTRL_FLAG; pc_key[KEY_RCONTROL] = TRUE; } + if (s3 & 8) { key_shifts |= KB_ALT_FLAG; pc_key[KEY_ALTGR] = TRUE; } + + if (s1 & 16) key_shifts |= KB_SCROLOCK_FLAG; + if (s1 & 32) key_shifts |= KB_NUMLOCK_FLAG; + if (s1 & 64) key_shifts |= KB_CAPSLOCK_FLAG; + update_leds(key_shifts); + + key_enhanced = key_pause_loop = 0; + key_buffer.start = key_buffer.end = 0; + ENABLE(); + + pc_atexit(pc_remove_keyb); + keyboard_installed = TRUE; + return 0; + } +} diff --git a/src/glut/dos/PC_HW/pc_mouse.c b/src/glut/dos/PC_HW/pc_mouse.c new file mode 100644 index 00000000000..5bf99d367fd --- /dev/null +++ b/src/glut/dos/PC_HW/pc_mouse.c @@ -0,0 +1,293 @@ +/* + * PC/HW routine collection v1.3 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + +#include <dpmi.h> +#include <sys/exceptn.h> +#include <sys/segments.h> + +#include "pc_hw.h" + + +#define PC_CUTE_WHEEL 1 /* CuteMouse WheelAPI */ + +#define MOUSE_STACK_SIZE 16384 + +#define CLEAR_MICKEYS() \ + do { \ + __asm __volatile ("movw $0xb, %%ax; int $0x33":::"%eax", "%ecx", "%edx"); \ + ox = oy = 0; \ + } while (0) + +extern void mouse_wrap (void); +extern int mouse_wrap_end[]; + +static MFUNC mouse_func; +static long mouse_callback; +static __dpmi_regs mouse_regs; + +static volatile struct { + volatile int x, y, z, b; +} pc_mouse; + +static int minx = 0; +static int maxx = 319; +static int miny = 0; +static int maxy = 199; +static int minz = 0; +static int maxz = 255; + +static int sx = 2; +static int sy = 2; + +static int emulat3 = FALSE; + +static int ox, oy; + + +static void +mouse (__dpmi_regs *r) +{ + int nx = (signed short)r->x.si / sx; + int ny = (signed short)r->x.di / sy; + int dx = nx - ox; + int dy = ny - oy; +#if PC_CUTE_WHEEL + int dz = (signed char)r->h.bh; +#endif + ox = nx; + oy = ny; + + pc_mouse.b = r->h.bl; + pc_mouse.x = MID(minx, pc_mouse.x + dx, maxx); + pc_mouse.y = MID(miny, pc_mouse.y + dy, maxy); +#if PC_CUTE_WHEEL + pc_mouse.z = MID(minz, pc_mouse.z + dz, maxz); +#endif + + if (emulat3) { + if ((pc_mouse.b & 3) == 3) { + pc_mouse.b = 4; + } + } + + if (mouse_func) { + mouse_func(pc_mouse.x, pc_mouse.y, pc_mouse.z, pc_mouse.b); + } +} ENDOFUNC(mouse) + + +void +pc_remove_mouse (void) +{ + if (mouse_callback) { + pc_clexit(pc_remove_mouse); + __asm("\n\ + movl %%edx, %%ecx \n\ + shrl $16, %%ecx \n\ + movw $0x0304, %%ax \n\ + int $0x31 \n\ + movw $0x000c, %%ax \n\ + xorl %%ecx, %%ecx \n\ + int $0x33 \n\ + "::"d"(mouse_callback):"%eax", "%ecx"); + + mouse_callback = 0; + + free((void *)(mouse_wrap_end[0] - MOUSE_STACK_SIZE)); + } +} + + +int +pc_install_mouse (void) +{ + int buttons; + + /* fail if already call-backed */ + if (mouse_callback) { + return 0; + } + + /* reset mouse and get status */ + __asm("\n\ + xorl %%eax, %%eax \n\ + int $0x33 \n\ + andl %%ebx, %%eax \n\ + movl %%eax, %0 \n\ + ":"=g" (buttons)::"%eax", "%ebx"); + if (!buttons) { + return 0; + } + + /* lock wrapper */ + LOCKDATA(mouse_func); + LOCKDATA(mouse_callback); + LOCKDATA(mouse_regs); + LOCKDATA(pc_mouse); + LOCKDATA(minx); + LOCKDATA(maxx); + LOCKDATA(miny); + LOCKDATA(maxy); + LOCKDATA(minz); + LOCKDATA(maxz); + LOCKDATA(sx); + LOCKDATA(sy); + LOCKDATA(emulat3); + LOCKDATA(ox); + LOCKDATA(oy); + LOCKFUNC(mouse); + LOCKFUNC(mouse_wrap); + + mouse_wrap_end[1] = __djgpp_ds_alias; + /* grab a locked stack */ + if ((mouse_wrap_end[0] = (int)pc_malloc(MOUSE_STACK_SIZE)) == NULL) { + return 0; + } + + /* try to hook a call-back */ + __asm("\n\ + pushl %%ds \n\ + pushl %%es \n\ + movw $0x0303, %%ax \n\ + pushl %%ds \n\ + pushl %%cs \n\ + popl %%ds \n\ + popl %%es \n\ + int $0x31 \n\ + popl %%es \n\ + popl %%ds \n\ + jc 0f \n\ + shll $16, %%ecx \n\ + movw %%dx, %%cx \n\ + movl %%ecx, %0 \n\ + 0: \n\ + ":"=g"(mouse_callback) + :"S" (mouse_wrap), "D"(&mouse_regs) + :"%eax", "%ecx", "%edx"); + if (!mouse_callback) { + free((void *)mouse_wrap_end[0]); + return 0; + } + + /* adjust stack */ + mouse_wrap_end[0] += MOUSE_STACK_SIZE; + + /* install the handler */ + mouse_regs.x.ax = 0x000c; +#if PC_CUTE_WHEEL + mouse_regs.x.cx = 0x7f | 0x80; +#else + mouse_regs.x.cx = 0x7f; +#endif + mouse_regs.x.dx = mouse_callback & 0xffff; + mouse_regs.x.es = mouse_callback >> 16; + __dpmi_int(0x33, &mouse_regs); + + CLEAR_MICKEYS(); + + emulat3 = (buttons < 3); + pc_atexit(pc_remove_mouse); + return buttons; +} + + +MFUNC +pc_install_mouse_handler (MFUNC handler) +{ + MFUNC old; + + if (!mouse_callback && !pc_install_mouse()) { + return NULL; + } + + old = mouse_func; + mouse_func = handler; + return old; +} + + +void +pc_mouse_area (int x1, int y1, int x2, int y2) +{ + minx = x1; + maxx = x2; + miny = y1; + maxy = y2; +} + + +void +pc_mouse_speed (int xspeed, int yspeed) +{ + DISABLE(); + + sx = MAX(1, xspeed); + sy = MAX(1, yspeed); + + ENABLE(); +} + + +int +pc_query_mouse (int *x, int *y, int *z) +{ + *x = pc_mouse.x; + *y = pc_mouse.y; + *z = pc_mouse.z; + return pc_mouse.b; +} + + +void +pc_warp_mouse (int x, int y) +{ + CLEAR_MICKEYS(); + + pc_mouse.x = MID(minx, x, maxx); + pc_mouse.y = MID(miny, y, maxy); + + if (mouse_func) { + mouse_func(pc_mouse.x, pc_mouse.y, pc_mouse.z, pc_mouse.b); + } +} + + +/* Hack alert: + * `mouse_wrap_end' actually holds the + * address of stack in a safe data selector. + */ +__asm("\n\ + .text \n\ + .p2align 5,,31 \n\ + .global _mouse_wrap \n\ +_mouse_wrap: \n\ + cld \n\ + lodsl \n\ + movl %eax, %es:42(%edi) \n\ + addw $4, %es:46(%edi) \n\ + pushl %es \n\ + movl %ss, %ebx \n\ + movl %esp, %esi \n\ + lss %cs:_mouse_wrap_end, %esp\n\ + pushl %ss \n\ + pushl %ss \n\ + popl %es \n\ + popl %ds \n\ + movl ___djgpp_dos_sel, %fs \n\ + pushl %fs \n\ + popl %gs \n\ + pushl %edi \n\ + call _mouse \n\ + popl %edi \n\ + movl %ebx, %ss \n\ + movl %esi, %esp \n\ + popl %es \n\ + iret \n\ + .global _mouse_wrap_end \n\ +_mouse_wrap_end:.long 0, 0"); diff --git a/src/glut/dos/PC_HW/pc_timer.c b/src/glut/dos/PC_HW/pc_timer.c new file mode 100644 index 00000000000..e7cbe70a1f2 --- /dev/null +++ b/src/glut/dos/PC_HW/pc_timer.c @@ -0,0 +1,327 @@ +/* + * PC/HW routine collection v1.5 for DOS/DJGPP + * + * Copyright (C) 2002 - Daniel Borca + * Email : [email protected] + * Web : http://www.geocities.com/dborca + */ + + +#include <pc.h> +#include <string.h> + +#include "pc_hw.h" + +#define TIMER_IRQ 0 + +#define MAX_TIMERS 8 + +#define PIT_FREQ 0x1234DD + +#define ADJUST(timer, basefreq) timer.counter = PIT_FREQ * timer.freq / SQR(basefreq) + +#define unvolatile(__v, __t) __extension__ ({union { volatile __t __cp; __t __p; } __q; __q.__cp = __v; __q.__p;}) + +static int timer_installed; + +typedef struct { + volatile unsigned int counter, clock_ticks, freq; + volatile PFUNC func; + volatile void *parm; +} TIMER; + +static TIMER timer_main, timer_func[MAX_TIMERS]; + + +/* Desc: main timer callback + * + * In : - + * Out : 0 to bypass BIOS, 1 to chain to BIOS + * + * Note: - + */ +static int +timer () +{ + int i; + + for (i = 0; i < MAX_TIMERS; i++) { + TIMER *t = &timer_func[i]; + if (t->func) { + t->clock_ticks += t->counter; + if (t->clock_ticks >= timer_main.counter) { + t->clock_ticks -= timer_main.counter; + t->func(unvolatile(t->parm, void *)); + } + } + } + + timer_main.clock_ticks += timer_main.counter; + if (timer_main.clock_ticks >= 0x10000) { + timer_main.clock_ticks -= 0x10000; + return 1; + } else { + outportb(0x20, 0x20); + return 0; + } +} ENDOFUNC(timer) + + +/* Desc: uninstall timer engine + * + * In : - + * Out : - + * + * Note: - + */ +void +pc_remove_timer (void) +{ + if (timer_installed) { + timer_installed = FALSE; + pc_clexit(pc_remove_timer); + + DISABLE(); + outportb(0x43, 0x34); + outportb(0x40, 0); + outportb(0x40, 0); + ENABLE(); + + pc_remove_irq(TIMER_IRQ); + } +} + + +/* Desc: remove timerfunc + * + * In : timerfunc id + * Out : 0 if success + * + * Note: tries to relax the main timer whenever possible + */ +int +pc_remove_int (int fid) +{ + int i; + unsigned int freq = 0; + + /* are we installed? */ + if (!timer_installed) { + return -1; + } + + /* sanity check */ + if ((fid < 0) || (fid >= MAX_TIMERS) || (timer_func[fid].func == NULL)) { + return -1; + } + timer_func[fid].func = NULL; + + /* scan for maximum frequency */ + for (i = 0; i < MAX_TIMERS; i++) { + TIMER *t = &timer_func[i]; + if (t->func) { + if (freq < t->freq) { + freq = t->freq; + } + } + } + + /* if there are no callbacks left, cleanup */ + if (!freq) { + pc_remove_timer(); + return 0; + } + + /* if we just lowered the maximum frequency, try to relax the timer engine */ + if (freq < timer_main.freq) { + unsigned int new_counter = PIT_FREQ / freq; + + DISABLE(); + + for (i = 0; i < MAX_TIMERS; i++) { + if (timer_func[i].func) { + ADJUST(timer_func[i], freq); + } + } + + outportb(0x43, 0x34); + outportb(0x40, (unsigned char)new_counter); + outportb(0x40, (unsigned char)(new_counter>>8)); + timer_main.clock_ticks = 0; + timer_main.counter = new_counter; + timer_main.freq = freq; + + ENABLE(); + } + + return 0; +} ENDOFUNC(pc_remove_int) + + +/* Desc: adjust timerfunc + * + * In : timerfunc id, new frequency (Hz) + * Out : 0 if success + * + * Note: might change the main timer frequency + */ +int +pc_adjust_int (int fid, unsigned int freq) +{ + int i; + + /* are we installed? */ + if (!timer_installed) { + return -1; + } + + /* sanity check */ + if ((fid < 0) || (fid >= MAX_TIMERS) || (timer_func[fid].func == NULL)) { + return -1; + } + timer_func[fid].freq = freq; + + /* scan for maximum frequency */ + freq = 0; + for (i = 0; i < MAX_TIMERS; i++) { + TIMER *t = &timer_func[i]; + if (t->func) { + if (freq < t->freq) { + freq = t->freq; + } + } + } + + /* update main timer / sons to match highest frequency */ + DISABLE(); + + /* using '>' is correct still (and avoids updating + * the HW timer too often), but doesn't relax the timer! + */ + if (freq != timer_main.freq) { + unsigned int new_counter = PIT_FREQ / freq; + + for (i = 0; i < MAX_TIMERS; i++) { + if (timer_func[i].func) { + ADJUST(timer_func[i], freq); + } + } + + outportb(0x43, 0x34); + outportb(0x40, (unsigned char)new_counter); + outportb(0x40, (unsigned char)(new_counter>>8)); + timer_main.clock_ticks = 0; + timer_main.counter = new_counter; + timer_main.freq = freq; + } else { + ADJUST(timer_func[fid], timer_main.freq); + } + + ENABLE(); + + return 0; +} ENDOFUNC(pc_adjust_int) + + +/* Desc: install timer engine + * + * In : - + * Out : 0 for success + * + * Note: initial frequency is 18.2 Hz + */ +static int +install_timer (void) +{ + if (timer_installed || pc_install_irq(TIMER_IRQ, timer)) { + return -1; + } else { + memset(timer_func, 0, sizeof(timer_func)); + + LOCKDATA(timer_func); + LOCKDATA(timer_main); + LOCKFUNC(timer); + LOCKFUNC(pc_adjust_int); + LOCKFUNC(pc_remove_int); + + timer_main.counter = 0x10000; + + DISABLE(); + outportb(0x43, 0x34); + outportb(0x40, 0); + outportb(0x40, 0); + timer_main.clock_ticks = 0; + ENABLE(); + + pc_atexit(pc_remove_timer); + timer_installed = TRUE; + return 0; + } +} + + +/* Desc: install timerfunc + * + * In : callback function, opaque pointer to be passed to callee, freq (Hz) + * Out : timerfunc id (0 .. MAX_TIMERS-1) + * + * Note: returns -1 if error + */ +int +pc_install_int (PFUNC func, void *parm, unsigned int freq) +{ + int i; + TIMER *t = NULL; + + /* ensure the timer engine is set up */ + if (!timer_installed) { + if (install_timer()) { + return -1; + } + } + + /* find an empty slot */ + for (i = 0; i < MAX_TIMERS; i++) { + if (!timer_func[i].func) { + t = &timer_func[i]; + break; + } + } + if (t == NULL) { + return -1; + } + + DISABLE(); + + t->func = func; + t->parm = parm; + t->freq = freq; + t->clock_ticks = 0; + + /* update main timer / sons to match highest frequency */ + if (freq > timer_main.freq) { + unsigned int new_counter = PIT_FREQ / freq; + + for (i = 0; i < MAX_TIMERS; i++) { + if (timer_func[i].func) { + ADJUST(timer_func[i], freq); + } + } + + outportb(0x43, 0x34); + outportb(0x40, (unsigned char)new_counter); + outportb(0x40, (unsigned char)(new_counter>>8)); + timer_main.clock_ticks = 0; + timer_main.counter = new_counter; + timer_main.freq = freq; + } else { + /* t == &timer_func[i] */ + ADJUST(timer_func[i], timer_main.freq); + } + + i = t - timer_func; + + ENABLE(); + + return i; +} diff --git a/src/glut/dos/bitmap.c b/src/glut/dos/bitmap.c new file mode 100644 index 00000000000..6d6b91e1c7b --- /dev/null +++ b/src/glut/dos/bitmap.c @@ -0,0 +1,115 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +void APIENTRY +glutBitmapCharacter (void *font, int c) +{ + const GLUTBitmapFont *bfp = _glut_font(font); + const GLUTBitmapChar *bcp; + + if (c >= bfp->num || !(bcp = bfp->table[c])) + return; + + glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); + + 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(bcp->width, bcp->height, bcp->xorig, bcp->yorig, + bcp->xmove, 0, bcp->bitmap); + + glPopClientAttrib(); +} + + +void APIENTRY +glutBitmapString (void *font, const unsigned char *string) +{ + const GLUTBitmapFont *bfp = _glut_font(font); + const GLUTBitmapChar *bcp; + unsigned char c; + + glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); + + 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); + + while ((c = *(string++))) { + if (c < bfp->num && (bcp = bfp->table[c])) + glBitmap(bcp->width, bcp->height, bcp->xorig, + bcp->yorig, bcp->xmove, 0, bcp->bitmap); + } + + glPopClientAttrib(); +} + + +int APIENTRY +glutBitmapWidth (void *font, int c) +{ + const GLUTBitmapFont *bfp = _glut_font(font); + const GLUTBitmapChar *bcp; + + if (c >= bfp->num || !(bcp = bfp->table[c])) + return 0; + + return bcp->xmove; +} + + +int APIENTRY +glutBitmapLength (void *font, const unsigned char *string) +{ + const GLUTBitmapFont *bfp = _glut_font(font); + const GLUTBitmapChar *bcp; + unsigned char c; + int length = 0; + + while ((c = *(string++))) { + if (c < bfp->num && (bcp = bfp->table[c])) + length += bcp->xmove; + } + + return length; +} + + +int APIENTRY +glutBitmapHeight (void *font) +{ + const GLUTBitmapFont *bfp = _glut_font(font); + + return bfp->height; +} diff --git a/src/glut/dos/callback.c b/src/glut/dos/callback.c new file mode 100644 index 00000000000..b6cc58feae9 --- /dev/null +++ b/src/glut/dos/callback.c @@ -0,0 +1,204 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +GLUTSShotCB _glut_timer_cb[MAX_TIMER_CB]; + +GLUTidleCB _glut_idle_func = NULL; + + +void APIENTRY +glutDisplayFunc (GLUTdisplayCB func) +{ + _glut_current->display = func; +} + + +void APIENTRY +glutReshapeFunc (GLUTreshapeCB func) +{ + _glut_current->reshape = func; +} + + +void APIENTRY +glutKeyboardFunc (GLUTkeyboardCB func) +{ + _glut_current->keyboard = func; +} + + +void APIENTRY +glutMouseFunc (GLUTmouseCB func) +{ + _glut_current->mouse = func; +} + + +void APIENTRY +glutMotionFunc (GLUTmotionCB func) +{ + _glut_current->motion = func; +} + + +void APIENTRY +glutPassiveMotionFunc (GLUTpassiveCB func) +{ + _glut_current->passive = func; +} + + +void APIENTRY +glutEntryFunc (GLUTentryCB func) +{ + _glut_current->entry = func; +} + + +void APIENTRY +glutVisibilityFunc (GLUTvisibilityCB func) +{ + _glut_current->visibility = func; +} + + +void APIENTRY +glutWindowStatusFunc (GLUTwindowStatusCB func) +{ + _glut_current->windowStatus = func; +} + + +void APIENTRY +glutIdleFunc (GLUTidleCB func) +{ + _glut_idle_func = func; +} + + +void APIENTRY +glutTimerFunc (unsigned int millis, GLUTtimerCB func, int value) +{ + int i; + + if (millis > 0) { + for (i = 0; i < MAX_TIMER_CB; i++) { + GLUTSShotCB *cb = &_glut_timer_cb[i]; + if (cb->func == NULL) { + cb->value = value; + cb->func = func; + cb->time = glutGet(GLUT_ELAPSED_TIME) + millis; + break; + } + } + } +} + + +void APIENTRY +glutSpecialFunc (GLUTspecialCB func) +{ + _glut_current->special = func; +} + + +void APIENTRY +glutSpaceballMotionFunc (GLUTspaceMotionCB func) +{ + _glut_current->spaceMotion = func; +} + + +void APIENTRY +glutSpaceballRotateFunc (GLUTspaceRotateCB func) +{ + _glut_current->spaceRotate = func; +} + + +void APIENTRY +glutSpaceballButtonFunc (GLUTspaceButtonCB func) +{ + _glut_current->spaceButton = func; +} + + +void APIENTRY +glutDialsFunc (GLUTdialsCB func) +{ + _glut_current->dials = func; +} + + +void APIENTRY +glutButtonBoxFunc (GLUTbuttonBoxCB func) +{ + _glut_current->buttonBox = func; +} + + +void APIENTRY +glutTabletMotionFunc (GLUTtabletMotionCB func) +{ + _glut_current->tabletMotion = func; +} + + +void APIENTRY +glutTabletButtonFunc (GLUTtabletButtonCB func) +{ + _glut_current->tabletButton = func; +} + + +void APIENTRY +glutJoystickFunc (GLUTjoystickCB func, int interval) +{ + _glut_current->joystick = func; +} + + +void APIENTRY +glutKeyboardUpFunc (GLUTkeyboardCB func) +{ + _glut_current->keyboardUp = func; +} + + +void APIENTRY +glutSpecialUpFunc (GLUTspecialCB func) +{ + _glut_current->specialUp = func; +} + + +void APIENTRY +glutMouseWheelFunc (GLUTmouseWheelCB func) +{ + _glut_current->mouseWheel = func; +} diff --git a/src/glut/dos/color.c b/src/glut/dos/color.c new file mode 100644 index 00000000000..5ffc1209a29 --- /dev/null +++ b/src/glut/dos/color.c @@ -0,0 +1,53 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +#define CLAMP(i) ((i) > 1.0F ? 1.0F : ((i) < 0.0F ? 0.0F : (i))) + + +void APIENTRY +glutSetColor (int ndx, GLfloat red, GLfloat green, GLfloat blue) +{ + if (_glut_default.mode & GLUT_INDEX) { + if ((ndx >= 0) && (ndx < (256 - RESERVED_COLORS))) { + DMesaSetCI(ndx, CLAMP(red), CLAMP(green), CLAMP(blue)); + } + } +} + + +GLfloat APIENTRY +glutGetColor (int ndx, int component) +{ + return 0.0; +} + + +void APIENTRY +glutCopyColormap (int win) +{ +} diff --git a/src/glut/dos/extens.c b/src/glut/dos/extens.c new file mode 100644 index 00000000000..8bb867264ec --- /dev/null +++ b/src/glut/dos/extens.c @@ -0,0 +1,70 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include <string.h> + +#include "internal.h" + + +int APIENTRY +glutExtensionSupported (const char *extension) +{ + static const GLubyte *extensions = NULL; + const GLubyte *last, *where; + + /* Extension names should not have spaces. */ + if (strchr(extension, ' ') || *extension == '\0') { + return GL_FALSE; + } + + /* Not my problem if you don't have a valid OpenGL context */ + if (!extensions) { + extensions = glGetString(GL_EXTENSIONS); + } + if (!extensions) { + return GL_FALSE; + } + + /* Take care of sub-strings etc. */ + for (last = extensions;;) { + if ((where = (GLubyte *)strstr((const char *)last, extension)) == NULL) { + return GL_FALSE; + } + last = where + strlen(extension); + if (where == extensions || *(where - 1) == ' ') { + if (*last == ' ' || *last == '\0') { + return GL_TRUE; + } + } + } +} + + +GLUTproc APIENTRY +glutGetProcAddress (const char *procName) +{ + /* TODO - handle glut namespace */ + return (GLUTproc)DMesaGetProcAddress(procName); +} diff --git a/src/glut/dos/f8x13.c b/src/glut/dos/f8x13.c new file mode 100644 index 00000000000..bbf58b52b13 --- /dev/null +++ b/src/glut/dos/f8x13.c @@ -0,0 +1,1183 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Public domain font. Share and enjoy." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch0data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch0 = { 8, 13, 0, 2, 8, ch0data }; + +static const unsigned char ch1data[] = { + 0x0,0x0,0x0,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch1 = { 8, 13, 0, 2, 8, ch1data }; + +static const unsigned char ch2data[] = { + 0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x0 +}; +static const GLUTBitmapChar ch2 = { 8, 13, 0, 2, 8, ch2data }; + +static const unsigned char ch3data[] = { + 0x8,0x8,0x8,0x3e,0x88,0x88,0xf8,0x88,0x88,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch3 = { 8, 13, 0, 2, 8, ch3data }; + +static const unsigned char ch4data[] = { + 0x10,0x10,0x1c,0x10,0x9e,0x80,0xe0,0x80,0xf0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch4 = { 8, 13, 0, 2, 8, ch4data }; + +static const unsigned char ch5data[] = { + 0x22,0x22,0x3c,0x22,0x3c,0x78,0x80,0x80,0x78,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch5 = { 8, 13, 0, 2, 8, ch5data }; + +static const unsigned char ch6data[] = { + 0x20,0x20,0x3c,0x20,0x3e,0xf8,0x80,0x80,0x80,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch6 = { 8, 13, 0, 2, 8, ch6data }; + +static const unsigned char ch7data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x44,0x44,0x38,0x0,0x0 +}; +static const GLUTBitmapChar ch7 = { 8, 13, 0, 2, 8, ch7data }; + +static const unsigned char ch8data[] = { + 0x0,0x0,0xfe,0x10,0x10,0xfe,0x10,0x10,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch8 = { 8, 13, 0, 2, 8, ch8data }; + +static const unsigned char ch9data[] = { + 0x3e,0x20,0x20,0x20,0x88,0x98,0xa8,0xc8,0x88,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch9 = { 8, 13, 0, 2, 8, ch9data }; + +static const unsigned char ch10data[] = { + 0x8,0x8,0x8,0x8,0x3e,0x20,0x50,0x88,0x88,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch10 = { 8, 13, 0, 2, 8, ch10data }; + +static const unsigned char ch11data[] = { + 0x0,0x0,0x0,0x0,0x0,0xf0,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch11 = { 8, 13, 0, 2, 8, ch11data }; + +static const unsigned char ch12data[] = { + 0x10,0x10,0x10,0x10,0x10,0xf0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch12 = { 8, 13, 0, 2, 8, ch12data }; + +static const unsigned char ch13data[] = { + 0x10,0x10,0x10,0x10,0x10,0x1f,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch13 = { 8, 13, 0, 2, 8, ch13data }; + +static const unsigned char ch14data[] = { + 0x0,0x0,0x0,0x0,0x0,0x1f,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch14 = { 8, 13, 0, 2, 8, ch14data }; + +static const unsigned char ch15data[] = { + 0x10,0x10,0x10,0x10,0x10,0xff,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch15 = { 8, 13, 0, 2, 8, ch15data }; + +static const unsigned char ch16data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch16 = { 8, 13, 0, 2, 8, ch16data }; + +static const unsigned char ch17data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch17 = { 8, 13, 0, 2, 8, ch17data }; + +static const unsigned char ch18data[] = { + 0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch18 = { 8, 13, 0, 2, 8, ch18data }; + +static const unsigned char ch19data[] = { + 0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch19 = { 8, 13, 0, 2, 8, ch19data }; + +static const unsigned char ch20data[] = { + 0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch20 = { 8, 13, 0, 2, 8, ch20data }; + +static const unsigned char ch21data[] = { + 0x10,0x10,0x10,0x10,0x10,0x1f,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch21 = { 8, 13, 0, 2, 8, ch21data }; + +static const unsigned char ch22data[] = { + 0x10,0x10,0x10,0x10,0x10,0xf0,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch22 = { 8, 13, 0, 2, 8, ch22data }; + +static const unsigned char ch23data[] = { + 0x0,0x0,0x0,0x0,0x0,0xff,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch23 = { 8, 13, 0, 2, 8, ch23data }; + +static const unsigned char ch24data[] = { + 0x10,0x10,0x10,0x10,0x10,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch24 = { 8, 13, 0, 2, 8, ch24data }; + +static const unsigned char ch25data[] = { + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch25 = { 8, 13, 0, 2, 8, ch25data }; + +static const unsigned char ch26data[] = { + 0x0,0x0,0xfe,0x2,0x8,0x20,0x80,0x20,0x8,0x2,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch26 = { 8, 13, 0, 2, 8, ch26data }; + +static const unsigned char ch27data[] = { + 0x0,0x0,0xfe,0x80,0x20,0x8,0x2,0x8,0x20,0x80,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch27 = { 8, 13, 0, 2, 8, ch27data }; + +static const unsigned char ch28data[] = { + 0x0,0x0,0x44,0x24,0x24,0x24,0x24,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch28 = { 8, 13, 0, 2, 8, ch28data }; + +static const unsigned char ch29data[] = { + 0x0,0x0,0x80,0x40,0xfe,0x10,0xfe,0x4,0x2,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch29 = { 8, 13, 0, 2, 8, ch29data }; + +static const unsigned char ch30data[] = { + 0x0,0x0,0xdc,0x62,0x20,0x20,0x20,0x70,0x20,0x22,0x1c,0x0,0x0 +}; +static const GLUTBitmapChar ch30 = { 8, 13, 0, 2, 8, ch30data }; + +static const unsigned char ch31data[] = { + 0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch31 = { 8, 13, 0, 2, 8, ch31data }; + +static const unsigned char ch32data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch32 = { 8, 13, 0, 2, 8, ch32data }; + +static const unsigned char ch33data[] = { + 0x0,0x0,0x10,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch33 = { 8, 13, 0, 2, 8, ch33data }; + +static const unsigned char ch34data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x24,0x24,0x24,0x0,0x0 +}; +static const GLUTBitmapChar ch34 = { 8, 13, 0, 2, 8, ch34data }; + +static const unsigned char ch35data[] = { + 0x0,0x0,0x0,0x24,0x24,0x7e,0x24,0x7e,0x24,0x24,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch35 = { 8, 13, 0, 2, 8, ch35data }; + +static const unsigned char ch36data[] = { + 0x0,0x0,0x0,0x10,0x78,0x14,0x38,0x50,0x3c,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch36 = { 8, 13, 0, 2, 8, ch36data }; + +static const unsigned char ch37data[] = { + 0x0,0x0,0x44,0x2a,0x24,0x10,0x8,0x8,0x24,0x52,0x22,0x0,0x0 +}; +static const GLUTBitmapChar ch37 = { 8, 13, 0, 2, 8, ch37data }; + +static const unsigned char ch38data[] = { + 0x0,0x0,0x3a,0x44,0x4a,0x30,0x48,0x48,0x30,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch38 = { 8, 13, 0, 2, 8, ch38data }; + +static const unsigned char ch39data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x30,0x38,0x0,0x0 +}; +static const GLUTBitmapChar ch39 = { 8, 13, 0, 2, 8, ch39data }; + +static const unsigned char ch40data[] = { + 0x0,0x0,0x4,0x8,0x8,0x10,0x10,0x10,0x8,0x8,0x4,0x0,0x0 +}; +static const GLUTBitmapChar ch40 = { 8, 13, 0, 2, 8, ch40data }; + +static const unsigned char ch41data[] = { + 0x0,0x0,0x20,0x10,0x10,0x8,0x8,0x8,0x10,0x10,0x20,0x0,0x0 +}; +static const GLUTBitmapChar ch41 = { 8, 13, 0, 2, 8, ch41data }; + +static const unsigned char ch42data[] = { + 0x0,0x0,0x0,0x0,0x24,0x18,0x7e,0x18,0x24,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch42 = { 8, 13, 0, 2, 8, ch42data }; + +static const unsigned char ch43data[] = { + 0x0,0x0,0x0,0x0,0x10,0x10,0x7c,0x10,0x10,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch43 = { 8, 13, 0, 2, 8, ch43data }; + +static const unsigned char ch44data[] = { + 0x0,0x40,0x30,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch44 = { 8, 13, 0, 2, 8, ch44data }; + +static const unsigned char ch45data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch45 = { 8, 13, 0, 2, 8, ch45data }; + +static const unsigned char ch46data[] = { + 0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch46 = { 8, 13, 0, 2, 8, ch46data }; + +static const unsigned char ch47data[] = { + 0x0,0x0,0x80,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x2,0x0,0x0 +}; +static const GLUTBitmapChar ch47 = { 8, 13, 0, 2, 8, ch47data }; + +static const unsigned char ch48data[] = { + 0x0,0x0,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x0,0x0 +}; +static const GLUTBitmapChar ch48 = { 8, 13, 0, 2, 8, ch48data }; + +static const unsigned char ch49data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x50,0x30,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch49 = { 8, 13, 0, 2, 8, ch49data }; + +static const unsigned char ch50data[] = { + 0x0,0x0,0x7e,0x40,0x20,0x18,0x4,0x2,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch50 = { 8, 13, 0, 2, 8, ch50data }; + +static const unsigned char ch51data[] = { + 0x0,0x0,0x3c,0x42,0x2,0x2,0x1c,0x8,0x4,0x2,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch51 = { 8, 13, 0, 2, 8, ch51data }; + +static const unsigned char ch52data[] = { + 0x0,0x0,0x4,0x4,0x7e,0x44,0x44,0x24,0x14,0xc,0x4,0x0,0x0 +}; +static const GLUTBitmapChar ch52 = { 8, 13, 0, 2, 8, ch52data }; + +static const unsigned char ch53data[] = { + 0x0,0x0,0x3c,0x42,0x2,0x2,0x62,0x5c,0x40,0x40,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch53 = { 8, 13, 0, 2, 8, ch53data }; + +static const unsigned char ch54data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x62,0x5c,0x40,0x40,0x20,0x1c,0x0,0x0 +}; +static const GLUTBitmapChar ch54 = { 8, 13, 0, 2, 8, ch54data }; + +static const unsigned char ch55data[] = { + 0x0,0x0,0x20,0x20,0x10,0x10,0x8,0x8,0x4,0x2,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch55 = { 8, 13, 0, 2, 8, ch55data }; + +static const unsigned char ch56data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch56 = { 8, 13, 0, 2, 8, ch56data }; + +static const unsigned char ch57data[] = { + 0x0,0x0,0x38,0x4,0x2,0x2,0x3a,0x46,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch57 = { 8, 13, 0, 2, 8, ch57data }; + +static const unsigned char ch58data[] = { + 0x0,0x10,0x38,0x10,0x0,0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch58 = { 8, 13, 0, 2, 8, ch58data }; + +static const unsigned char ch59data[] = { + 0x0,0x40,0x30,0x38,0x0,0x0,0x10,0x38,0x10,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch59 = { 8, 13, 0, 2, 8, ch59data }; + +static const unsigned char ch60data[] = { + 0x0,0x0,0x2,0x4,0x8,0x10,0x20,0x10,0x8,0x4,0x2,0x0,0x0 +}; +static const GLUTBitmapChar ch60 = { 8, 13, 0, 2, 8, ch60data }; + +static const unsigned char ch61data[] = { + 0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch61 = { 8, 13, 0, 2, 8, ch61data }; + +static const unsigned char ch62data[] = { + 0x0,0x0,0x40,0x20,0x10,0x8,0x4,0x8,0x10,0x20,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch62 = { 8, 13, 0, 2, 8, ch62data }; + +static const unsigned char ch63data[] = { + 0x0,0x0,0x8,0x0,0x8,0x8,0x4,0x2,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch63 = { 8, 13, 0, 2, 8, ch63data }; + +static const unsigned char ch64data[] = { + 0x0,0x0,0x3c,0x40,0x4a,0x56,0x52,0x4e,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch64 = { 8, 13, 0, 2, 8, ch64data }; + +static const unsigned char ch65data[] = { + 0x0,0x0,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x24,0x18,0x0,0x0 +}; +static const GLUTBitmapChar ch65 = { 8, 13, 0, 2, 8, ch65data }; + +static const unsigned char ch66data[] = { + 0x0,0x0,0xfc,0x42,0x42,0x42,0x7c,0x42,0x42,0x42,0xfc,0x0,0x0 +}; +static const GLUTBitmapChar ch66 = { 8, 13, 0, 2, 8, ch66data }; + +static const unsigned char ch67data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x40,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch67 = { 8, 13, 0, 2, 8, ch67data }; + +static const unsigned char ch68data[] = { + 0x0,0x0,0xfc,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xfc,0x0,0x0 +}; +static const GLUTBitmapChar ch68 = { 8, 13, 0, 2, 8, ch68data }; + +static const unsigned char ch69data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch69 = { 8, 13, 0, 2, 8, ch69data }; + +static const unsigned char ch70data[] = { + 0x0,0x0,0x40,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch70 = { 8, 13, 0, 2, 8, ch70data }; + +static const unsigned char ch71data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x4e,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch71 = { 8, 13, 0, 2, 8, ch71data }; + +static const unsigned char ch72data[] = { + 0x0,0x0,0x42,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x42,0x0,0x0 +}; +static const GLUTBitmapChar ch72 = { 8, 13, 0, 2, 8, ch72data }; + +static const unsigned char ch73data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x0 +}; +static const GLUTBitmapChar ch73 = { 8, 13, 0, 2, 8, ch73data }; + +static const unsigned char ch74data[] = { + 0x0,0x0,0x38,0x44,0x4,0x4,0x4,0x4,0x4,0x4,0x1e,0x0,0x0 +}; +static const GLUTBitmapChar ch74 = { 8, 13, 0, 2, 8, ch74data }; + +static const unsigned char ch75data[] = { + 0x0,0x0,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x0,0x0 +}; +static const GLUTBitmapChar ch75 = { 8, 13, 0, 2, 8, ch75data }; + +static const unsigned char ch76data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch76 = { 8, 13, 0, 2, 8, ch76data }; + +static const unsigned char ch77data[] = { + 0x0,0x0,0x82,0x82,0x82,0x92,0x92,0xaa,0xc6,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch77 = { 8, 13, 0, 2, 8, ch77data }; + +static const unsigned char ch78data[] = { + 0x0,0x0,0x42,0x42,0x42,0x46,0x4a,0x52,0x62,0x42,0x42,0x0,0x0 +}; +static const GLUTBitmapChar ch78 = { 8, 13, 0, 2, 8, ch78data }; + +static const unsigned char ch79data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch79 = { 8, 13, 0, 2, 8, ch79data }; + +static const unsigned char ch80data[] = { + 0x0,0x0,0x40,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x7c,0x0,0x0 +}; +static const GLUTBitmapChar ch80 = { 8, 13, 0, 2, 8, ch80data }; + +static const unsigned char ch81data[] = { + 0x0,0x2,0x3c,0x4a,0x52,0x42,0x42,0x42,0x42,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch81 = { 8, 13, 0, 2, 8, ch81data }; + +static const unsigned char ch82data[] = { + 0x0,0x0,0x42,0x44,0x48,0x50,0x7c,0x42,0x42,0x42,0x7c,0x0,0x0 +}; +static const GLUTBitmapChar ch82 = { 8, 13, 0, 2, 8, ch82data }; + +static const unsigned char ch83data[] = { + 0x0,0x0,0x3c,0x42,0x2,0x2,0x3c,0x40,0x40,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch83 = { 8, 13, 0, 2, 8, ch83data }; + +static const unsigned char ch84data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xfe,0x0,0x0 +}; +static const GLUTBitmapChar ch84 = { 8, 13, 0, 2, 8, ch84data }; + +static const unsigned char ch85data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x0 +}; +static const GLUTBitmapChar ch85 = { 8, 13, 0, 2, 8, ch85data }; + +static const unsigned char ch86data[] = { + 0x0,0x0,0x10,0x28,0x28,0x28,0x44,0x44,0x44,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch86 = { 8, 13, 0, 2, 8, ch86data }; + +static const unsigned char ch87data[] = { + 0x0,0x0,0x44,0xaa,0x92,0x92,0x92,0x82,0x82,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch87 = { 8, 13, 0, 2, 8, ch87data }; + +static const unsigned char ch88data[] = { + 0x0,0x0,0x82,0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch88 = { 8, 13, 0, 2, 8, ch88data }; + +static const unsigned char ch89data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x28,0x44,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch89 = { 8, 13, 0, 2, 8, ch89data }; + +static const unsigned char ch90data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x20,0x10,0x8,0x4,0x2,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch90 = { 8, 13, 0, 2, 8, ch90data }; + +static const unsigned char ch91data[] = { + 0x0,0x0,0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch91 = { 8, 13, 0, 2, 8, ch91data }; + +static const unsigned char ch92data[] = { + 0x0,0x0,0x2,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x80,0x0,0x0 +}; +static const GLUTBitmapChar ch92 = { 8, 13, 0, 2, 8, ch92data }; + +static const unsigned char ch93data[] = { + 0x0,0x0,0x78,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x78,0x0,0x0 +}; +static const GLUTBitmapChar ch93 = { 8, 13, 0, 2, 8, ch93data }; + +static const unsigned char ch94data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x44,0x28,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch94 = { 8, 13, 0, 2, 8, ch94data }; + +static const unsigned char ch95data[] = { + 0x0,0xfe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch95 = { 8, 13, 0, 2, 8, ch95data }; + +static const unsigned char ch96data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x18,0x38,0x0,0x0 +}; +static const GLUTBitmapChar ch96 = { 8, 13, 0, 2, 8, ch96data }; + +static const unsigned char ch97data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch97 = { 8, 13, 0, 2, 8, ch97data }; + +static const unsigned char ch98data[] = { + 0x0,0x0,0x5c,0x62,0x42,0x42,0x62,0x5c,0x40,0x40,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch98 = { 8, 13, 0, 2, 8, ch98data }; + +static const unsigned char ch99data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x40,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch99 = { 8, 13, 0, 2, 8, ch99data }; + +static const unsigned char ch100data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x42,0x46,0x3a,0x2,0x2,0x2,0x0,0x0 +}; +static const GLUTBitmapChar ch100 = { 8, 13, 0, 2, 8, ch100data }; + +static const unsigned char ch101data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch101 = { 8, 13, 0, 2, 8, ch101data }; + +static const unsigned char ch102data[] = { + 0x0,0x0,0x20,0x20,0x20,0x20,0x7c,0x20,0x20,0x22,0x1c,0x0,0x0 +}; +static const GLUTBitmapChar ch102 = { 8, 13, 0, 2, 8, ch102data }; + +static const unsigned char ch103data[] = { + 0x3c,0x42,0x3c,0x40,0x38,0x44,0x44,0x3a,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch103 = { 8, 13, 0, 2, 8, ch103data }; + +static const unsigned char ch104data[] = { + 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x40,0x40,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch104 = { 8, 13, 0, 2, 8, ch104data }; + +static const unsigned char ch105data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch105 = { 8, 13, 0, 2, 8, ch105data }; + +static const unsigned char ch106data[] = { + 0x38,0x44,0x44,0x4,0x4,0x4,0x4,0xc,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch106 = { 8, 13, 0, 2, 8, ch106data }; + +static const unsigned char ch107data[] = { + 0x0,0x0,0x42,0x44,0x48,0x70,0x48,0x44,0x40,0x40,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch107 = { 8, 13, 0, 2, 8, ch107data }; + +static const unsigned char ch108data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x30,0x0,0x0 +}; +static const GLUTBitmapChar ch108 = { 8, 13, 0, 2, 8, ch108data }; + +static const unsigned char ch109data[] = { + 0x0,0x0,0x82,0x92,0x92,0x92,0x92,0xec,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch109 = { 8, 13, 0, 2, 8, ch109data }; + +static const unsigned char ch110data[] = { + 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch110 = { 8, 13, 0, 2, 8, ch110data }; + +static const unsigned char ch111data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch111 = { 8, 13, 0, 2, 8, ch111data }; + +static const unsigned char ch112data[] = { + 0x40,0x40,0x40,0x5c,0x62,0x42,0x62,0x5c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch112 = { 8, 13, 0, 2, 8, ch112data }; + +static const unsigned char ch113data[] = { + 0x2,0x2,0x2,0x3a,0x46,0x42,0x46,0x3a,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch113 = { 8, 13, 0, 2, 8, ch113data }; + +static const unsigned char ch114data[] = { + 0x0,0x0,0x20,0x20,0x20,0x20,0x22,0x5c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch114 = { 8, 13, 0, 2, 8, ch114data }; + +static const unsigned char ch115data[] = { + 0x0,0x0,0x3c,0x42,0xc,0x30,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch115 = { 8, 13, 0, 2, 8, ch115data }; + +static const unsigned char ch116data[] = { + 0x0,0x0,0x1c,0x22,0x20,0x20,0x20,0x7c,0x20,0x20,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch116 = { 8, 13, 0, 2, 8, ch116data }; + +static const unsigned char ch117data[] = { + 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch117 = { 8, 13, 0, 2, 8, ch117data }; + +static const unsigned char ch118data[] = { + 0x0,0x0,0x10,0x28,0x28,0x44,0x44,0x44,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch118 = { 8, 13, 0, 2, 8, ch118data }; + +static const unsigned char ch119data[] = { + 0x0,0x0,0x44,0xaa,0x92,0x92,0x82,0x82,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch119 = { 8, 13, 0, 2, 8, ch119data }; + +static const unsigned char ch120data[] = { + 0x0,0x0,0x42,0x24,0x18,0x18,0x24,0x42,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch120 = { 8, 13, 0, 2, 8, ch120data }; + +static const unsigned char ch121data[] = { + 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch121 = { 8, 13, 0, 2, 8, ch121data }; + +static const unsigned char ch122data[] = { + 0x0,0x0,0x7e,0x20,0x10,0x8,0x4,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch122 = { 8, 13, 0, 2, 8, ch122data }; + +static const unsigned char ch123data[] = { + 0x0,0x0,0xe,0x10,0x10,0x8,0x30,0x8,0x10,0x10,0xe,0x0,0x0 +}; +static const GLUTBitmapChar ch123 = { 8, 13, 0, 2, 8, ch123data }; + +static const unsigned char ch124data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch124 = { 8, 13, 0, 2, 8, ch124data }; + +static const unsigned char ch125data[] = { + 0x0,0x0,0x70,0x8,0x8,0x10,0xc,0x10,0x8,0x8,0x70,0x0,0x0 +}; +static const GLUTBitmapChar ch125 = { 8, 13, 0, 2, 8, ch125data }; + +static const unsigned char ch126data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x54,0x24,0x0,0x0 +}; +static const GLUTBitmapChar ch126 = { 8, 13, 0, 2, 8, ch126data }; + +static const unsigned char ch127data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch127 = { 8, 13, 0, 2, 8, ch127data }; + +static const unsigned char ch160data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch160 = { 8, 13, 0, 2, 8, ch160data }; + +static const unsigned char ch161data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch161 = { 8, 13, 0, 2, 8, ch161data }; + +static const unsigned char ch162data[] = { + 0x0,0x0,0x0,0x10,0x38,0x54,0x50,0x50,0x54,0x38,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch162 = { 8, 13, 0, 2, 8, ch162data }; + +static const unsigned char ch163data[] = { + 0x0,0x0,0xdc,0x62,0x20,0x20,0x20,0x70,0x20,0x22,0x1c,0x0,0x0 +}; +static const GLUTBitmapChar ch163 = { 8, 13, 0, 2, 8, ch163data }; + +static const unsigned char ch164data[] = { + 0x0,0x0,0x0,0x42,0x3c,0x24,0x24,0x3c,0x42,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch164 = { 8, 13, 0, 2, 8, ch164data }; + +static const unsigned char ch165data[] = { + 0x0,0x0,0x10,0x10,0x7c,0x10,0x7c,0x28,0x44,0x82,0x82,0x0,0x0 +}; +static const GLUTBitmapChar ch165 = { 8, 13, 0, 2, 8, ch165data }; + +static const unsigned char ch166data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x0,0x10,0x10,0x10,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch166 = { 8, 13, 0, 2, 8, ch166data }; + +static const unsigned char ch167data[] = { + 0x0,0x0,0x18,0x24,0x4,0x18,0x24,0x24,0x18,0x20,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch167 = { 8, 13, 0, 2, 8, ch167data }; + +static const unsigned char ch168data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6c,0x0,0x0 +}; +static const GLUTBitmapChar ch168 = { 8, 13, 0, 2, 8, ch168data }; + +static const unsigned char ch169data[] = { + 0x0,0x0,0x0,0x38,0x44,0x92,0xaa,0xa2,0xaa,0x92,0x44,0x38,0x0 +}; +static const GLUTBitmapChar ch169 = { 8, 13, 0, 2, 8, ch169data }; + +static const unsigned char ch170data[] = { + 0x0,0x0,0x0,0x0,0x7c,0x0,0x3c,0x44,0x3c,0x4,0x38,0x0,0x0 +}; +static const GLUTBitmapChar ch170 = { 8, 13, 0, 2, 8, ch170data }; + +static const unsigned char ch171data[] = { + 0x0,0x0,0x0,0x12,0x24,0x48,0x90,0x48,0x24,0x12,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch171 = { 8, 13, 0, 2, 8, ch171data }; + +static const unsigned char ch172data[] = { + 0x0,0x0,0x0,0x2,0x2,0x2,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch172 = { 8, 13, 0, 2, 8, ch172data }; + +static const unsigned char ch173data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch173 = { 8, 13, 0, 2, 8, ch173data }; + +static const unsigned char ch174data[] = { + 0x0,0x0,0x0,0x38,0x44,0xaa,0xb2,0xaa,0xaa,0x92,0x44,0x38,0x0 +}; +static const GLUTBitmapChar ch174 = { 8, 13, 0, 2, 8, ch174data }; + +static const unsigned char ch175data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0 +}; +static const GLUTBitmapChar ch175 = { 8, 13, 0, 2, 8, ch175data }; + +static const unsigned char ch176data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x24,0x24,0x18,0x0,0x0 +}; +static const GLUTBitmapChar ch176 = { 8, 13, 0, 2, 8, ch176data }; + +static const unsigned char ch177data[] = { + 0x0,0x0,0x0,0x7c,0x0,0x10,0x10,0x7c,0x10,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch177 = { 8, 13, 0, 2, 8, ch177data }; + +static const unsigned char ch178data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x78,0x40,0x30,0x8,0x48,0x30,0x0 +}; +static const GLUTBitmapChar ch178 = { 8, 13, 0, 2, 8, ch178data }; + +static const unsigned char ch179data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x48,0x8,0x10,0x48,0x30,0x0 +}; +static const GLUTBitmapChar ch179 = { 8, 13, 0, 2, 8, ch179data }; + +static const unsigned char ch180data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch180 = { 8, 13, 0, 2, 8, ch180data }; + +static const unsigned char ch181data[] = { + 0x0,0x40,0x5a,0x66,0x42,0x42,0x42,0x42,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch181 = { 8, 13, 0, 2, 8, ch181data }; + +static const unsigned char ch182data[] = { + 0x0,0x0,0x14,0x14,0x14,0x14,0x34,0x74,0x74,0x74,0x3e,0x0,0x0 +}; +static const GLUTBitmapChar ch182 = { 8, 13, 0, 2, 8, ch182data }; + +static const unsigned char ch183data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch183 = { 8, 13, 0, 2, 8, ch183data }; + +static const unsigned char ch184data[] = { + 0x18,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch184 = { 8, 13, 0, 2, 8, ch184data }; + +static const unsigned char ch185data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x20,0x20,0x20,0x60,0x20,0x0 +}; +static const GLUTBitmapChar ch185 = { 8, 13, 0, 2, 8, ch185data }; + +static const unsigned char ch186data[] = { + 0x0,0x0,0x0,0x0,0x0,0x78,0x0,0x30,0x48,0x48,0x30,0x0,0x0 +}; +static const GLUTBitmapChar ch186 = { 8, 13, 0, 2, 8, ch186data }; + +static const unsigned char ch187data[] = { + 0x0,0x0,0x0,0x90,0x48,0x24,0x12,0x24,0x48,0x90,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch187 = { 8, 13, 0, 2, 8, ch187data }; + +static const unsigned char ch188data[] = { + 0x0,0x0,0x6,0x1a,0x12,0xa,0xe6,0x42,0x40,0x40,0xc0,0x40,0x0 +}; +static const GLUTBitmapChar ch188 = { 8, 13, 0, 2, 8, ch188data }; + +static const unsigned char ch189data[] = { + 0x0,0x0,0x1e,0x10,0xc,0x2,0xf2,0x4c,0x40,0x40,0xc0,0x40,0x0 +}; +static const GLUTBitmapChar ch189 = { 8, 13, 0, 2, 8, ch189data }; + +static const unsigned char ch190data[] = { + 0x0,0x0,0x6,0x1a,0x12,0xa,0x66,0x92,0x10,0x20,0x90,0x60,0x0 +}; +static const GLUTBitmapChar ch190 = { 8, 13, 0, 2, 8, ch190data }; + +static const unsigned char ch191data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x40,0x20,0x10,0x10,0x0,0x10,0x0,0x0 +}; +static const GLUTBitmapChar ch191 = { 8, 13, 0, 2, 8, ch191data }; + +static const unsigned char ch192data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch192 = { 8, 13, 0, 2, 8, ch192data }; + +static const unsigned char ch193data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch193 = { 8, 13, 0, 2, 8, ch193data }; + +static const unsigned char ch194data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch194 = { 8, 13, 0, 2, 8, ch194data }; + +static const unsigned char ch195data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch195 = { 8, 13, 0, 2, 8, ch195data }; + +static const unsigned char ch196data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch196 = { 8, 13, 0, 2, 8, ch196data }; + +static const unsigned char ch197data[] = { + 0x0,0x0,0x42,0x42,0x7e,0x42,0x42,0x24,0x18,0x18,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch197 = { 8, 13, 0, 2, 8, ch197data }; + +static const unsigned char ch198data[] = { + 0x0,0x0,0x9e,0x90,0x90,0xf0,0x9c,0x90,0x90,0x90,0x6e,0x0,0x0 +}; +static const GLUTBitmapChar ch198 = { 8, 13, 0, 2, 8, ch198data }; + +static const unsigned char ch199data[] = { + 0x10,0x8,0x3c,0x42,0x40,0x40,0x40,0x40,0x40,0x42,0x3c,0x0,0x0 +}; +static const GLUTBitmapChar ch199 = { 8, 13, 0, 2, 8, ch199data }; + +static const unsigned char ch200data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch200 = { 8, 13, 0, 2, 8, ch200data }; + +static const unsigned char ch201data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch201 = { 8, 13, 0, 2, 8, ch201data }; + +static const unsigned char ch202data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch202 = { 8, 13, 0, 2, 8, ch202data }; + +static const unsigned char ch203data[] = { + 0x0,0x0,0x7e,0x40,0x40,0x78,0x40,0x40,0x7e,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch203 = { 8, 13, 0, 2, 8, ch203data }; + +static const unsigned char ch204data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch204 = { 8, 13, 0, 2, 8, ch204data }; + +static const unsigned char ch205data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch205 = { 8, 13, 0, 2, 8, ch205data }; + +static const unsigned char ch206data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch206 = { 8, 13, 0, 2, 8, ch206data }; + +static const unsigned char ch207data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x10,0x7c,0x0,0x28,0x28,0x0 +}; +static const GLUTBitmapChar ch207 = { 8, 13, 0, 2, 8, ch207data }; + +static const unsigned char ch208data[] = { + 0x0,0x0,0xfc,0x42,0x42,0x42,0xe2,0x42,0x42,0x42,0xfc,0x0,0x0 +}; +static const GLUTBitmapChar ch208 = { 8, 13, 0, 2, 8, ch208data }; + +static const unsigned char ch209data[] = { + 0x0,0x0,0x82,0x86,0x8a,0x92,0xa2,0xc2,0x82,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch209 = { 8, 13, 0, 2, 8, ch209data }; + +static const unsigned char ch210data[] = { + 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch210 = { 8, 13, 0, 2, 8, ch210data }; + +static const unsigned char ch211data[] = { + 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch211 = { 8, 13, 0, 2, 8, ch211data }; + +static const unsigned char ch212data[] = { + 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch212 = { 8, 13, 0, 2, 8, ch212data }; + +static const unsigned char ch213data[] = { + 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch213 = { 8, 13, 0, 2, 8, ch213data }; + +static const unsigned char ch214data[] = { + 0x0,0x0,0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x0,0x28,0x28,0x0 +}; +static const GLUTBitmapChar ch214 = { 8, 13, 0, 2, 8, ch214data }; + +static const unsigned char ch215data[] = { + 0x0,0x0,0x0,0x42,0x24,0x18,0x18,0x24,0x42,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch215 = { 8, 13, 0, 2, 8, ch215data }; + +static const unsigned char ch216data[] = { + 0x0,0x40,0x3c,0x62,0x52,0x52,0x52,0x4a,0x4a,0x46,0x3c,0x2,0x0 +}; +static const GLUTBitmapChar ch216 = { 8, 13, 0, 2, 8, ch216data }; + +static const unsigned char ch217data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch217 = { 8, 13, 0, 2, 8, ch217data }; + +static const unsigned char ch218data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch218 = { 8, 13, 0, 2, 8, ch218data }; + +static const unsigned char ch219data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch219 = { 8, 13, 0, 2, 8, ch219data }; + +static const unsigned char ch220data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch220 = { 8, 13, 0, 2, 8, ch220data }; + +static const unsigned char ch221data[] = { + 0x0,0x0,0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch221 = { 8, 13, 0, 2, 8, ch221data }; + +static const unsigned char ch222data[] = { + 0x0,0x0,0x40,0x40,0x40,0x7c,0x42,0x42,0x42,0x7c,0x40,0x0,0x0 +}; +static const GLUTBitmapChar ch222 = { 8, 13, 0, 2, 8, ch222data }; + +static const unsigned char ch223data[] = { + 0x0,0x40,0x5c,0x62,0x42,0x42,0x7c,0x42,0x42,0x3c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch223 = { 8, 13, 0, 2, 8, ch223data }; + +static const unsigned char ch224data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch224 = { 8, 13, 0, 2, 8, ch224data }; + +static const unsigned char ch225data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch225 = { 8, 13, 0, 2, 8, ch225data }; + +static const unsigned char ch226data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch226 = { 8, 13, 0, 2, 8, ch226data }; + +static const unsigned char ch227data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch227 = { 8, 13, 0, 2, 8, ch227data }; + +static const unsigned char ch228data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch228 = { 8, 13, 0, 2, 8, ch228data }; + +static const unsigned char ch229data[] = { + 0x0,0x0,0x3a,0x46,0x42,0x3e,0x2,0x3c,0x0,0x18,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch229 = { 8, 13, 0, 2, 8, ch229data }; + +static const unsigned char ch230data[] = { + 0x0,0x0,0x6c,0x92,0x90,0x7c,0x12,0x6c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch230 = { 8, 13, 0, 2, 8, ch230data }; + +static const unsigned char ch231data[] = { + 0x10,0x8,0x3c,0x42,0x40,0x40,0x42,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch231 = { 8, 13, 0, 2, 8, ch231data }; + +static const unsigned char ch232data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch232 = { 8, 13, 0, 2, 8, ch232data }; + +static const unsigned char ch233data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch233 = { 8, 13, 0, 2, 8, ch233data }; + +static const unsigned char ch234data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch234 = { 8, 13, 0, 2, 8, ch234data }; + +static const unsigned char ch235data[] = { + 0x0,0x0,0x3c,0x42,0x40,0x7e,0x42,0x3c,0x0,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch235 = { 8, 13, 0, 2, 8, ch235data }; + +static const unsigned char ch236data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x10,0x20,0x0 +}; +static const GLUTBitmapChar ch236 = { 8, 13, 0, 2, 8, ch236data }; + +static const unsigned char ch237data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x20,0x10,0x0 +}; +static const GLUTBitmapChar ch237 = { 8, 13, 0, 2, 8, ch237data }; + +static const unsigned char ch238data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x48,0x30,0x0 +}; +static const GLUTBitmapChar ch238 = { 8, 13, 0, 2, 8, ch238data }; + +static const unsigned char ch239data[] = { + 0x0,0x0,0x7c,0x10,0x10,0x10,0x10,0x30,0x0,0x0,0x28,0x28,0x0 +}; +static const GLUTBitmapChar ch239 = { 8, 13, 0, 2, 8, ch239data }; + +static const unsigned char ch240data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x4,0x28,0x18,0x24,0x0 +}; +static const GLUTBitmapChar ch240 = { 8, 13, 0, 2, 8, ch240data }; + +static const unsigned char ch241data[] = { + 0x0,0x0,0x42,0x42,0x42,0x42,0x62,0x5c,0x0,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch241 = { 8, 13, 0, 2, 8, ch241data }; + +static const unsigned char ch242data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch242 = { 8, 13, 0, 2, 8, ch242data }; + +static const unsigned char ch243data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch243 = { 8, 13, 0, 2, 8, ch243data }; + +static const unsigned char ch244data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch244 = { 8, 13, 0, 2, 8, ch244data }; + +static const unsigned char ch245data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x28,0x14,0x0 +}; +static const GLUTBitmapChar ch245 = { 8, 13, 0, 2, 8, ch245data }; + +static const unsigned char ch246data[] = { + 0x0,0x0,0x3c,0x42,0x42,0x42,0x42,0x3c,0x0,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch246 = { 8, 13, 0, 2, 8, ch246data }; + +static const unsigned char ch247data[] = { + 0x0,0x0,0x0,0x10,0x10,0x0,0x7c,0x0,0x10,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch247 = { 8, 13, 0, 2, 8, ch247data }; + +static const unsigned char ch248data[] = { + 0x0,0x40,0x3c,0x62,0x52,0x4a,0x46,0x3c,0x2,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch248 = { 8, 13, 0, 2, 8, ch248data }; + +static const unsigned char ch249data[] = { + 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x8,0x10,0x0 +}; +static const GLUTBitmapChar ch249 = { 8, 13, 0, 2, 8, ch249data }; + +static const unsigned char ch250data[] = { + 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch250 = { 8, 13, 0, 2, 8, ch250data }; + +static const unsigned char ch251data[] = { + 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x24,0x18,0x0 +}; +static const GLUTBitmapChar ch251 = { 8, 13, 0, 2, 8, ch251data }; + +static const unsigned char ch252data[] = { + 0x0,0x0,0x3a,0x44,0x44,0x44,0x44,0x44,0x0,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch252 = { 8, 13, 0, 2, 8, ch252data }; + +static const unsigned char ch253data[] = { + 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x10,0x8,0x0 +}; +static const GLUTBitmapChar ch253 = { 8, 13, 0, 2, 8, ch253data }; + +static const unsigned char ch254data[] = { + 0x40,0x40,0x5c,0x62,0x42,0x42,0x62,0x5c,0x40,0x40,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch254 = { 8, 13, 0, 2, 8, ch254data }; + +static const unsigned char ch255data[] = { + 0x3c,0x42,0x2,0x3a,0x46,0x42,0x42,0x42,0x0,0x0,0x24,0x24,0x0 +}; +static const GLUTBitmapChar ch255 = { 8, 13, 0, 2, 8, ch255data }; + + +static const GLUTBitmapChar *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 GLUTBitmapFont glutBitmap8By13 = { + "-Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO8859-1", + 13, 256, chars +}; diff --git a/src/glut/dos/f9x15.c b/src/glut/dos/f9x15.c new file mode 100644 index 00000000000..0e7cd6da51d --- /dev/null +++ b/src/glut/dos/f9x15.c @@ -0,0 +1,1407 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Public domain terminal emulator font. Share and enjoy." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch0data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch0 = { 9, 15, 0, 3, 9, ch0data }; + +static const unsigned char ch1data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x1c,0x0,0x3e,0x0,0x7f,0x0,0x3e,0x0, + 0x1c,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch1 = { 9, 15, 0, 3, 9, ch1data }; + +static const unsigned char ch2data[] = { + 0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0, + 0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x55,0x0,0xaa,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch2 = { 9, 15, 0, 3, 9, ch2data }; + +static const unsigned char ch3data[] = { + 0x0,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x44,0x0,0x44,0x0, + 0x7c,0x0,0x44,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch3 = { 9, 15, 0, 3, 9, ch3data }; + +static const unsigned char ch4data[] = { + 0x0,0x0,0x8,0x0,0x8,0x0,0xe,0x0,0x8,0x0,0xf,0x0,0x40,0x0,0x40,0x0, + 0x70,0x0,0x40,0x0,0x78,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch4 = { 9, 15, 0, 3, 9, ch4data }; + +static const unsigned char ch5data[] = { + 0x0,0x0,0x11,0x0,0x11,0x0,0x1e,0x0,0x11,0x0,0x1e,0x0,0x0,0x0,0x3c,0x0, + 0x40,0x0,0x40,0x0,0x3c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch5 = { 9, 15, 0, 3, 9, ch5data }; + +static const unsigned char ch6data[] = { + 0x0,0x0,0x10,0x0,0x10,0x0,0x1e,0x0,0x10,0x0,0x1f,0x0,0x0,0x0,0x7c,0x0, + 0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch6 = { 9, 15, 0, 3, 9, ch6data }; + +static const unsigned char ch7data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x1c,0x0,0x22,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch7 = { 9, 15, 0, 3, 9, ch7data }; + +static const unsigned char ch8data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x7f,0x0,0x8,0x0, + 0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch8 = { 9, 15, 0, 3, 9, ch8data }; + +static const unsigned char ch9data[] = { + 0x0,0x0,0x1f,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x44,0x0,0x4c,0x0, + 0x54,0x0,0x64,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch9 = { 9, 15, 0, 3, 9, ch9data }; + +static const unsigned char ch10data[] = { + 0x0,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x1f,0x0,0x0,0x0,0x10,0x0, + 0x28,0x0,0x44,0x0,0x44,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch10 = { 9, 15, 0, 3, 9, ch10data }; + +static const unsigned char ch11data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch11 = { 9, 15, 0, 3, 9, ch11data }; + +static const unsigned char ch12data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf8,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch12 = { 9, 15, 0, 3, 9, ch12data }; + +static const unsigned char ch13data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf,0x80,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch13 = { 9, 15, 0, 3, 9, ch13data }; + +static const unsigned char ch14data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x80,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch14 = { 9, 15, 0, 3, 9, ch14data }; + +static const unsigned char ch15data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch15 = { 9, 15, 0, 3, 9, ch15data }; + +static const unsigned char ch16data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch16 = { 9, 15, 0, 3, 9, ch16data }; + +static const unsigned char ch17data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch17 = { 9, 15, 0, 3, 9, ch17data }; + +static const unsigned char ch18data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch18 = { 9, 15, 0, 3, 9, ch18data }; + +static const unsigned char ch19data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch19 = { 9, 15, 0, 3, 9, ch19data }; + +static const unsigned char ch20data[] = { + 0x0,0x0,0x0,0x0,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch20 = { 9, 15, 0, 3, 9, ch20data }; + +static const unsigned char ch21data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf,0x80,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch21 = { 9, 15, 0, 3, 9, ch21data }; + +static const unsigned char ch22data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xf8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch22 = { 9, 15, 0, 3, 9, ch22data }; + +static const unsigned char ch23data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x80,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch23 = { 9, 15, 0, 3, 9, ch23data }; + +static const unsigned char ch24data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xff,0x80,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch24 = { 9, 15, 0, 3, 9, ch24data }; + +static const unsigned char ch25data[] = { + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch25 = { 9, 15, 0, 3, 9, ch25data }; + +static const unsigned char ch26data[] = { + 0x0,0x0,0x3f,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0, + 0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch26 = { 9, 15, 0, 3, 9, ch26data }; + +static const unsigned char ch27data[] = { + 0x0,0x0,0x7f,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0, + 0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch27 = { 9, 15, 0, 3, 9, ch27data }; + +static const unsigned char ch28data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x12,0x0,0x12,0x0,0x12,0x0,0x12,0x0, + 0x12,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch28 = { 9, 15, 0, 3, 9, ch28data }; + +static const unsigned char ch29data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x7f,0x0,0x8,0x0,0x7f,0x0, + 0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch29 = { 9, 15, 0, 3, 9, ch29data }; + +static const unsigned char ch30data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x2e,0x0,0x51,0x0,0x30,0x0,0x10,0x0,0x10,0x0, + 0x7c,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch30 = { 9, 15, 0, 3, 9, ch30data }; + +static const unsigned char ch31data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch31 = { 9, 15, 0, 3, 9, ch31data }; + +static const unsigned char ch32data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch32 = { 9, 15, 0, 3, 9, ch32data }; + +static const unsigned char ch33data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch33 = { 9, 15, 0, 3, 9, ch33data }; + +static const unsigned char ch34data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x12,0x0,0x12,0x0,0x12,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch34 = { 9, 15, 0, 3, 9, ch34data }; + +static const unsigned char ch35data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x24,0x0,0x24,0x0,0x7e,0x0,0x24,0x0, + 0x24,0x0,0x7e,0x0,0x24,0x0,0x24,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch35 = { 9, 15, 0, 3, 9, ch35data }; + +static const unsigned char ch36data[] = { + 0x0,0x0,0x0,0x0,0x8,0x0,0x3e,0x0,0x49,0x0,0x9,0x0,0x9,0x0,0xa,0x0, + 0x1c,0x0,0x28,0x0,0x48,0x0,0x49,0x0,0x3e,0x0,0x8,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch36 = { 9, 15, 0, 3, 9, ch36data }; + +static const unsigned char ch37data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x42,0x0,0x25,0x0,0x25,0x0,0x12,0x0,0x8,0x0, + 0x8,0x0,0x24,0x0,0x52,0x0,0x52,0x0,0x21,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch37 = { 9, 15, 0, 3, 9, ch37data }; + +static const unsigned char ch38data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x31,0x0,0x4a,0x0,0x44,0x0,0x4a,0x0,0x31,0x0, + 0x30,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch38 = { 9, 15, 0, 3, 9, ch38data }; + +static const unsigned char ch39data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x6,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch39 = { 9, 15, 0, 3, 9, ch39data }; + +static const unsigned char ch40data[] = { + 0x0,0x0,0x0,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0x10,0x0,0x10,0x0, + 0x10,0x0,0x10,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch40 = { 9, 15, 0, 3, 9, ch40data }; + +static const unsigned char ch41data[] = { + 0x0,0x0,0x0,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x4,0x0,0x4,0x0, + 0x4,0x0,0x4,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch41 = { 9, 15, 0, 3, 9, ch41data }; + +static const unsigned char ch42data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x49,0x0,0x2a,0x0,0x1c,0x0, + 0x2a,0x0,0x49,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch42 = { 9, 15, 0, 3, 9, ch42data }; + +static const unsigned char ch43data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7f,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch43 = { 9, 15, 0, 3, 9, ch43data }; + +static const unsigned char ch44data[] = { + 0x8,0x0,0x4,0x0,0x4,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch44 = { 9, 15, 0, 3, 9, ch44data }; + +static const unsigned char ch45data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch45 = { 9, 15, 0, 3, 9, ch45data }; + +static const unsigned char ch46data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch46 = { 9, 15, 0, 3, 9, ch46data }; + +static const unsigned char ch47data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x20,0x0,0x20,0x0,0x10,0x0,0x8,0x0, + 0x8,0x0,0x4,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch47 = { 9, 15, 0, 3, 9, ch47data }; + +static const unsigned char ch48data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch48 = { 9, 15, 0, 3, 9, ch48data }; + +static const unsigned char ch49data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x48,0x0,0x28,0x0,0x18,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch49 = { 9, 15, 0, 3, 9, ch49data }; + +static const unsigned char ch50data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x20,0x0,0x18,0x0,0x4,0x0, + 0x2,0x0,0x1,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch50 = { 9, 15, 0, 3, 9, ch50data }; + +static const unsigned char ch51data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x1,0x0,0x1,0x0, + 0xe,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch51 = { 9, 15, 0, 3, 9, ch51data }; + +static const unsigned char ch52data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x7f,0x0,0x42,0x0, + 0x22,0x0,0x12,0x0,0xa,0x0,0x6,0x0,0x2,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch52 = { 9, 15, 0, 3, 9, ch52data }; + +static const unsigned char ch53data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x1,0x0,0x1,0x0, + 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch53 = { 9, 15, 0, 3, 9, ch53data }; + +static const unsigned char ch54data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x61,0x0, + 0x5e,0x0,0x40,0x0,0x40,0x0,0x20,0x0,0x1e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch54 = { 9, 15, 0, 3, 9, ch54data }; + +static const unsigned char ch55data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x10,0x0,0x10,0x0,0x8,0x0, + 0x4,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch55 = { 9, 15, 0, 3, 9, ch55data }; + +static const unsigned char ch56data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x22,0x0, + 0x1c,0x0,0x22,0x0,0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch56 = { 9, 15, 0, 3, 9, ch56data }; + +static const unsigned char ch57data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x3d,0x0, + 0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch57 = { 9, 15, 0, 3, 9, ch57data }; + +static const unsigned char ch58data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch58 = { 9, 15, 0, 3, 9, ch58data }; + +static const unsigned char ch59data[] = { + 0x8,0x0,0x4,0x0,0x4,0x0,0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0xc,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch59 = { 9, 15, 0, 3, 9, ch59data }; + +static const unsigned char ch60data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0, + 0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch60 = { 9, 15, 0, 3, 9, ch60data }; + +static const unsigned char ch61data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x0,0x0, + 0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch61 = { 9, 15, 0, 3, 9, ch61data }; + +static const unsigned char ch62data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0,0x2,0x0, + 0x2,0x0,0x4,0x0,0x8,0x0,0x10,0x0,0x20,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch62 = { 9, 15, 0, 3, 9, ch62data }; + +static const unsigned char ch63data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x4,0x0, + 0x2,0x0,0x1,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch63 = { 9, 15, 0, 3, 9, ch63data }; + +static const unsigned char ch64data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x4d,0x0,0x53,0x0, + 0x51,0x0,0x4f,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch64 = { 9, 15, 0, 3, 9, ch64data }; + +static const unsigned char ch65data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch65 = { 9, 15, 0, 3, 9, ch65data }; + +static const unsigned char ch66data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, + 0x3e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch66 = { 9, 15, 0, 3, 9, ch66data }; + +static const unsigned char ch67data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch67 = { 9, 15, 0, 3, 9, ch67data }; + +static const unsigned char ch68data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, + 0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch68 = { 9, 15, 0, 3, 9, ch68data }; + +static const unsigned char ch69data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0, + 0x3c,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch69 = { 9, 15, 0, 3, 9, ch69data }; + +static const unsigned char ch70data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0, + 0x3c,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch70 = { 9, 15, 0, 3, 9, ch70data }; + +static const unsigned char ch71data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x47,0x0, + 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch71 = { 9, 15, 0, 3, 9, ch71data }; + +static const unsigned char ch72data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x7f,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch72 = { 9, 15, 0, 3, 9, ch72data }; + +static const unsigned char ch73data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch73 = { 9, 15, 0, 3, 9, ch73data }; + +static const unsigned char ch74data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0x2,0x0,0x2,0x0,0x2,0x0, + 0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0xf,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch74 = { 9, 15, 0, 3, 9, ch74data }; + +static const unsigned char ch75data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x42,0x0,0x44,0x0,0x48,0x0,0x50,0x0, + 0x70,0x0,0x48,0x0,0x44,0x0,0x42,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch75 = { 9, 15, 0, 3, 9, ch75data }; + +static const unsigned char ch76data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch76 = { 9, 15, 0, 3, 9, ch76data }; + +static const unsigned char ch77data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x49,0x0,0x49,0x0, + 0x55,0x0,0x55,0x0,0x63,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch77 = { 9, 15, 0, 3, 9, ch77data }; + +static const unsigned char ch78data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x43,0x0,0x45,0x0, + 0x49,0x0,0x51,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch78 = { 9, 15, 0, 3, 9, ch78data }; + +static const unsigned char ch79data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch79 = { 9, 15, 0, 3, 9, ch79data }; + +static const unsigned char ch80data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x7e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch80 = { 9, 15, 0, 3, 9, ch80data }; + +static const unsigned char ch81data[] = { + 0x0,0x0,0x3,0x0,0x4,0x0,0x3e,0x0,0x49,0x0,0x51,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch81 = { 9, 15, 0, 3, 9, ch81data }; + +static const unsigned char ch82data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x42,0x0,0x44,0x0,0x48,0x0, + 0x7e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch82 = { 9, 15, 0, 3, 9, ch82data }; + +static const unsigned char ch83data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x1,0x0,0x6,0x0, + 0x38,0x0,0x40,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch83 = { 9, 15, 0, 3, 9, ch83data }; + +static const unsigned char ch84data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch84 = { 9, 15, 0, 3, 9, ch84data }; + +static const unsigned char ch85data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch85 = { 9, 15, 0, 3, 9, ch85data }; + +static const unsigned char ch86data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x14,0x0,0x14,0x0,0x14,0x0,0x22,0x0, + 0x22,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch86 = { 9, 15, 0, 3, 9, ch86data }; + +static const unsigned char ch87data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x49,0x0, + 0x49,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch87 = { 9, 15, 0, 3, 9, ch87data }; + +static const unsigned char ch88data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0, + 0x8,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch88 = { 9, 15, 0, 3, 9, ch88data }; + +static const unsigned char ch89data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch89 = { 9, 15, 0, 3, 9, ch89data }; + +static const unsigned char ch90data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x40,0x0,0x40,0x0,0x20,0x0,0x10,0x0, + 0x8,0x0,0x4,0x0,0x2,0x0,0x1,0x0,0x7f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch90 = { 9, 15, 0, 3, 9, ch90data }; + +static const unsigned char ch91data[] = { + 0x0,0x0,0x0,0x0,0x1e,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0, + 0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x1e,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch91 = { 9, 15, 0, 3, 9, ch91data }; + +static const unsigned char ch92data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x8,0x0, + 0x8,0x0,0x10,0x0,0x20,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch92 = { 9, 15, 0, 3, 9, ch92data }; + +static const unsigned char ch93data[] = { + 0x0,0x0,0x0,0x0,0x3c,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0, + 0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x3c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch93 = { 9, 15, 0, 3, 9, ch93data }; + +static const unsigned char ch94data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch94 = { 9, 15, 0, 3, 9, ch94data }; + +static const unsigned char ch95data[] = { + 0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch95 = { 9, 15, 0, 3, 9, ch95data }; + +static const unsigned char ch96data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x2,0x0,0x4,0x0,0x8,0x0,0x18,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch96 = { 9, 15, 0, 3, 9, ch96data }; + +static const unsigned char ch97data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch97 = { 9, 15, 0, 3, 9, ch97data }; + +static const unsigned char ch98data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch98 = { 9, 15, 0, 3, 9, ch98data }; + +static const unsigned char ch99data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch99 = { 9, 15, 0, 3, 9, ch99data }; + +static const unsigned char ch100data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x43,0x0,0x3d,0x0,0x1,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch100 = { 9, 15, 0, 3, 9, ch100data }; + +static const unsigned char ch101data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch101 = { 9, 15, 0, 3, 9, ch101data }; + +static const unsigned char ch102data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x7c,0x0, + 0x10,0x0,0x10,0x0,0x11,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch102 = { 9, 15, 0, 3, 9, ch102data }; + +static const unsigned char ch103data[] = { + 0x3e,0x0,0x41,0x0,0x41,0x0,0x3e,0x0,0x40,0x0,0x3c,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch103 = { 9, 15, 0, 3, 9, ch103data }; + +static const unsigned char ch104data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch104 = { 9, 15, 0, 3, 9, ch104data }; + +static const unsigned char ch105data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch105 = { 9, 15, 0, 3, 9, ch105data }; + +static const unsigned char ch106data[] = { + 0x3c,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0, + 0x2,0x0,0xe,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch106 = { 9, 15, 0, 3, 9, ch106data }; + +static const unsigned char ch107data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x46,0x0,0x58,0x0,0x60,0x0,0x58,0x0, + 0x46,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch107 = { 9, 15, 0, 3, 9, ch107data }; + +static const unsigned char ch108data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch108 = { 9, 15, 0, 3, 9, ch108data }; + +static const unsigned char ch109data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x49,0x0,0x49,0x0,0x49,0x0,0x49,0x0, + 0x49,0x0,0x76,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch109 = { 9, 15, 0, 3, 9, ch109data }; + +static const unsigned char ch110data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch110 = { 9, 15, 0, 3, 9, ch110data }; + +static const unsigned char ch111data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch111 = { 9, 15, 0, 3, 9, ch111data }; + +static const unsigned char ch112data[] = { + 0x40,0x0,0x40,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch112 = { 9, 15, 0, 3, 9, ch112data }; + +static const unsigned char ch113data[] = { + 0x1,0x0,0x1,0x0,0x1,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x43,0x0,0x3d,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch113 = { 9, 15, 0, 3, 9, ch113data }; + +static const unsigned char ch114data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x21,0x0, + 0x31,0x0,0x4e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch114 = { 9, 15, 0, 3, 9, ch114data }; + +static const unsigned char ch115data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x1,0x0,0x3e,0x0,0x40,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch115 = { 9, 15, 0, 3, 9, ch115data }; + +static const unsigned char ch116data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0xe,0x0,0x11,0x0,0x10,0x0,0x10,0x0,0x10,0x0, + 0x10,0x0,0x7e,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch116 = { 9, 15, 0, 3, 9, ch116data }; + +static const unsigned char ch117data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch117 = { 9, 15, 0, 3, 9, ch117data }; + +static const unsigned char ch118data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x14,0x0,0x14,0x0,0x22,0x0,0x22,0x0, + 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch118 = { 9, 15, 0, 3, 9, ch118data }; + +static const unsigned char ch119data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x49,0x0, + 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch119 = { 9, 15, 0, 3, 9, ch119data }; + +static const unsigned char ch120data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0,0x14,0x0, + 0x22,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch120 = { 9, 15, 0, 3, 9, ch120data }; + +static const unsigned char ch121data[] = { + 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch121 = { 9, 15, 0, 3, 9, ch121data }; + +static const unsigned char ch122data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x10,0x0,0x8,0x0,0x4,0x0, + 0x2,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch122 = { 9, 15, 0, 3, 9, ch122data }; + +static const unsigned char ch123data[] = { + 0x0,0x0,0x0,0x0,0x7,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x4,0x0,0x18,0x0, + 0x18,0x0,0x4,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x7,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch123 = { 9, 15, 0, 3, 9, ch123data }; + +static const unsigned char ch124data[] = { + 0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch124 = { 9, 15, 0, 3, 9, ch124data }; + +static const unsigned char ch125data[] = { + 0x0,0x0,0x0,0x0,0x70,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x10,0x0,0xc,0x0, + 0xc,0x0,0x10,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x70,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch125 = { 9, 15, 0, 3, 9, ch125data }; + +static const unsigned char ch126data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x46,0x0,0x49,0x0,0x31,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch126 = { 9, 15, 0, 3, 9, ch126data }; + +static const unsigned char ch127data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch127 = { 9, 15, 0, 3, 9, ch127data }; + +static const unsigned char ch160data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch160 = { 9, 15, 0, 3, 9, ch160data }; + +static const unsigned char ch161data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch161 = { 9, 15, 0, 3, 9, ch161data }; + +static const unsigned char ch162data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x3c,0x0,0x52,0x0,0x50,0x0,0x48,0x0, + 0x4a,0x0,0x3c,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch162 = { 9, 15, 0, 3, 9, ch162data }; + +static const unsigned char ch163data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x2e,0x0,0x51,0x0,0x30,0x0,0x10,0x0,0x10,0x0, + 0x7c,0x0,0x10,0x0,0x10,0x0,0x11,0x0,0xe,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch163 = { 9, 15, 0, 3, 9, ch163data }; + +static const unsigned char ch164data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x3e,0x0, + 0x22,0x0,0x22,0x0,0x3e,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch164 = { 9, 15, 0, 3, 9, ch164data }; + +static const unsigned char ch165data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x3e,0x0,0x8,0x0, + 0x3e,0x0,0x14,0x0,0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch165 = { 9, 15, 0, 3, 9, ch165data }; + +static const unsigned char ch166data[] = { + 0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0, + 0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch166 = { 9, 15, 0, 3, 9, ch166data }; + +static const unsigned char ch167data[] = { + 0x0,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x2,0x0,0x1c,0x0,0x22,0x0,0x22,0x0, + 0x22,0x0,0x1c,0x0,0x20,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch167 = { 9, 15, 0, 3, 9, ch167data }; + +static const unsigned char ch168data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch168 = { 9, 15, 0, 3, 9, ch168data }; + +static const unsigned char ch169data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0x99,0x0,0xa5,0x0, + 0xa1,0x0,0xa5,0x0,0x99,0x0,0x42,0x0,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch169 = { 9, 15, 0, 3, 9, ch169data }; + +static const unsigned char ch170data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1f,0x0,0x0,0x0, + 0xf,0x0,0x12,0x0,0xe,0x0,0x12,0x0,0xc,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch170 = { 9, 15, 0, 3, 9, ch170data }; + +static const unsigned char ch171data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9,0x0,0x12,0x0,0x24,0x0,0x48,0x0, + 0x48,0x0,0x24,0x0,0x12,0x0,0x9,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch171 = { 9, 15, 0, 3, 9, ch171data }; + +static const unsigned char ch172data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0, + 0x7e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch172 = { 9, 15, 0, 3, 9, ch172data }; + +static const unsigned char ch173data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch173 = { 9, 15, 0, 3, 9, ch173data }; + +static const unsigned char ch174data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3c,0x0,0x42,0x0,0xa5,0x0,0xa9,0x0, + 0xbd,0x0,0xa5,0x0,0xb9,0x0,0x42,0x0,0x3c,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch174 = { 9, 15, 0, 3, 9, ch174data }; + +static const unsigned char ch175data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch175 = { 9, 15, 0, 3, 9, ch175data }; + +static const unsigned char ch176data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0xc,0x0,0x12,0x0,0x12,0x0,0xc,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch176 = { 9, 15, 0, 3, 9, ch176data }; + +static const unsigned char ch177data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x0,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x7f,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch177 = { 9, 15, 0, 3, 9, ch177data }; + +static const unsigned char ch178data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x78,0x0, + 0x40,0x0,0x30,0x0,0x8,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch178 = { 9, 15, 0, 3, 9, ch178data }; + +static const unsigned char ch179data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x0, + 0x48,0x0,0x8,0x0,0x10,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch179 = { 9, 15, 0, 3, 9, ch179data }; + +static const unsigned char ch180data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch180 = { 9, 15, 0, 3, 9, ch180data }; + +static const unsigned char ch181data[] = { + 0x0,0x0,0x40,0x0,0x40,0x0,0x5d,0x0,0x63,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch181 = { 9, 15, 0, 3, 9, ch181data }; + +static const unsigned char ch182data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0x5,0x0, + 0x3d,0x0,0x45,0x0,0x45,0x0,0x45,0x0,0x3f,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch182 = { 9, 15, 0, 3, 9, ch182data }; + +static const unsigned char ch183data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0, + 0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch183 = { 9, 15, 0, 3, 9, ch183data }; + +static const unsigned char ch184data[] = { + 0x18,0x0,0x24,0x0,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch184 = { 9, 15, 0, 3, 9, ch184data }; + +static const unsigned char ch185data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x70,0x0, + 0x20,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch185 = { 9, 15, 0, 3, 9, ch185data }; + +static const unsigned char ch186data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x7c,0x0,0x0,0x0,0x38,0x0,0x44,0x0,0x44,0x0,0x38,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch186 = { 9, 15, 0, 3, 9, ch186data }; + +static const unsigned char ch187data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x48,0x0,0x24,0x0,0x12,0x0,0x9,0x0, + 0x9,0x0,0x12,0x0,0x24,0x0,0x48,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch187 = { 9, 15, 0, 3, 9, ch187data }; + +static const unsigned char ch188data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x73,0x0, + 0x21,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch188 = { 9, 15, 0, 3, 9, ch188data }; + +static const unsigned char ch189data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0xf,0x0,0x8,0x0,0x6,0x0,0x1,0x0,0x79,0x0, + 0x26,0x0,0x20,0x0,0x20,0x0,0x60,0x0,0x20,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch189 = { 9, 15, 0, 3, 9, ch189data }; + +static const unsigned char ch190data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0xd,0x0,0x9,0x0,0x5,0x0,0x33,0x0, + 0x49,0x0,0x8,0x0,0x10,0x0,0x48,0x0,0x30,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch190 = { 9, 15, 0, 3, 9, ch190data }; + +static const unsigned char ch191data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x40,0x0,0x20,0x0, + 0x10,0x0,0x8,0x0,0x8,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch191 = { 9, 15, 0, 3, 9, ch191data }; + +static const unsigned char ch192data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch192 = { 9, 15, 0, 3, 9, ch192data }; + +static const unsigned char ch193data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch193 = { 9, 15, 0, 3, 9, ch193data }; + +static const unsigned char ch194data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch194 = { 9, 15, 0, 3, 9, ch194data }; + +static const unsigned char ch195data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch195 = { 9, 15, 0, 3, 9, ch195data }; + +static const unsigned char ch196data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch196 = { 9, 15, 0, 3, 9, ch196data }; + +static const unsigned char ch197data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x22,0x0,0x1c,0x0,0x8,0x0,0x14,0x0,0x8,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch197 = { 9, 15, 0, 3, 9, ch197data }; + +static const unsigned char ch198data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x4f,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x7e,0x0, + 0x48,0x0,0x48,0x0,0x48,0x0,0x48,0x0,0x37,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch198 = { 9, 15, 0, 3, 9, ch198data }; + +static const unsigned char ch199data[] = { + 0x18,0x0,0x24,0x0,0xc,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x40,0x0,0x40,0x0,0x40,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch199 = { 9, 15, 0, 3, 9, ch199data }; + +static const unsigned char ch200data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, + 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch200 = { 9, 15, 0, 3, 9, ch200data }; + +static const unsigned char ch201data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, + 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch201 = { 9, 15, 0, 3, 9, ch201data }; + +static const unsigned char ch202data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, + 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch202 = { 9, 15, 0, 3, 9, ch202data }; + +static const unsigned char ch203data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7f,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x3c,0x0, + 0x20,0x0,0x20,0x0,0x7f,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch203 = { 9, 15, 0, 3, 9, ch203data }; + +static const unsigned char ch204data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch204 = { 9, 15, 0, 3, 9, ch204data }; + +static const unsigned char ch205data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch205 = { 9, 15, 0, 3, 9, ch205data }; + +static const unsigned char ch206data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch206 = { 9, 15, 0, 3, 9, ch206data }; + +static const unsigned char ch207data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x8,0x0,0x3e,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch207 = { 9, 15, 0, 3, 9, ch207data }; + +static const unsigned char ch208data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x21,0x0, + 0x79,0x0,0x21,0x0,0x21,0x0,0x21,0x0,0x7e,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch208 = { 9, 15, 0, 3, 9, ch208data }; + +static const unsigned char ch209data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x43,0x0,0x45,0x0,0x49,0x0,0x49,0x0, + 0x51,0x0,0x61,0x0,0x41,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch209 = { 9, 15, 0, 3, 9, ch209data }; + +static const unsigned char ch210data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch210 = { 9, 15, 0, 3, 9, ch210data }; + +static const unsigned char ch211data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch211 = { 9, 15, 0, 3, 9, ch211data }; + +static const unsigned char ch212data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch212 = { 9, 15, 0, 3, 9, ch212data }; + +static const unsigned char ch213data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch213 = { 9, 15, 0, 3, 9, ch213data }; + +static const unsigned char ch214data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch214 = { 9, 15, 0, 3, 9, ch214data }; + +static const unsigned char ch215data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x22,0x0,0x14,0x0,0x8,0x0, + 0x14,0x0,0x22,0x0,0x41,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch215 = { 9, 15, 0, 3, 9, ch215data }; + +static const unsigned char ch216data[] = { + 0x0,0x0,0x0,0x0,0x40,0x0,0x3e,0x0,0x61,0x0,0x51,0x0,0x51,0x0,0x49,0x0, + 0x49,0x0,0x45,0x0,0x45,0x0,0x43,0x0,0x3e,0x0,0x1,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch216 = { 9, 15, 0, 3, 9, ch216data }; + +static const unsigned char ch217data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch217 = { 9, 15, 0, 3, 9, ch217data }; + +static const unsigned char ch218data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch218 = { 9, 15, 0, 3, 9, ch218data }; + +static const unsigned char ch219data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch219 = { 9, 15, 0, 3, 9, ch219data }; + +static const unsigned char ch220data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch220 = { 9, 15, 0, 3, 9, ch220data }; + +static const unsigned char ch221data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x14,0x0, + 0x22,0x0,0x41,0x0,0x41,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch221 = { 9, 15, 0, 3, 9, ch221data }; + +static const unsigned char ch222data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x40,0x0,0x40,0x0,0x7e,0x0,0x41,0x0, + 0x41,0x0,0x41,0x0,0x7e,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch222 = { 9, 15, 0, 3, 9, ch222data }; + +static const unsigned char ch223data[] = { + 0x0,0x0,0x0,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x7e,0x0, + 0x41,0x0,0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch223 = { 9, 15, 0, 3, 9, ch223data }; + +static const unsigned char ch224data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch224 = { 9, 15, 0, 3, 9, ch224data }; + +static const unsigned char ch225data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch225 = { 9, 15, 0, 3, 9, ch225data }; + +static const unsigned char ch226data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch226 = { 9, 15, 0, 3, 9, ch226data }; + +static const unsigned char ch227data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch227 = { 9, 15, 0, 3, 9, ch227data }; + +static const unsigned char ch228data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch228 = { 9, 15, 0, 3, 9, ch228data }; + +static const unsigned char ch229data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x43,0x0,0x41,0x0,0x3f,0x0,0x1,0x0, + 0x1,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x12,0x0,0xc,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch229 = { 9, 15, 0, 3, 9, ch229data }; + +static const unsigned char ch230data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x37,0x0,0x49,0x0,0x48,0x0,0x3e,0x0,0x9,0x0, + 0x49,0x0,0x36,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch230 = { 9, 15, 0, 3, 9, ch230data }; + +static const unsigned char ch231data[] = { + 0x18,0x0,0x24,0x0,0xc,0x0,0x3e,0x0,0x41,0x0,0x40,0x0,0x40,0x0,0x40,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch231 = { 9, 15, 0, 3, 9, ch231data }; + +static const unsigned char ch232data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch232 = { 9, 15, 0, 3, 9, ch232data }; + +static const unsigned char ch233data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch233 = { 9, 15, 0, 3, 9, ch233data }; + +static const unsigned char ch234data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch234 = { 9, 15, 0, 3, 9, ch234data }; + +static const unsigned char ch235data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x40,0x0,0x40,0x0,0x7f,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch235 = { 9, 15, 0, 3, 9, ch235data }; + +static const unsigned char ch236data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch236 = { 9, 15, 0, 3, 9, ch236data }; + +static const unsigned char ch237data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch237 = { 9, 15, 0, 3, 9, ch237data }; + +static const unsigned char ch238data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x24,0x0,0x18,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch238 = { 9, 15, 0, 3, 9, ch238data }; + +static const unsigned char ch239data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0, + 0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch239 = { 9, 15, 0, 3, 9, ch239data }; + +static const unsigned char ch240data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x4,0x0,0x28,0x0,0x18,0x0,0x24,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch240 = { 9, 15, 0, 3, 9, ch240data }; + +static const unsigned char ch241data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch241 = { 9, 15, 0, 3, 9, ch241data }; + +static const unsigned char ch242data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch242 = { 9, 15, 0, 3, 9, ch242data }; + +static const unsigned char ch243data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch243 = { 9, 15, 0, 3, 9, ch243data }; + +static const unsigned char ch244data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch244 = { 9, 15, 0, 3, 9, ch244data }; + +static const unsigned char ch245data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x28,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch245 = { 9, 15, 0, 3, 9, ch245data }; + +static const unsigned char ch246data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x41,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x41,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch246 = { 9, 15, 0, 3, 9, ch246data }; + +static const unsigned char ch247data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x1c,0x0,0x8,0x0,0x0,0x0,0x7f,0x0, + 0x0,0x0,0x8,0x0,0x1c,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch247 = { 9, 15, 0, 3, 9, ch247data }; + +static const unsigned char ch248data[] = { + 0x0,0x0,0x0,0x0,0x40,0x0,0x3e,0x0,0x51,0x0,0x51,0x0,0x49,0x0,0x45,0x0, + 0x45,0x0,0x3e,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch248 = { 9, 15, 0, 3, 9, ch248data }; + +static const unsigned char ch249data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0x10,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch249 = { 9, 15, 0, 3, 9, ch249data }; + +static const unsigned char ch250data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch250 = { 9, 15, 0, 3, 9, ch250data }; + +static const unsigned char ch251data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x22,0x0,0x1c,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch251 = { 9, 15, 0, 3, 9, ch251data }; + +static const unsigned char ch252data[] = { + 0x0,0x0,0x0,0x0,0x0,0x0,0x3d,0x0,0x42,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch252 = { 9, 15, 0, 3, 9, ch252data }; + +static const unsigned char ch253data[] = { + 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x4,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch253 = { 9, 15, 0, 3, 9, ch253data }; + +static const unsigned char ch254data[] = { + 0x40,0x0,0x40,0x0,0x40,0x0,0x5e,0x0,0x61,0x0,0x41,0x0,0x41,0x0,0x41,0x0, + 0x61,0x0,0x5e,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch254 = { 9, 15, 0, 3, 9, ch254data }; + +static const unsigned char ch255data[] = { + 0x3c,0x0,0x42,0x0,0x2,0x0,0x3a,0x0,0x46,0x0,0x42,0x0,0x42,0x0,0x42,0x0, + 0x42,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x14,0x0,0x14,0x0,0x0,0x0 +}; +static const GLUTBitmapChar ch255 = { 9, 15, 0, 3, 9, ch255data }; + + +static const GLUTBitmapChar *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 GLUTBitmapFont glutBitmap9By15 = { + "-Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO8859-1", + 15, 256, chars +}; diff --git a/src/glut/dos/hel10.c b/src/glut/dos/hel10.c new file mode 100644 index 00000000000..3d24ffee1ca --- /dev/null +++ b/src/glut/dos/hel10.c @@ -0,0 +1,1019 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch32data[] = { + 0x0 +}; +static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 3, ch32data }; + +static const unsigned char ch33data[] = { + 0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch33 = { 1, 8, -1, 0, 3, ch33data }; + +static const unsigned char ch34data[] = { + 0xa0,0xa0 +}; +static const GLUTBitmapChar ch34 = { 3, 2, -1, -6, 4, ch34data }; + +static const unsigned char ch35data[] = { + 0x50,0x50,0xf8,0x28,0x7c,0x28,0x28 +}; +static const GLUTBitmapChar ch35 = { 6, 7, 0, 0, 6, ch35data }; + +static const unsigned char ch36data[] = { + 0x20,0x70,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20 +}; +static const GLUTBitmapChar ch36 = { 5, 9, 0, 1, 6, ch36data }; + +static const unsigned char ch37data[] = { + 0x26,0x29,0x16,0x10,0x8,0x68,0x94,0x64 +}; +static const GLUTBitmapChar ch37 = { 8, 8, 0, 0, 9, ch37data }; + +static const unsigned char ch38data[] = { + 0x64,0x98,0x98,0xa4,0x60,0x50,0x50,0x20 +}; +static const GLUTBitmapChar ch38 = { 6, 8, -1, 0, 8, ch38data }; + +static const unsigned char ch39data[] = { + 0x80,0x40,0x40 +}; +static const GLUTBitmapChar ch39 = { 2, 3, -1, -5, 3, ch39data }; + +static const unsigned char ch40data[] = { + 0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x40,0x40,0x20 +}; +static const GLUTBitmapChar ch40 = { 3, 10, 0, 2, 4, ch40data }; + +static const unsigned char ch41data[] = { + 0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x40,0x40,0x80 +}; +static const GLUTBitmapChar ch41 = { 3, 10, -1, 2, 4, ch41data }; + +static const unsigned char ch42data[] = { + 0xa0,0x40,0xa0 +}; +static const GLUTBitmapChar ch42 = { 3, 3, 0, -5, 4, ch42data }; + +static const unsigned char ch43data[] = { + 0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch43 = { 5, 5, 0, -1, 6, ch43data }; + +static const unsigned char ch44data[] = { + 0x80,0x40,0x40 +}; +static const GLUTBitmapChar ch44 = { 2, 3, 0, 2, 3, ch44data }; + +static const unsigned char ch45data[] = { + 0xf8 +}; +static const GLUTBitmapChar ch45 = { 5, 1, -1, -3, 7, ch45data }; + +static const unsigned char ch46data[] = { + 0x80 +}; +static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; + +static const unsigned char ch47data[] = { + 0x80,0x80,0x40,0x40,0x40,0x40,0x20,0x20 +}; +static const GLUTBitmapChar ch47 = { 3, 8, 0, 0, 3, ch47data }; + +static const unsigned char ch48data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch48 = { 5, 8, 0, 0, 6, ch48data }; + +static const unsigned char ch49data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0xc0,0x40 +}; +static const GLUTBitmapChar ch49 = { 2, 8, -1, 0, 6, ch49data }; + +static const unsigned char ch50data[] = { + 0xf8,0x80,0x40,0x30,0x8,0x8,0x88,0x70 +}; +static const GLUTBitmapChar ch50 = { 5, 8, 0, 0, 6, ch50data }; + +static const unsigned char ch51data[] = { + 0x70,0x88,0x8,0x8,0x30,0x8,0x88,0x70 +}; +static const GLUTBitmapChar ch51 = { 5, 8, 0, 0, 6, ch51data }; + +static const unsigned char ch52data[] = { + 0x10,0x10,0xf8,0x90,0x50,0x50,0x30,0x10 +}; +static const GLUTBitmapChar ch52 = { 5, 8, 0, 0, 6, ch52data }; + +static const unsigned char ch53data[] = { + 0x70,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8 +}; +static const GLUTBitmapChar ch53 = { 5, 8, 0, 0, 6, ch53data }; + +static const unsigned char ch54data[] = { + 0x70,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch54 = { 5, 8, 0, 0, 6, ch54data }; + +static const unsigned char ch55data[] = { + 0x40,0x40,0x20,0x20,0x10,0x10,0x8,0xf8 +}; +static const GLUTBitmapChar ch55 = { 5, 8, 0, 0, 6, ch55data }; + +static const unsigned char ch56data[] = { + 0x70,0x88,0x88,0x88,0x70,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch56 = { 5, 8, 0, 0, 6, ch56data }; + +static const unsigned char ch57data[] = { + 0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch57 = { 5, 8, 0, 0, 6, ch57data }; + +static const unsigned char ch58data[] = { + 0x80,0x0,0x0,0x0,0x0,0x80 +}; +static const GLUTBitmapChar ch58 = { 1, 6, -1, 0, 3, ch58data }; + +static const unsigned char ch59data[] = { + 0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40 +}; +static const GLUTBitmapChar ch59 = { 2, 8, 0, 2, 3, ch59data }; + +static const unsigned char ch60data[] = { + 0x20,0x40,0x80,0x40,0x20 +}; +static const GLUTBitmapChar ch60 = { 3, 5, -1, -1, 6, ch60data }; + +static const unsigned char ch61data[] = { + 0xf0,0x0,0xf0 +}; +static const GLUTBitmapChar ch61 = { 4, 3, 0, -2, 5, ch61data }; + +static const unsigned char ch62data[] = { + 0x80,0x40,0x20,0x40,0x80 +}; +static const GLUTBitmapChar ch62 = { 3, 5, -1, -1, 6, ch62data }; + +static const unsigned char ch63data[] = { + 0x40,0x0,0x40,0x40,0x20,0x10,0x90,0x60 +}; +static const GLUTBitmapChar ch63 = { 4, 8, -1, 0, 6, ch63data }; + +static const unsigned char ch64data[] = { + 0x3e,0x0,0x40,0x0,0x9b,0x0,0xa4,0x80,0xa4,0x80,0xa2,0x40,0x92,0x40,0x4d,0x40, + 0x20,0x80,0x1f,0x0 +}; +static const GLUTBitmapChar ch64 = { 10, 10, 0, 2, 11, ch64data }; + +static const unsigned char ch65data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10 +}; +static const GLUTBitmapChar ch65 = { 7, 8, 0, 0, 7, ch65data }; + +static const unsigned char ch66data[] = { + 0xf0,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0 +}; +static const GLUTBitmapChar ch66 = { 5, 8, -1, 0, 7, ch66data }; + +static const unsigned char ch67data[] = { + 0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78 +}; +static const GLUTBitmapChar ch67 = { 6, 8, -1, 0, 8, ch67data }; + +static const unsigned char ch68data[] = { + 0xf0,0x88,0x84,0x84,0x84,0x84,0x88,0xf0 +}; +static const GLUTBitmapChar ch68 = { 6, 8, -1, 0, 8, ch68data }; + +static const unsigned char ch69data[] = { + 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8 +}; +static const GLUTBitmapChar ch69 = { 5, 8, -1, 0, 7, ch69data }; + +static const unsigned char ch70data[] = { + 0x80,0x80,0x80,0x80,0xf0,0x80,0x80,0xf8 +}; +static const GLUTBitmapChar ch70 = { 5, 8, -1, 0, 6, ch70data }; + +static const unsigned char ch71data[] = { + 0x74,0x8c,0x84,0x8c,0x80,0x80,0x84,0x78 +}; +static const GLUTBitmapChar ch71 = { 6, 8, -1, 0, 8, ch71data }; + +static const unsigned char ch72data[] = { + 0x84,0x84,0x84,0x84,0xfc,0x84,0x84,0x84 +}; +static const GLUTBitmapChar ch72 = { 6, 8, -1, 0, 8, ch72data }; + +static const unsigned char ch73data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch73 = { 1, 8, -1, 0, 3, ch73data }; + +static const unsigned char ch74data[] = { + 0x60,0x90,0x10,0x10,0x10,0x10,0x10,0x10 +}; +static const GLUTBitmapChar ch74 = { 4, 8, 0, 0, 5, ch74data }; + +static const unsigned char ch75data[] = { + 0x88,0x88,0x90,0x90,0xe0,0xa0,0x90,0x88 +}; +static const GLUTBitmapChar ch75 = { 5, 8, -1, 0, 7, ch75data }; + +static const unsigned char ch76data[] = { + 0xf0,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch76 = { 4, 8, -1, 0, 6, ch76data }; + +static const unsigned char ch77data[] = { + 0x92,0x92,0x92,0xaa,0xaa,0xc6,0xc6,0x82 +}; +static const GLUTBitmapChar ch77 = { 7, 8, -1, 0, 9, ch77data }; + +static const unsigned char ch78data[] = { + 0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4 +}; +static const GLUTBitmapChar ch78 = { 6, 8, -1, 0, 8, ch78data }; + +static const unsigned char ch79data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78 +}; +static const GLUTBitmapChar ch79 = { 6, 8, -1, 0, 8, ch79data }; + +static const unsigned char ch80data[] = { + 0x80,0x80,0x80,0x80,0xf0,0x88,0x88,0xf0 +}; +static const GLUTBitmapChar ch80 = { 5, 8, -1, 0, 7, ch80data }; + +static const unsigned char ch81data[] = { + 0x2,0x7c,0x8c,0x94,0x84,0x84,0x84,0x84,0x78 +}; +static const GLUTBitmapChar ch81 = { 7, 9, -1, 1, 8, ch81data }; + +static const unsigned char ch82data[] = { + 0x88,0x88,0x88,0x88,0xf0,0x88,0x88,0xf0 +}; +static const GLUTBitmapChar ch82 = { 5, 8, -1, 0, 7, ch82data }; + +static const unsigned char ch83data[] = { + 0x70,0x88,0x88,0x8,0x70,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch83 = { 5, 8, -1, 0, 7, ch83data }; + +static const unsigned char ch84data[] = { + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf8 +}; +static const GLUTBitmapChar ch84 = { 5, 8, 0, 0, 5, ch84data }; + +static const unsigned char ch85data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84 +}; +static const GLUTBitmapChar ch85 = { 6, 8, -1, 0, 8, ch85data }; + +static const unsigned char ch86data[] = { + 0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82 +}; +static const GLUTBitmapChar ch86 = { 7, 8, 0, 0, 7, ch86data }; + +static const unsigned char ch87data[] = { + 0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80 +}; +static const GLUTBitmapChar ch87 = { 9, 8, 0, 0, 9, ch87data }; + +static const unsigned char ch88data[] = { + 0x88,0x88,0x50,0x50,0x20,0x50,0x88,0x88 +}; +static const GLUTBitmapChar ch88 = { 5, 8, -1, 0, 7, ch88data }; + +static const unsigned char ch89data[] = { + 0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82 +}; +static const GLUTBitmapChar ch89 = { 7, 8, 0, 0, 7, ch89data }; + +static const unsigned char ch90data[] = { + 0xf8,0x80,0x40,0x20,0x20,0x10,0x8,0xf8 +}; +static const GLUTBitmapChar ch90 = { 5, 8, -1, 0, 7, ch90data }; + +static const unsigned char ch91data[] = { + 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 +}; +static const GLUTBitmapChar ch91 = { 2, 10, -1, 2, 3, ch91data }; + +static const unsigned char ch92data[] = { + 0x20,0x20,0x40,0x40,0x40,0x40,0x80,0x80 +}; +static const GLUTBitmapChar ch92 = { 3, 8, 0, 0, 3, ch92data }; + +static const unsigned char ch93data[] = { + 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 +}; +static const GLUTBitmapChar ch93 = { 2, 10, 0, 2, 3, ch93data }; + +static const unsigned char ch94data[] = { + 0x88,0x50,0x50,0x20,0x20 +}; +static const GLUTBitmapChar ch94 = { 5, 5, 0, -3, 6, ch94data }; + +static const unsigned char ch95data[] = { + 0xfc +}; +static const GLUTBitmapChar ch95 = { 6, 1, 0, 2, 6, ch95data }; + +static const unsigned char ch96data[] = { + 0x80,0x80,0x40 +}; +static const GLUTBitmapChar ch96 = { 2, 3, 0, -5, 3, ch96data }; + +static const unsigned char ch97data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0 +}; +static const GLUTBitmapChar ch97 = { 5, 6, 0, 0, 5, ch97data }; + +static const unsigned char ch98data[] = { + 0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch98 = { 5, 8, 0, 0, 6, ch98data }; + +static const unsigned char ch99data[] = { + 0x60,0x90,0x80,0x80,0x90,0x60 +}; +static const GLUTBitmapChar ch99 = { 4, 6, 0, 0, 5, ch99data }; + +static const unsigned char ch100data[] = { + 0x68,0x98,0x88,0x88,0x98,0x68,0x8,0x8 +}; +static const GLUTBitmapChar ch100 = { 5, 8, 0, 0, 6, ch100data }; + +static const unsigned char ch101data[] = { + 0x60,0x90,0x80,0xf0,0x90,0x60 +}; +static const GLUTBitmapChar ch101 = { 4, 6, 0, 0, 5, ch101data }; + +static const unsigned char ch102data[] = { + 0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30 +}; +static const GLUTBitmapChar ch102 = { 4, 8, 0, 0, 4, ch102data }; + +static const unsigned char ch103data[] = { + 0x70,0x8,0x68,0x98,0x88,0x88,0x98,0x68 +}; +static const GLUTBitmapChar ch103 = { 5, 8, 0, 2, 6, ch103data }; + +static const unsigned char ch104data[] = { + 0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch104 = { 5, 8, 0, 0, 6, ch104data }; + +static const unsigned char ch105data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch105 = { 1, 8, 0, 0, 2, ch105data }; + +static const unsigned char ch106data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch106 = { 1, 9, 0, 1, 2, ch106data }; + +static const unsigned char ch107data[] = { + 0x90,0x90,0xa0,0xc0,0xa0,0x90,0x80,0x80 +}; +static const GLUTBitmapChar ch107 = { 4, 8, 0, 0, 5, ch107data }; + +static const unsigned char ch108data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch108 = { 1, 8, 0, 0, 2, ch108data }; + +static const unsigned char ch109data[] = { + 0x92,0x92,0x92,0x92,0x92,0xec +}; +static const GLUTBitmapChar ch109 = { 7, 6, 0, 0, 8, ch109data }; + +static const unsigned char ch110data[] = { + 0x88,0x88,0x88,0x88,0xc8,0xb0 +}; +static const GLUTBitmapChar ch110 = { 5, 6, 0, 0, 6, ch110data }; + +static const unsigned char ch111data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch111 = { 5, 6, 0, 0, 6, ch111data }; + +static const unsigned char ch112data[] = { + 0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0 +}; +static const GLUTBitmapChar ch112 = { 5, 8, 0, 2, 6, ch112data }; + +static const unsigned char ch113data[] = { + 0x8,0x8,0x68,0x98,0x88,0x88,0x98,0x68 +}; +static const GLUTBitmapChar ch113 = { 5, 8, 0, 2, 6, ch113data }; + +static const unsigned char ch114data[] = { + 0x80,0x80,0x80,0x80,0xc0,0xa0 +}; +static const GLUTBitmapChar ch114 = { 3, 6, 0, 0, 4, ch114data }; + +static const unsigned char ch115data[] = { + 0x60,0x90,0x10,0x60,0x90,0x60 +}; +static const GLUTBitmapChar ch115 = { 4, 6, 0, 0, 5, ch115data }; + +static const unsigned char ch116data[] = { + 0x60,0x40,0x40,0x40,0x40,0xe0,0x40,0x40 +}; +static const GLUTBitmapChar ch116 = { 3, 8, 0, 0, 4, ch116data }; + +static const unsigned char ch117data[] = { + 0x70,0x90,0x90,0x90,0x90,0x90 +}; +static const GLUTBitmapChar ch117 = { 4, 6, 0, 0, 5, ch117data }; + +static const unsigned char ch118data[] = { + 0x20,0x20,0x50,0x50,0x88,0x88 +}; +static const GLUTBitmapChar ch118 = { 5, 6, 0, 0, 6, ch118data }; + +static const unsigned char ch119data[] = { + 0x28,0x28,0x54,0x54,0x92,0x92 +}; +static const GLUTBitmapChar ch119 = { 7, 6, 0, 0, 8, ch119data }; + +static const unsigned char ch120data[] = { + 0x88,0x88,0x50,0x20,0x50,0x88 +}; +static const GLUTBitmapChar ch120 = { 5, 6, 0, 0, 6, ch120data }; + +static const unsigned char ch121data[] = { + 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90 +}; +static const GLUTBitmapChar ch121 = { 4, 8, 0, 2, 5, ch121data }; + +static const unsigned char ch122data[] = { + 0xf0,0x80,0x40,0x20,0x10,0xf0 +}; +static const GLUTBitmapChar ch122 = { 4, 6, 0, 0, 5, ch122data }; + +static const unsigned char ch123data[] = { + 0x20,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x20 +}; +static const GLUTBitmapChar ch123 = { 3, 10, 0, 2, 3, ch123data }; + +static const unsigned char ch124data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch124 = { 1, 10, -1, 2, 3, ch124data }; + +static const unsigned char ch125data[] = { + 0x80,0x40,0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80 +}; +static const GLUTBitmapChar ch125 = { 3, 10, 0, 2, 3, ch125data }; + +static const unsigned char ch126data[] = { + 0x98,0x64 +}; +static const GLUTBitmapChar ch126 = { 6, 2, 0, -3, 7, ch126data }; + +static const unsigned char ch160data[] = { + 0x0 +}; +static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 3, ch160data }; + +static const unsigned char ch161data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch161 = { 1, 8, -1, 2, 3, ch161data }; + +static const unsigned char ch162data[] = { + 0x40,0x70,0xa8,0xa0,0xa0,0xa8,0x70,0x10 +}; +static const GLUTBitmapChar ch162 = { 5, 8, 0, 1, 6, ch162data }; + +static const unsigned char ch163data[] = { + 0xb0,0x48,0x40,0x40,0xe0,0x40,0x48,0x30 +}; +static const GLUTBitmapChar ch163 = { 5, 8, 0, 0, 6, ch163data }; + +static const unsigned char ch164data[] = { + 0x90,0x60,0x90,0x90,0x60,0x90 +}; +static const GLUTBitmapChar ch164 = { 4, 6, 0, -1, 5, ch164data }; + +static const unsigned char ch165data[] = { + 0x20,0xf8,0x20,0xf8,0x50,0x50,0x88,0x88 +}; +static const GLUTBitmapChar ch165 = { 5, 8, 0, 0, 6, ch165data }; + +static const unsigned char ch166data[] = { + 0x80,0x80,0x80,0x80,0x0,0x0,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch166 = { 1, 10, -1, 2, 3, ch166data }; + +static const unsigned char ch167data[] = { + 0x70,0x88,0x18,0x70,0xc8,0x98,0x70,0xc0,0x88,0x70 +}; +static const GLUTBitmapChar ch167 = { 5, 10, 0, 2, 6, ch167data }; + +static const unsigned char ch168data[] = { + 0xa0 +}; +static const GLUTBitmapChar ch168 = { 3, 1, 0, -7, 3, ch168data }; + +static const unsigned char ch169data[] = { + 0x38,0x44,0x9a,0xa2,0x9a,0x44,0x38 +}; +static const GLUTBitmapChar ch169 = { 7, 7, -1, 0, 9, ch169data }; + +static const unsigned char ch170data[] = { + 0xe0,0x0,0xa0,0x20,0xe0 +}; +static const GLUTBitmapChar ch170 = { 3, 5, 0, -3, 4, ch170data }; + +static const unsigned char ch171data[] = { + 0x28,0x50,0xa0,0x50,0x28 +}; +static const GLUTBitmapChar ch171 = { 5, 5, 0, 0, 6, ch171data }; + +static const unsigned char ch172data[] = { + 0x8,0x8,0xf8 +}; +static const GLUTBitmapChar ch172 = { 5, 3, -1, -2, 7, ch172data }; + +static const unsigned char ch173data[] = { + 0xe0 +}; +static const GLUTBitmapChar ch173 = { 3, 1, 0, -3, 4, ch173data }; + +static const unsigned char ch174data[] = { + 0x38,0x44,0xaa,0xb2,0xba,0x44,0x38 +}; +static const GLUTBitmapChar ch174 = { 7, 7, -1, 0, 9, ch174data }; + +static const unsigned char ch175data[] = { + 0xe0 +}; +static const GLUTBitmapChar ch175 = { 3, 1, 0, -7, 3, ch175data }; + +static const unsigned char ch176data[] = { + 0x60,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch176 = { 4, 4, 0, -3, 4, ch176data }; + +static const unsigned char ch177data[] = { + 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch177 = { 5, 7, 0, 0, 6, ch177data }; + +static const unsigned char ch178data[] = { + 0xe0,0x40,0xa0,0x60 +}; +static const GLUTBitmapChar ch178 = { 3, 4, 0, -3, 3, ch178data }; + +static const unsigned char ch179data[] = { + 0xc0,0x20,0x40,0xe0 +}; +static const GLUTBitmapChar ch179 = { 3, 4, 0, -3, 3, ch179data }; + +static const unsigned char ch180data[] = { + 0x80,0x40 +}; +static const GLUTBitmapChar ch180 = { 2, 2, 0, -6, 3, ch180data }; + +static const unsigned char ch181data[] = { + 0x80,0x80,0xf0,0x90,0x90,0x90,0x90,0x90 +}; +static const GLUTBitmapChar ch181 = { 4, 8, 0, 2, 5, ch181data }; + +static const unsigned char ch182data[] = { + 0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x7c +}; +static const GLUTBitmapChar ch182 = { 6, 10, 0, 2, 6, ch182data }; + +static const unsigned char ch183data[] = { + 0xc0 +}; +static const GLUTBitmapChar ch183 = { 2, 1, 0, -3, 3, ch183data }; + +static const unsigned char ch184data[] = { + 0xc0,0x40 +}; +static const GLUTBitmapChar ch184 = { 2, 2, 0, 2, 3, ch184data }; + +static const unsigned char ch185data[] = { + 0x40,0x40,0xc0,0x40 +}; +static const GLUTBitmapChar ch185 = { 2, 4, 0, -3, 3, ch185data }; + +static const unsigned char ch186data[] = { + 0xe0,0x0,0xe0,0xa0,0xe0 +}; +static const GLUTBitmapChar ch186 = { 3, 5, 0, -3, 4, ch186data }; + +static const unsigned char ch187data[] = { + 0xa0,0x50,0x28,0x50,0xa0 +}; +static const GLUTBitmapChar ch187 = { 5, 5, 0, 0, 6, ch187data }; + +static const unsigned char ch188data[] = { + 0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0x48,0x0,0x44,0x0,0xc4,0x0,0x42,0x0 +}; +static const GLUTBitmapChar ch188 = { 9, 8, 0, 0, 9, ch188data }; + +static const unsigned char ch189data[] = { + 0x27,0x12,0x15,0xb,0x48,0x44,0xc4,0x42 +}; +static const GLUTBitmapChar ch189 = { 8, 8, 0, 0, 9, ch189data }; + +static const unsigned char ch190data[] = { + 0x21,0x0,0x17,0x80,0x13,0x0,0x9,0x0,0xc8,0x0,0x24,0x0,0x44,0x0,0xe2,0x0 +}; +static const GLUTBitmapChar ch190 = { 9, 8, 0, 0, 9, ch190data }; + +static const unsigned char ch191data[] = { + 0x60,0x90,0x80,0x40,0x20,0x20,0x0,0x20 +}; +static const GLUTBitmapChar ch191 = { 4, 8, -1, 2, 6, ch191data }; + +static const unsigned char ch192data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch192 = { 7, 11, 0, 0, 7, ch192data }; + +static const unsigned char ch193data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch193 = { 7, 11, 0, 0, 7, ch193data }; + +static const unsigned char ch194data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch194 = { 7, 11, 0, 0, 7, ch194data }; + +static const unsigned char ch195data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28,0x14 +}; +static const GLUTBitmapChar ch195 = { 7, 11, 0, 0, 7, ch195data }; + +static const unsigned char ch196data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x0,0x28 +}; +static const GLUTBitmapChar ch196 = { 7, 10, 0, 0, 7, ch196data }; + +static const unsigned char ch197data[] = { + 0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,0x10,0x28,0x10 +}; +static const GLUTBitmapChar ch197 = { 7, 11, 0, 0, 7, ch197data }; + +static const unsigned char ch198data[] = { + 0x8f,0x80,0x88,0x0,0x78,0x0,0x48,0x0,0x2f,0x80,0x28,0x0,0x18,0x0,0x1f,0x80 +}; +static const GLUTBitmapChar ch198 = { 9, 8, 0, 0, 10, ch198data }; + +static const unsigned char ch199data[] = { + 0x30,0x10,0x78,0x84,0x80,0x80,0x80,0x80,0x84,0x78 +}; +static const GLUTBitmapChar ch199 = { 6, 10, -1, 2, 8, ch199data }; + +static const unsigned char ch200data[] = { + 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch200 = { 5, 11, -1, 0, 7, ch200data }; + +static const unsigned char ch201data[] = { + 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch201 = { 5, 11, -1, 0, 7, ch201data }; + +static const unsigned char ch202data[] = { + 0xf8,0x80,0x80,0xf8,0x80,0x80,0x80,0xf8,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch202 = { 5, 11, -1, 0, 7, ch202data }; + +static const unsigned char ch203data[] = { + 0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,0x0,0x50 +}; +static const GLUTBitmapChar ch203 = { 5, 10, -1, 0, 7, ch203data }; + +static const unsigned char ch204data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch204 = { 2, 11, 0, 0, 3, ch204data }; + +static const unsigned char ch205data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 +}; +static const GLUTBitmapChar ch205 = { 2, 11, -1, 0, 3, ch205data }; + +static const unsigned char ch206data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch206 = { 3, 11, 0, 0, 3, ch206data }; + +static const unsigned char ch207data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 +}; +static const GLUTBitmapChar ch207 = { 3, 10, 0, 0, 3, ch207data }; + +static const unsigned char ch208data[] = { + 0x78,0x44,0x42,0x42,0xf2,0x42,0x44,0x78 +}; +static const GLUTBitmapChar ch208 = { 7, 8, 0, 0, 8, ch208data }; + +static const unsigned char ch209data[] = { + 0x8c,0x8c,0x94,0x94,0xa4,0xa4,0xc4,0xc4,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch209 = { 6, 11, -1, 0, 8, ch209data }; + +static const unsigned char ch210data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch210 = { 6, 11, -1, 0, 8, ch210data }; + +static const unsigned char ch211data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch211 = { 6, 11, -1, 0, 8, ch211data }; + +static const unsigned char ch212data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch212 = { 6, 11, -1, 0, 8, ch212data }; + +static const unsigned char ch213data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch213 = { 6, 11, -1, 0, 8, ch213data }; + +static const unsigned char ch214data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x0,0x48 +}; +static const GLUTBitmapChar ch214 = { 6, 10, -1, 0, 8, ch214data }; + +static const unsigned char ch215data[] = { + 0x88,0x50,0x20,0x50,0x88 +}; +static const GLUTBitmapChar ch215 = { 5, 5, 0, -1, 6, ch215data }; + +static const unsigned char ch216data[] = { + 0x80,0x78,0xc4,0xa4,0xa4,0x94,0x94,0x8c,0x78,0x4 +}; +static const GLUTBitmapChar ch216 = { 6, 10, -1, 1, 8, ch216data }; + +static const unsigned char ch217data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch217 = { 6, 11, -1, 0, 8, ch217data }; + +static const unsigned char ch218data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch218 = { 6, 11, -1, 0, 8, ch218data }; + +static const unsigned char ch219data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch219 = { 6, 11, -1, 0, 8, ch219data }; + +static const unsigned char ch220data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48 +}; +static const GLUTBitmapChar ch220 = { 6, 10, -1, 0, 8, ch220data }; + +static const unsigned char ch221data[] = { + 0x10,0x10,0x10,0x28,0x28,0x44,0x44,0x82,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch221 = { 7, 11, 0, 0, 7, ch221data }; + +static const unsigned char ch222data[] = { + 0x80,0x80,0xf0,0x88,0x88,0xf0,0x80,0x80 +}; +static const GLUTBitmapChar ch222 = { 5, 8, -1, 0, 7, ch222data }; + +static const unsigned char ch223data[] = { + 0xa0,0x90,0x90,0x90,0xa0,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch223 = { 4, 8, 0, 0, 5, ch223data }; + +static const unsigned char ch224data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch224 = { 5, 9, 0, 0, 5, ch224data }; + +static const unsigned char ch225data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch225 = { 5, 9, 0, 0, 5, ch225data }; + +static const unsigned char ch226data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch226 = { 5, 9, 0, 0, 5, ch226data }; + +static const unsigned char ch227data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0xa0,0x50 +}; +static const GLUTBitmapChar ch227 = { 5, 9, 0, 0, 5, ch227data }; + +static const unsigned char ch228data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x0,0x50 +}; +static const GLUTBitmapChar ch228 = { 5, 8, 0, 0, 5, ch228data }; + +static const unsigned char ch229data[] = { + 0x68,0x90,0x90,0x70,0x10,0xe0,0x20,0x50,0x20 +}; +static const GLUTBitmapChar ch229 = { 5, 9, 0, 0, 5, ch229data }; + +static const unsigned char ch230data[] = { + 0x6c,0x92,0x90,0x7e,0x12,0xec +}; +static const GLUTBitmapChar ch230 = { 7, 6, 0, 0, 8, ch230data }; + +static const unsigned char ch231data[] = { + 0x60,0x20,0x60,0x90,0x80,0x80,0x90,0x60 +}; +static const GLUTBitmapChar ch231 = { 4, 8, 0, 2, 5, ch231data }; + +static const unsigned char ch232data[] = { + 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch232 = { 4, 9, 0, 0, 5, ch232data }; + +static const unsigned char ch233data[] = { + 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch233 = { 4, 9, 0, 0, 5, ch233data }; + +static const unsigned char ch234data[] = { + 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch234 = { 4, 9, 0, 0, 5, ch234data }; + +static const unsigned char ch235data[] = { + 0x60,0x90,0x80,0xf0,0x90,0x60,0x0,0x50 +}; +static const GLUTBitmapChar ch235 = { 4, 8, 0, 0, 5, ch235data }; + +static const unsigned char ch236data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch236 = { 2, 9, 1, 0, 2, ch236data }; + +static const unsigned char ch237data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 +}; +static const GLUTBitmapChar ch237 = { 2, 9, 0, 0, 2, ch237data }; + +static const unsigned char ch238data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch238 = { 3, 9, 1, 0, 2, ch238data }; + +static const unsigned char ch239data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 +}; +static const GLUTBitmapChar ch239 = { 3, 8, 0, 0, 2, ch239data }; + +static const unsigned char ch240data[] = { + 0x70,0x88,0x88,0x88,0x88,0x78,0x90,0x60,0x50 +}; +static const GLUTBitmapChar ch240 = { 5, 9, 0, 0, 6, ch240data }; + +static const unsigned char ch241data[] = { + 0x90,0x90,0x90,0x90,0x90,0xe0,0x0,0xa0,0x50 +}; +static const GLUTBitmapChar ch241 = { 4, 9, 0, 0, 5, ch241data }; + +static const unsigned char ch242data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch242 = { 5, 9, 0, 0, 6, ch242data }; + +static const unsigned char ch243data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch243 = { 5, 9, 0, 0, 6, ch243data }; + +static const unsigned char ch244data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch244 = { 5, 9, 0, 0, 6, ch244data }; + +static const unsigned char ch245data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch245 = { 5, 9, 0, 0, 6, ch245data }; + +static const unsigned char ch246data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x0,0x50 +}; +static const GLUTBitmapChar ch246 = { 5, 8, 0, 0, 6, ch246data }; + +static const unsigned char ch247data[] = { + 0x20,0x0,0xf8,0x0,0x20 +}; +static const GLUTBitmapChar ch247 = { 5, 5, 0, -1, 6, ch247data }; + +static const unsigned char ch248data[] = { + 0x70,0x88,0xc8,0xa8,0x98,0x74 +}; +static const GLUTBitmapChar ch248 = { 6, 6, 0, 0, 6, ch248data }; + +static const unsigned char ch249data[] = { + 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch249 = { 4, 9, 0, 0, 5, ch249data }; + +static const unsigned char ch250data[] = { + 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch250 = { 4, 9, 0, 0, 5, ch250data }; + +static const unsigned char ch251data[] = { + 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch251 = { 4, 9, 0, 0, 5, ch251data }; + +static const unsigned char ch252data[] = { + 0x70,0x90,0x90,0x90,0x90,0x90,0x0,0x50 +}; +static const GLUTBitmapChar ch252 = { 4, 8, 0, 0, 5, ch252data }; + +static const unsigned char ch253data[] = { + 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch253 = { 4, 11, 0, 2, 5, ch253data }; + +static const unsigned char ch254data[] = { + 0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch254 = { 5, 10, 0, 2, 6, ch254data }; + +static const unsigned char ch255data[] = { + 0x80,0x40,0x40,0x60,0xa0,0xa0,0x90,0x90,0x0,0x50 +}; +static const GLUTBitmapChar ch255 = { 4, 10, 0, 2, 5, ch255data }; + + +static const GLUTBitmapChar *chars[] = { + 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, + &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, 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, 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 GLUTBitmapFont glutBitmapHelvetica10 = { + "-Adobe-Helvetica-Medium-R-Normal--10-100-75-75-P-56-ISO8859-1", + 13, 256, chars +}; diff --git a/src/glut/dos/hel12.c b/src/glut/dos/hel12.c new file mode 100644 index 00000000000..0fe8b0919b5 --- /dev/null +++ b/src/glut/dos/hel12.c @@ -0,0 +1,1029 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch32data[] = { + 0x0 +}; +static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 4, ch32data }; + +static const unsigned char ch33data[] = { + 0x80,0x0,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch33 = { 1, 9, -1, 0, 3, ch33data }; + +static const unsigned char ch34data[] = { + 0xa0,0xa0,0xa0 +}; +static const GLUTBitmapChar ch34 = { 3, 3, -1, -6, 5, ch34data }; + +static const unsigned char ch35data[] = { + 0x50,0x50,0x50,0xfc,0x28,0xfc,0x28,0x28 +}; +static const GLUTBitmapChar ch35 = { 6, 8, 0, 0, 7, ch35data }; + +static const unsigned char ch36data[] = { + 0x20,0x70,0xa8,0xa8,0x28,0x70,0xa0,0xa8,0x70,0x20 +}; +static const GLUTBitmapChar ch36 = { 5, 10, -1, 1, 7, ch36data }; + +static const unsigned char ch37data[] = { + 0x23,0x0,0x14,0x80,0x14,0x80,0x13,0x0,0x8,0x0,0x68,0x0,0x94,0x0,0x94,0x0, + 0x62,0x0 +}; +static const GLUTBitmapChar ch37 = { 9, 9, -1, 0, 11, ch37data }; + +static const unsigned char ch38data[] = { + 0x72,0x8c,0x84,0x8a,0x50,0x30,0x48,0x48,0x30 +}; +static const GLUTBitmapChar ch38 = { 7, 9, -1, 0, 9, ch38data }; + +static const unsigned char ch39data[] = { + 0x80,0x40,0xc0 +}; +static const GLUTBitmapChar ch39 = { 2, 3, -1, -6, 3, ch39data }; + +static const unsigned char ch40data[] = { + 0x20,0x40,0x40,0x80,0x80,0x80,0x80,0x80,0x80,0x40,0x40,0x20 +}; +static const GLUTBitmapChar ch40 = { 3, 12, -1, 3, 4, ch40data }; + +static const unsigned char ch41data[] = { + 0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x40,0x80 +}; +static const GLUTBitmapChar ch41 = { 3, 12, 0, 3, 4, ch41data }; + +static const unsigned char ch42data[] = { + 0xa0,0x40,0xa0 +}; +static const GLUTBitmapChar ch42 = { 3, 3, -1, -6, 5, ch42data }; + +static const unsigned char ch43data[] = { + 0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch43 = { 5, 5, -1, -1, 7, ch43data }; + +static const unsigned char ch44data[] = { + 0x80,0x40,0x40 +}; +static const GLUTBitmapChar ch44 = { 2, 3, -1, 2, 4, ch44data }; + +static const unsigned char ch45data[] = { + 0xf8 +}; +static const GLUTBitmapChar ch45 = { 5, 1, -1, -3, 8, ch45data }; + +static const unsigned char ch46data[] = { + 0x80 +}; +static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; + +static const unsigned char ch47data[] = { + 0x80,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10 +}; +static const GLUTBitmapChar ch47 = { 4, 9, 0, 0, 4, ch47data }; + +static const unsigned char ch48data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch48 = { 5, 9, -1, 0, 7, ch48data }; + +static const unsigned char ch49data[] = { + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe0,0x20 +}; +static const GLUTBitmapChar ch49 = { 3, 9, -1, 0, 7, ch49data }; + +static const unsigned char ch50data[] = { + 0xf8,0x80,0x80,0x40,0x20,0x10,0x8,0x88,0x70 +}; +static const GLUTBitmapChar ch50 = { 5, 9, -1, 0, 7, ch50data }; + +static const unsigned char ch51data[] = { + 0x70,0x88,0x88,0x8,0x8,0x30,0x8,0x88,0x70 +}; +static const GLUTBitmapChar ch51 = { 5, 9, -1, 0, 7, ch51data }; + +static const unsigned char ch52data[] = { + 0x8,0x8,0xfc,0x88,0x48,0x28,0x28,0x18,0x8 +}; +static const GLUTBitmapChar ch52 = { 6, 9, 0, 0, 7, ch52data }; + +static const unsigned char ch53data[] = { + 0x70,0x88,0x88,0x8,0x8,0xf0,0x80,0x80,0xf8 +}; +static const GLUTBitmapChar ch53 = { 5, 9, -1, 0, 7, ch53data }; + +static const unsigned char ch54data[] = { + 0x70,0x88,0x88,0x88,0xc8,0xb0,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch54 = { 5, 9, -1, 0, 7, ch54data }; + +static const unsigned char ch55data[] = { + 0x40,0x40,0x20,0x20,0x20,0x10,0x10,0x8,0xf8 +}; +static const GLUTBitmapChar ch55 = { 5, 9, -1, 0, 7, ch55data }; + +static const unsigned char ch56data[] = { + 0x70,0x88,0x88,0x88,0x88,0x70,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch56 = { 5, 9, -1, 0, 7, ch56data }; + +static const unsigned char ch57data[] = { + 0x70,0x88,0x8,0x8,0x78,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch57 = { 5, 9, -1, 0, 7, ch57data }; + +static const unsigned char ch58data[] = { + 0x80,0x0,0x0,0x0,0x0,0x80 +}; +static const GLUTBitmapChar ch58 = { 1, 6, -1, 0, 3, ch58data }; + +static const unsigned char ch59data[] = { + 0x80,0x40,0x40,0x0,0x0,0x0,0x0,0x40 +}; +static const GLUTBitmapChar ch59 = { 2, 8, 0, 2, 3, ch59data }; + +static const unsigned char ch60data[] = { + 0xc,0x30,0xc0,0x30,0xc +}; +static const GLUTBitmapChar ch60 = { 6, 5, 0, -1, 7, ch60data }; + +static const unsigned char ch61data[] = { + 0xf8,0x0,0xf8 +}; +static const GLUTBitmapChar ch61 = { 5, 3, -1, -2, 7, ch61data }; + +static const unsigned char ch62data[] = { + 0xc0,0x30,0xc,0x30,0xc0 +}; +static const GLUTBitmapChar ch62 = { 6, 5, -1, -1, 7, ch62data }; + +static const unsigned char ch63data[] = { + 0x20,0x0,0x20,0x20,0x10,0x10,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch63 = { 5, 9, -1, 0, 7, ch63data }; + +static const unsigned char ch64data[] = { + 0x3e,0x0,0x40,0x0,0x9b,0x0,0xa6,0x80,0xa2,0x40,0xa2,0x40,0x92,0x40,0x4d,0x40, + 0x60,0x80,0x1f,0x0 +}; +static const GLUTBitmapChar ch64 = { 10, 10, -1, 1, 12, ch64data }; + +static const unsigned char ch65data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x28,0x10 +}; +static const GLUTBitmapChar ch65 = { 7, 9, -1, 0, 9, ch65data }; + +static const unsigned char ch66data[] = { + 0xf8,0x84,0x84,0x84,0xf8,0x84,0x84,0x84,0xf8 +}; +static const GLUTBitmapChar ch66 = { 6, 9, -1, 0, 8, ch66data }; + +static const unsigned char ch67data[] = { + 0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c +}; +static const GLUTBitmapChar ch67 = { 7, 9, -1, 0, 9, ch67data }; + +static const unsigned char ch68data[] = { + 0xf8,0x84,0x82,0x82,0x82,0x82,0x82,0x84,0xf8 +}; +static const GLUTBitmapChar ch68 = { 7, 9, -1, 0, 9, ch68data }; + +static const unsigned char ch69data[] = { + 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc +}; +static const GLUTBitmapChar ch69 = { 6, 9, -1, 0, 8, ch69data }; + +static const unsigned char ch70data[] = { + 0x80,0x80,0x80,0x80,0xf8,0x80,0x80,0x80,0xfc +}; +static const GLUTBitmapChar ch70 = { 6, 9, -1, 0, 8, ch70data }; + +static const unsigned char ch71data[] = { + 0x3a,0x46,0x82,0x82,0x8e,0x80,0x80,0x42,0x3c +}; +static const GLUTBitmapChar ch71 = { 7, 9, -1, 0, 9, ch71data }; + +static const unsigned char ch72data[] = { + 0x82,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,0x82 +}; +static const GLUTBitmapChar ch72 = { 7, 9, -1, 0, 9, ch72data }; + +static const unsigned char ch73data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch73 = { 1, 9, -1, 0, 3, ch73data }; + +static const unsigned char ch74data[] = { + 0x70,0x88,0x88,0x8,0x8,0x8,0x8,0x8,0x8 +}; +static const GLUTBitmapChar ch74 = { 5, 9, -1, 0, 7, ch74data }; + +static const unsigned char ch75data[] = { + 0x82,0x84,0x88,0x90,0xe0,0xa0,0x90,0x88,0x84 +}; +static const GLUTBitmapChar ch75 = { 7, 9, -1, 0, 8, ch75data }; + +static const unsigned char ch76data[] = { + 0xf8,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch76 = { 5, 9, -1, 0, 7, ch76data }; + +static const unsigned char ch77data[] = { + 0x88,0x80,0x88,0x80,0x94,0x80,0x94,0x80,0xa2,0x80,0xa2,0x80,0xc1,0x80,0xc1,0x80, + 0x80,0x80 +}; +static const GLUTBitmapChar ch77 = { 9, 9, -1, 0, 11, ch77data }; + +static const unsigned char ch78data[] = { + 0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82 +}; +static const GLUTBitmapChar ch78 = { 7, 9, -1, 0, 9, ch78data }; + +static const unsigned char ch79data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c +}; +static const GLUTBitmapChar ch79 = { 8, 9, -1, 0, 10, ch79data }; + +static const unsigned char ch80data[] = { + 0x80,0x80,0x80,0x80,0xf8,0x84,0x84,0x84,0xf8 +}; +static const GLUTBitmapChar ch80 = { 6, 9, -1, 0, 8, ch80data }; + +static const unsigned char ch81data[] = { + 0x3d,0x42,0x85,0x89,0x81,0x81,0x81,0x42,0x3c +}; +static const GLUTBitmapChar ch81 = { 8, 9, -1, 0, 10, ch81data }; + +static const unsigned char ch82data[] = { + 0x84,0x84,0x84,0x88,0xf8,0x84,0x84,0x84,0xf8 +}; +static const GLUTBitmapChar ch82 = { 6, 9, -1, 0, 8, ch82data }; + +static const unsigned char ch83data[] = { + 0x78,0x84,0x84,0x4,0x18,0x60,0x80,0x84,0x78 +}; +static const GLUTBitmapChar ch83 = { 6, 9, -1, 0, 8, ch83data }; + +static const unsigned char ch84data[] = { + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xfe +}; +static const GLUTBitmapChar ch84 = { 7, 9, 0, 0, 7, ch84data }; + +static const unsigned char ch85data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84 +}; +static const GLUTBitmapChar ch85 = { 6, 9, -1, 0, 8, ch85data }; + +static const unsigned char ch86data[] = { + 0x10,0x10,0x28,0x28,0x44,0x44,0x44,0x82,0x82 +}; +static const GLUTBitmapChar ch86 = { 7, 9, -1, 0, 9, ch86data }; + +static const unsigned char ch87data[] = { + 0x22,0x0,0x22,0x0,0x22,0x0,0x55,0x0,0x55,0x0,0x49,0x0,0x88,0x80,0x88,0x80, + 0x88,0x80 +}; +static const GLUTBitmapChar ch87 = { 9, 9, -1, 0, 11, ch87data }; + +static const unsigned char ch88data[] = { + 0x82,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x82 +}; +static const GLUTBitmapChar ch88 = { 7, 9, -1, 0, 9, ch88data }; + +static const unsigned char ch89data[] = { + 0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82 +}; +static const GLUTBitmapChar ch89 = { 7, 9, -1, 0, 9, ch89data }; + +static const unsigned char ch90data[] = { + 0xfe,0x80,0x40,0x20,0x10,0x8,0x4,0x2,0xfe +}; +static const GLUTBitmapChar ch90 = { 7, 9, -1, 0, 9, ch90data }; + +static const unsigned char ch91data[] = { + 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 +}; +static const GLUTBitmapChar ch91 = { 2, 12, -1, 3, 3, ch91data }; + +static const unsigned char ch92data[] = { + 0x10,0x10,0x20,0x20,0x20,0x40,0x40,0x80,0x80 +}; +static const GLUTBitmapChar ch92 = { 4, 9, 0, 0, 4, ch92data }; + +static const unsigned char ch93data[] = { + 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 +}; +static const GLUTBitmapChar ch93 = { 2, 12, 0, 3, 3, ch93data }; + +static const unsigned char ch94data[] = { + 0x88,0x50,0x20 +}; +static const GLUTBitmapChar ch94 = { 5, 3, 0, -5, 6, ch94data }; + +static const unsigned char ch95data[] = { + 0xfe +}; +static const GLUTBitmapChar ch95 = { 7, 1, 0, 2, 7, ch95data }; + +static const unsigned char ch96data[] = { + 0xc0,0x80,0x40 +}; +static const GLUTBitmapChar ch96 = { 2, 3, 0, -6, 3, ch96data }; + +static const unsigned char ch97data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70 +}; +static const GLUTBitmapChar ch97 = { 6, 7, -1, 0, 7, ch97data }; + +static const unsigned char ch98data[] = { + 0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch98 = { 5, 9, -1, 0, 7, ch98data }; + +static const unsigned char ch99data[] = { + 0x70,0x88,0x80,0x80,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch99 = { 5, 7, -1, 0, 7, ch99data }; + +static const unsigned char ch100data[] = { + 0x68,0x98,0x88,0x88,0x88,0x98,0x68,0x8,0x8 +}; +static const GLUTBitmapChar ch100 = { 5, 9, -1, 0, 7, ch100data }; + +static const unsigned char ch101data[] = { + 0x70,0x88,0x80,0xf8,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch101 = { 5, 7, -1, 0, 7, ch101data }; + +static const unsigned char ch102data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30 +}; +static const GLUTBitmapChar ch102 = { 4, 9, 0, 0, 3, ch102data }; + +static const unsigned char ch103data[] = { + 0x70,0x88,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68 +}; +static const GLUTBitmapChar ch103 = { 5, 10, -1, 3, 7, ch103data }; + +static const unsigned char ch104data[] = { + 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch104 = { 5, 9, -1, 0, 7, ch104data }; + +static const unsigned char ch105data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch105 = { 1, 9, -1, 0, 3, ch105data }; + +static const unsigned char ch106data[] = { + 0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40 +}; +static const GLUTBitmapChar ch106 = { 2, 12, 0, 3, 3, ch106data }; + +static const unsigned char ch107data[] = { + 0x88,0x90,0xa0,0xc0,0xc0,0xa0,0x90,0x80,0x80 +}; +static const GLUTBitmapChar ch107 = { 5, 9, -1, 0, 6, ch107data }; + +static const unsigned char ch108data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch108 = { 1, 9, -1, 0, 3, ch108data }; + +static const unsigned char ch109data[] = { + 0x92,0x92,0x92,0x92,0x92,0xda,0xa4 +}; +static const GLUTBitmapChar ch109 = { 7, 7, -1, 0, 9, ch109data }; + +static const unsigned char ch110data[] = { + 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0 +}; +static const GLUTBitmapChar ch110 = { 5, 7, -1, 0, 7, ch110data }; + +static const unsigned char ch111data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch111 = { 5, 7, -1, 0, 7, ch111data }; + +static const unsigned char ch112data[] = { + 0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0 +}; +static const GLUTBitmapChar ch112 = { 5, 10, -1, 3, 7, ch112data }; + +static const unsigned char ch113data[] = { + 0x8,0x8,0x8,0x68,0x98,0x88,0x88,0x88,0x98,0x68 +}; +static const GLUTBitmapChar ch113 = { 5, 10, -1, 3, 7, ch113data }; + +static const unsigned char ch114data[] = { + 0x80,0x80,0x80,0x80,0x80,0xc0,0xa0 +}; +static const GLUTBitmapChar ch114 = { 3, 7, -1, 0, 4, ch114data }; + +static const unsigned char ch115data[] = { + 0x60,0x90,0x10,0x60,0x80,0x90,0x60 +}; +static const GLUTBitmapChar ch115 = { 4, 7, -1, 0, 6, ch115data }; + +static const unsigned char ch116data[] = { + 0x60,0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x40 +}; +static const GLUTBitmapChar ch116 = { 3, 9, 0, 0, 3, ch116data }; + +static const unsigned char ch117data[] = { + 0x68,0x98,0x88,0x88,0x88,0x88,0x88 +}; +static const GLUTBitmapChar ch117 = { 5, 7, -1, 0, 7, ch117data }; + +static const unsigned char ch118data[] = { + 0x20,0x20,0x50,0x50,0x88,0x88,0x88 +}; +static const GLUTBitmapChar ch118 = { 5, 7, -1, 0, 7, ch118data }; + +static const unsigned char ch119data[] = { + 0x22,0x0,0x22,0x0,0x55,0x0,0x49,0x0,0x49,0x0,0x88,0x80,0x88,0x80 +}; +static const GLUTBitmapChar ch119 = { 9, 7, 0, 0, 9, ch119data }; + +static const unsigned char ch120data[] = { + 0x84,0x84,0x48,0x30,0x30,0x48,0x84 +}; +static const GLUTBitmapChar ch120 = { 6, 7, 0, 0, 6, ch120data }; + +static const unsigned char ch121data[] = { + 0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88 +}; +static const GLUTBitmapChar ch121 = { 5, 10, -1, 3, 7, ch121data }; + +static const unsigned char ch122data[] = { + 0xf0,0x80,0x40,0x40,0x20,0x10,0xf0 +}; +static const GLUTBitmapChar ch122 = { 4, 7, -1, 0, 6, ch122data }; + +static const unsigned char ch123data[] = { + 0x30,0x40,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30 +}; +static const GLUTBitmapChar ch123 = { 4, 12, 0, 3, 4, ch123data }; + +static const unsigned char ch124data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch124 = { 1, 12, -1, 3, 3, ch124data }; + +static const unsigned char ch125data[] = { + 0xc0,0x20,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xc0 +}; +static const GLUTBitmapChar ch125 = { 4, 12, 0, 3, 4, ch125data }; + +static const unsigned char ch126data[] = { + 0x98,0x64 +}; +static const GLUTBitmapChar ch126 = { 6, 2, 0, -3, 7, ch126data }; + +static const unsigned char ch160data[] = { + 0x0 +}; +static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 4, ch160data }; + +static const unsigned char ch161data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch161 = { 1, 10, -1, 3, 3, ch161data }; + +static const unsigned char ch162data[] = { + 0x40,0x70,0xc8,0xa0,0xa0,0xa0,0xa8,0x70,0x10 +}; +static const GLUTBitmapChar ch162 = { 5, 9, -1, 1, 7, ch162data }; + +static const unsigned char ch163data[] = { + 0xb0,0x48,0x20,0x20,0xf0,0x40,0x40,0x48,0x30 +}; +static const GLUTBitmapChar ch163 = { 5, 9, -1, 0, 7, ch163data }; + +static const unsigned char ch164data[] = { + 0x84,0x78,0x48,0x48,0x78,0x84 +}; +static const GLUTBitmapChar ch164 = { 6, 6, 0, -1, 7, ch164data }; + +static const unsigned char ch165data[] = { + 0x20,0x20,0xf8,0x20,0xf8,0x20,0x50,0x88,0x88 +}; +static const GLUTBitmapChar ch165 = { 5, 9, -1, 0, 7, ch165data }; + +static const unsigned char ch166data[] = { + 0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch166 = { 1, 11, -1, 2, 3, ch166data }; + +static const unsigned char ch167data[] = { + 0x70,0x88,0x8,0x30,0x48,0x88,0x88,0x90,0x60,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch167 = { 5, 12, 0, 3, 6, ch167data }; + +static const unsigned char ch168data[] = { + 0xa0 +}; +static const GLUTBitmapChar ch168 = { 3, 1, 0, -8, 3, ch168data }; + +static const unsigned char ch169data[] = { + 0x3e,0x0,0x41,0x0,0x9c,0x80,0xa2,0x80,0xa0,0x80,0xa2,0x80,0x9c,0x80,0x41,0x0, + 0x3e,0x0 +}; +static const GLUTBitmapChar ch169 = { 9, 9, -1, 0, 11, ch169data }; + +static const unsigned char ch170data[] = { + 0xe0,0x0,0xa0,0x20,0xe0 +}; +static const GLUTBitmapChar ch170 = { 3, 5, -1, -4, 5, ch170data }; + +static const unsigned char ch171data[] = { + 0x28,0x50,0xa0,0x50,0x28 +}; +static const GLUTBitmapChar ch171 = { 5, 5, -1, -1, 7, ch171data }; + +static const unsigned char ch172data[] = { + 0x4,0x4,0x4,0xfc +}; +static const GLUTBitmapChar ch172 = { 6, 4, -1, -2, 8, ch172data }; + +static const unsigned char ch173data[] = { + 0xf0 +}; +static const GLUTBitmapChar ch173 = { 4, 1, 0, -3, 5, ch173data }; + +static const unsigned char ch174data[] = { + 0x3e,0x0,0x41,0x0,0x94,0x80,0x94,0x80,0x98,0x80,0x94,0x80,0x9c,0x80,0x41,0x0, + 0x3e,0x0 +}; +static const GLUTBitmapChar ch174 = { 9, 9, -1, 0, 11, ch174data }; + +static const unsigned char ch175data[] = { + 0xf0 +}; +static const GLUTBitmapChar ch175 = { 4, 1, 0, -8, 4, ch175data }; + +static const unsigned char ch176data[] = { + 0x60,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch176 = { 4, 4, 0, -4, 5, ch176data }; + +static const unsigned char ch177data[] = { + 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch177 = { 5, 7, -1, 0, 7, ch177data }; + +static const unsigned char ch178data[] = { + 0xf0,0x40,0x20,0x90,0x60 +}; +static const GLUTBitmapChar ch178 = { 4, 5, 0, -3, 4, ch178data }; + +static const unsigned char ch179data[] = { + 0xc0,0x20,0x40,0x20,0xe0 +}; +static const GLUTBitmapChar ch179 = { 3, 5, 0, -3, 4, ch179data }; + +static const unsigned char ch180data[] = { + 0x80,0x40 +}; +static const GLUTBitmapChar ch180 = { 2, 2, 0, -8, 2, ch180data }; + +static const unsigned char ch181data[] = { + 0x80,0x80,0x80,0xe8,0x98,0x88,0x88,0x88,0x88,0x88 +}; +static const GLUTBitmapChar ch181 = { 5, 10, -1, 3, 7, ch181data }; + +static const unsigned char ch182data[] = { + 0x28,0x28,0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x68,0x3c +}; +static const GLUTBitmapChar ch182 = { 6, 12, 0, 3, 7, ch182data }; + +static const unsigned char ch183data[] = { + 0x80 +}; +static const GLUTBitmapChar ch183 = { 1, 1, -1, -3, 3, ch183data }; + +static const unsigned char ch184data[] = { + 0xc0,0x20,0x20,0x40 +}; +static const GLUTBitmapChar ch184 = { 3, 4, 0, 3, 3, ch184data }; + +static const unsigned char ch185data[] = { + 0x40,0x40,0x40,0xc0,0x40 +}; +static const GLUTBitmapChar ch185 = { 2, 5, -1, -3, 4, ch185data }; + +static const unsigned char ch186data[] = { + 0xe0,0x0,0xe0,0xa0,0xe0 +}; +static const GLUTBitmapChar ch186 = { 3, 5, -1, -4, 5, ch186data }; + +static const unsigned char ch187data[] = { + 0xa0,0x50,0x28,0x50,0xa0 +}; +static const GLUTBitmapChar ch187 = { 5, 5, -1, -1, 7, ch187data }; + +static const unsigned char ch188data[] = { + 0x41,0x0,0x27,0x80,0x15,0x0,0x13,0x0,0x49,0x0,0x44,0x0,0x44,0x0,0xc2,0x0, + 0x41,0x0 +}; +static const GLUTBitmapChar ch188 = { 9, 9, 0, 0, 10, ch188data }; + +static const unsigned char ch189data[] = { + 0x47,0x80,0x22,0x0,0x11,0x0,0x14,0x80,0x4b,0x0,0x48,0x0,0x44,0x0,0xc2,0x0, + 0x41,0x0 +}; +static const GLUTBitmapChar ch189 = { 9, 9, 0, 0, 10, ch189data }; + +static const unsigned char ch190data[] = { + 0x21,0x0,0x17,0x80,0x15,0x0,0xb,0x0,0xc9,0x0,0x24,0x0,0x44,0x0,0x22,0x0, + 0xe1,0x0 +}; +static const GLUTBitmapChar ch190 = { 9, 9, 0, 0, 10, ch190data }; + +static const unsigned char ch191data[] = { + 0x70,0x88,0x88,0x40,0x40,0x20,0x20,0x0,0x20 +}; +static const GLUTBitmapChar ch191 = { 5, 9, -1, 3, 7, ch191data }; + +static const unsigned char ch192data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch192 = { 7, 12, -1, 0, 9, ch192data }; + +static const unsigned char ch193data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch193 = { 7, 12, -1, 0, 9, ch193data }; + +static const unsigned char ch194data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch194 = { 7, 12, -1, 0, 9, ch194data }; + +static const unsigned char ch195data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28,0x14 +}; +static const GLUTBitmapChar ch195 = { 7, 12, -1, 0, 9, ch195data }; + +static const unsigned char ch196data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x0,0x28 +}; +static const GLUTBitmapChar ch196 = { 7, 11, -1, 0, 9, ch196data }; + +static const unsigned char ch197data[] = { + 0x82,0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x10,0x28,0x10 +}; +static const GLUTBitmapChar ch197 = { 7, 12, -1, 0, 9, ch197data }; + +static const unsigned char ch198data[] = { + 0x8f,0x80,0x88,0x0,0x88,0x0,0x78,0x0,0x4f,0x80,0x48,0x0,0x28,0x0,0x28,0x0, + 0x1f,0x80 +}; +static const GLUTBitmapChar ch198 = { 9, 9, -1, 0, 11, ch198data }; + +static const unsigned char ch199data[] = { + 0x30,0x8,0x8,0x3c,0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c +}; +static const GLUTBitmapChar ch199 = { 7, 12, -1, 3, 9, ch199data }; + +static const unsigned char ch200data[] = { + 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch200 = { 6, 12, -1, 0, 8, ch200data }; + +static const unsigned char ch201data[] = { + 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch201 = { 6, 12, -1, 0, 8, ch201data }; + +static const unsigned char ch202data[] = { + 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch202 = { 6, 12, -1, 0, 8, ch202data }; + +static const unsigned char ch203data[] = { + 0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,0xfc,0x0,0x28 +}; +static const GLUTBitmapChar ch203 = { 6, 11, -1, 0, 8, ch203data }; + +static const unsigned char ch204data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch204 = { 2, 12, 0, 0, 3, ch204data }; + +static const unsigned char ch205data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 +}; +static const GLUTBitmapChar ch205 = { 2, 12, -1, 0, 3, ch205data }; + +static const unsigned char ch206data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch206 = { 3, 12, 0, 0, 3, ch206data }; + +static const unsigned char ch207data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 +}; +static const GLUTBitmapChar ch207 = { 3, 11, 0, 0, 3, ch207data }; + +static const unsigned char ch208data[] = { + 0x7c,0x42,0x41,0x41,0xf1,0x41,0x41,0x42,0x7c +}; +static const GLUTBitmapChar ch208 = { 8, 9, 0, 0, 9, ch208data }; + +static const unsigned char ch209data[] = { + 0x82,0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82,0x0,0x28,0x14 +}; +static const GLUTBitmapChar ch209 = { 7, 12, -1, 0, 9, ch209data }; + +static const unsigned char ch210data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x10 +}; +static const GLUTBitmapChar ch210 = { 8, 12, -1, 0, 10, ch210data }; + +static const unsigned char ch211data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x8,0x4 +}; +static const GLUTBitmapChar ch211 = { 8, 12, -1, 0, 10, ch211data }; + +static const unsigned char ch212data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x14,0x8 +}; +static const GLUTBitmapChar ch212 = { 8, 12, -1, 0, 10, ch212data }; + +static const unsigned char ch213data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x28,0x14 +}; +static const GLUTBitmapChar ch213 = { 8, 12, -1, 0, 10, ch213data }; + +static const unsigned char ch214data[] = { + 0x3c,0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,0x0,0x24 +}; +static const GLUTBitmapChar ch214 = { 8, 11, -1, 0, 10, ch214data }; + +static const unsigned char ch215data[] = { + 0x88,0x50,0x20,0x50,0x88 +}; +static const GLUTBitmapChar ch215 = { 5, 5, -1, -1, 7, ch215data }; + +static const unsigned char ch216data[] = { + 0x80,0x0,0x5e,0x0,0x21,0x0,0x50,0x80,0x48,0x80,0x44,0x80,0x44,0x80,0x42,0x80, + 0x21,0x0,0x1e,0x80,0x0,0x40 +}; +static const GLUTBitmapChar ch216 = { 10, 11, 0, 1, 10, ch216data }; + +static const unsigned char ch217data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch217 = { 6, 12, -1, 0, 8, ch217data }; + +static const unsigned char ch218data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch218 = { 6, 12, -1, 0, 8, ch218data }; + +static const unsigned char ch219data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch219 = { 6, 12, -1, 0, 8, ch219data }; + +static const unsigned char ch220data[] = { + 0x78,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x0,0x48 +}; +static const GLUTBitmapChar ch220 = { 6, 11, -1, 0, 8, ch220data }; + +static const unsigned char ch221data[] = { + 0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,0x82,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch221 = { 7, 12, -1, 0, 9, ch221data }; + +static const unsigned char ch222data[] = { + 0x80,0x80,0xf8,0x84,0x84,0x84,0xf8,0x80,0x80 +}; +static const GLUTBitmapChar ch222 = { 6, 9, -1, 0, 8, ch222data }; + +static const unsigned char ch223data[] = { + 0xb0,0x88,0x88,0x88,0xb0,0x88,0x88,0x88,0x70 +}; +static const GLUTBitmapChar ch223 = { 5, 9, -1, 0, 7, ch223data }; + +static const unsigned char ch224data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch224 = { 6, 10, -1, 0, 7, ch224data }; + +static const unsigned char ch225data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch225 = { 6, 10, -1, 0, 7, ch225data }; + +static const unsigned char ch226data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch226 = { 6, 10, -1, 0, 7, ch226data }; + +static const unsigned char ch227data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch227 = { 6, 10, -1, 0, 7, ch227data }; + +static const unsigned char ch228data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x0,0x50 +}; +static const GLUTBitmapChar ch228 = { 6, 9, -1, 0, 7, ch228data }; + +static const unsigned char ch229data[] = { + 0x74,0x88,0x88,0x78,0x8,0x88,0x70,0x30,0x48,0x30 +}; +static const GLUTBitmapChar ch229 = { 6, 10, -1, 0, 7, ch229data }; + +static const unsigned char ch230data[] = { + 0x77,0x0,0x88,0x80,0x88,0x0,0x7f,0x80,0x8,0x80,0x88,0x80,0x77,0x0 +}; +static const GLUTBitmapChar ch230 = { 9, 7, -1, 0, 11, ch230data }; + +static const unsigned char ch231data[] = { + 0x60,0x10,0x20,0x70,0x88,0x80,0x80,0x80,0x88,0x70 +}; +static const GLUTBitmapChar ch231 = { 5, 10, -1, 3, 7, ch231data }; + +static const unsigned char ch232data[] = { + 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch232 = { 5, 10, -1, 0, 7, ch232data }; + +static const unsigned char ch233data[] = { + 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch233 = { 5, 10, -1, 0, 7, ch233data }; + +static const unsigned char ch234data[] = { + 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch234 = { 5, 10, -1, 0, 7, ch234data }; + +static const unsigned char ch235data[] = { + 0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x0,0x50 +}; +static const GLUTBitmapChar ch235 = { 5, 9, -1, 0, 7, ch235data }; + +static const unsigned char ch236data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch236 = { 2, 10, 0, 0, 3, ch236data }; + +static const unsigned char ch237data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x0,0x80,0x40 +}; +static const GLUTBitmapChar ch237 = { 2, 10, -1, 0, 3, ch237data }; + +static const unsigned char ch238data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch238 = { 3, 10, 0, 0, 3, ch238data }; + +static const unsigned char ch239data[] = { + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x0,0xa0 +}; +static const GLUTBitmapChar ch239 = { 3, 9, 0, 0, 3, ch239data }; + +static const unsigned char ch240data[] = { + 0x70,0x88,0x88,0x88,0x88,0x78,0x8,0x50,0x30,0x68 +}; +static const GLUTBitmapChar ch240 = { 5, 10, -1, 0, 7, ch240data }; + +static const unsigned char ch241data[] = { + 0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch241 = { 5, 10, -1, 0, 7, ch241data }; + +static const unsigned char ch242data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch242 = { 5, 10, -1, 0, 7, ch242data }; + +static const unsigned char ch243data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch243 = { 5, 10, -1, 0, 7, ch243data }; + +static const unsigned char ch244data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch244 = { 5, 10, -1, 0, 7, ch244data }; + +static const unsigned char ch245data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch245 = { 5, 10, -1, 0, 7, ch245data }; + +static const unsigned char ch246data[] = { + 0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x0,0x50 +}; +static const GLUTBitmapChar ch246 = { 5, 9, -1, 0, 7, ch246data }; + +static const unsigned char ch247data[] = { + 0x20,0x0,0xf8,0x0,0x20 +}; +static const GLUTBitmapChar ch247 = { 5, 5, -1, -1, 7, ch247data }; + +static const unsigned char ch248data[] = { + 0xb8,0x44,0x64,0x54,0x4c,0x44,0x3a +}; +static const GLUTBitmapChar ch248 = { 7, 7, 0, 0, 7, ch248data }; + +static const unsigned char ch249data[] = { + 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch249 = { 5, 10, -1, 0, 7, ch249data }; + +static const unsigned char ch250data[] = { + 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch250 = { 5, 10, -1, 0, 7, ch250data }; + +static const unsigned char ch251data[] = { + 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch251 = { 5, 10, -1, 0, 7, ch251data }; + +static const unsigned char ch252data[] = { + 0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x0,0x50 +}; +static const GLUTBitmapChar ch252 = { 5, 9, -1, 0, 7, ch252data }; + +static const unsigned char ch253data[] = { + 0x80,0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,0x88,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch253 = { 5, 13, -1, 3, 7, ch253data }; + +static const unsigned char ch254data[] = { + 0x80,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80 +}; +static const GLUTBitmapChar ch254 = { 5, 12, -1, 3, 7, ch254data }; + +static const unsigned char ch255data[] = { + 0xc0,0x20,0x20,0x20,0x30,0x50,0x50,0x48,0x88,0x88,0x0,0x50 +}; +static const GLUTBitmapChar ch255 = { 5, 12, -1, 3, 7, ch255data }; + + +static const GLUTBitmapChar *chars[] = { + 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, + &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, 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, 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 GLUTBitmapFont glutBitmapHelvetica12 = { + "-Adobe-Helvetica-Medium-R-Normal--12-120-75-75-P-67-ISO8859-1", + 15, 256, chars +}; diff --git a/src/glut/dos/hel18.c b/src/glut/dos/hel18.c new file mode 100644 index 00000000000..f4d4340e3ec --- /dev/null +++ b/src/glut/dos/hel18.c @@ -0,0 +1,1138 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch32data[] = { + 0x0 +}; +static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 5, ch32data }; + +static const unsigned char ch33data[] = { + 0xc0,0xc0,0x0,0x0,0x80,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch33 = { 2, 14, -2, 0, 6, ch33data }; + +static const unsigned char ch34data[] = { + 0x90,0x90,0xd8,0xd8,0xd8 +}; +static const GLUTBitmapChar ch34 = { 5, 5, 0, -9, 5, ch34data }; + +static const unsigned char ch35data[] = { + 0x24,0x0,0x24,0x0,0x24,0x0,0xff,0x80,0xff,0x80,0x12,0x0,0x12,0x0,0x12,0x0, + 0x7f,0xc0,0x7f,0xc0,0x9,0x0,0x9,0x0,0x9,0x0 +}; +static const GLUTBitmapChar ch35 = { 10, 13, 0, 0, 10, ch35data }; + +static const unsigned char ch36data[] = { + 0x8,0x0,0x8,0x0,0x3e,0x0,0x7f,0x0,0xeb,0x80,0xc9,0x80,0x9,0x80,0xf,0x0, + 0x3e,0x0,0x78,0x0,0xe8,0x0,0xc8,0x0,0xcb,0x0,0x7f,0x0,0x3e,0x0,0x8,0x0 +}; +static const GLUTBitmapChar ch36 = { 9, 16, -1, 2, 10, ch36data }; + +static const unsigned char ch37data[] = { + 0x18,0x78,0x18,0xfc,0xc,0xcc,0xc,0xcc,0x6,0xfc,0x6,0x78,0x3,0x0,0x7b,0x0, + 0xfd,0x80,0xcd,0x80,0xcc,0xc0,0xfc,0xc0,0x78,0x60 +}; +static const GLUTBitmapChar ch37 = { 14, 13, -1, 0, 16, ch37data }; + +static const unsigned char ch38data[] = { + 0x3c,0x70,0x7e,0xe0,0xe7,0xc0,0xc3,0x80,0xc3,0xc0,0xc6,0xc0,0xee,0xc0,0x7c,0x0, + 0x3c,0x0,0x66,0x0,0x66,0x0,0x7e,0x0,0x3c,0x0 +}; +static const GLUTBitmapChar ch38 = { 12, 13, -1, 0, 13, ch38data }; + +static const unsigned char ch39data[] = { + 0x80,0x40,0x40,0xc0,0xc0 +}; +static const GLUTBitmapChar ch39 = { 2, 5, -1, -9, 4, ch39data }; + +static const unsigned char ch40data[] = { + 0x10,0x30,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60,0x60, + 0x30,0x10 +}; +static const GLUTBitmapChar ch40 = { 4, 18, -1, 4, 6, ch40data }; + +static const unsigned char ch41data[] = { + 0x80,0xc0,0x60,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0x60, + 0xc0,0x80 +}; +static const GLUTBitmapChar ch41 = { 4, 18, -1, 4, 6, ch41data }; + +static const unsigned char ch42data[] = { + 0x88,0x70,0x70,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch42 = { 5, 6, -1, -8, 7, ch42data }; + +static const unsigned char ch43data[] = { + 0x18,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18,0x18 +}; +static const GLUTBitmapChar ch43 = { 8, 10, -1, 0, 10, ch43data }; + +static const unsigned char ch44data[] = { + 0x80,0x40,0x40,0xc0,0xc0 +}; +static const GLUTBitmapChar ch44 = { 2, 5, -1, 3, 5, ch44data }; + +static const unsigned char ch45data[] = { + 0xff,0xff +}; +static const GLUTBitmapChar ch45 = { 8, 2, -1, -4, 11, ch45data }; + +static const unsigned char ch46data[] = { + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch46 = { 2, 2, -1, 0, 5, ch46data }; + +static const unsigned char ch47data[] = { + 0xc0,0xc0,0x40,0x40,0x60,0x60,0x20,0x20,0x30,0x30,0x10,0x10,0x18,0x18 +}; +static const GLUTBitmapChar ch47 = { 5, 14, 0, 0, 5, ch47data }; + +static const unsigned char ch48data[] = { + 0x3c,0x7e,0x66,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x66,0x7e,0x3c +}; +static const GLUTBitmapChar ch48 = { 8, 13, -1, 0, 10, ch48data }; + +static const unsigned char ch49data[] = { + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0xf8,0x18 +}; +static const GLUTBitmapChar ch49 = { 5, 13, -2, 0, 10, ch49data }; + +static const unsigned char ch50data[] = { + 0xff,0xff,0xc0,0xe0,0x70,0x38,0x1c,0xe,0x7,0x3,0xc3,0xfe,0x3c +}; +static const GLUTBitmapChar ch50 = { 8, 13, -1, 0, 10, ch50data }; + +static const unsigned char ch51data[] = { + 0x3c,0x7e,0xc7,0xc3,0x3,0x7,0x1e,0x1c,0x6,0xc3,0xc3,0x7e,0x3c +}; +static const GLUTBitmapChar ch51 = { 8, 13, -1, 0, 10, ch51data }; + +static const unsigned char ch52data[] = { + 0x3,0x0,0x3,0x0,0x3,0x0,0xff,0x80,0xff,0x80,0xc3,0x0,0x63,0x0,0x33,0x0, + 0x33,0x0,0x1b,0x0,0xf,0x0,0x7,0x0,0x3,0x0 +}; +static const GLUTBitmapChar ch52 = { 9, 13, -1, 0, 10, ch52data }; + +static const unsigned char ch53data[] = { + 0x7c,0xfe,0xc7,0xc3,0x3,0x3,0xc7,0xfe,0xfc,0xc0,0xc0,0xfe,0xfe +}; +static const GLUTBitmapChar ch53 = { 8, 13, -1, 0, 10, ch53data }; + +static const unsigned char ch54data[] = { + 0x3c,0x7e,0xe3,0xc3,0xc3,0xc3,0xfe,0xdc,0xc0,0xc0,0x63,0x7f,0x3c +}; +static const GLUTBitmapChar ch54 = { 8, 13, -1, 0, 10, ch54data }; + +static const unsigned char ch55data[] = { + 0x60,0x60,0x30,0x30,0x30,0x18,0x18,0xc,0xc,0x6,0x3,0xff,0xff +}; +static const GLUTBitmapChar ch55 = { 8, 13, -1, 0, 10, ch55data }; + +static const unsigned char ch56data[] = { + 0x3c,0x7e,0xe7,0xc3,0xc3,0x66,0x7e,0x66,0xc3,0xc3,0xe7,0x7e,0x3c +}; +static const GLUTBitmapChar ch56 = { 8, 13, -1, 0, 10, ch56data }; + +static const unsigned char ch57data[] = { + 0x7c,0xfe,0xc6,0x3,0x3,0x3b,0x7f,0xc3,0xc3,0xc3,0xc7,0x7e,0x3c +}; +static const GLUTBitmapChar ch57 = { 8, 13, -1, 0, 10, ch57data }; + +static const unsigned char ch58data[] = { + 0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch58 = { 2, 10, -1, 0, 5, ch58data }; + +static const unsigned char ch59data[] = { + 0x80,0x40,0x40,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch59 = { 2, 13, -1, 3, 5, ch59data }; + +static const unsigned char ch60data[] = { + 0x3,0xf,0x3c,0x70,0xc0,0x70,0x3c,0xf,0x3 +}; +static const GLUTBitmapChar ch60 = { 8, 9, -1, 0, 10, ch60data }; + +static const unsigned char ch61data[] = { + 0xfe,0xfe,0x0,0x0,0xfe,0xfe +}; +static const GLUTBitmapChar ch61 = { 7, 6, -2, -2, 11, ch61data }; + +static const unsigned char ch62data[] = { + 0xc0,0xf0,0x3c,0xe,0x3,0xe,0x3c,0xf0,0xc0 +}; +static const GLUTBitmapChar ch62 = { 8, 9, -1, 0, 10, ch62data }; + +static const unsigned char ch63data[] = { + 0x30,0x30,0x0,0x0,0x30,0x30,0x30,0x38,0x1c,0xe,0xc6,0xc6,0xfe,0x7c +}; +static const GLUTBitmapChar ch63 = { 7, 14, -1, 0, 10, ch63data }; + +static const unsigned char ch64data[] = { + 0x7,0xe0,0x1f,0xf0,0x38,0x0,0x70,0x0,0x67,0x70,0xcf,0xf8,0xcc,0xcc,0xcc,0x66, + 0xcc,0x66,0xcc,0x63,0xc6,0x33,0x67,0x73,0x63,0xb3,0x30,0x6,0x1c,0xe,0xf,0xfc, + 0x3,0xf0 +}; +static const GLUTBitmapChar ch64 = { 16, 17, -1, 3, 18, ch64data }; + +static const unsigned char ch65data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch65 = { 12, 14, 0, 0, 12, ch65data }; + +static const unsigned char ch66data[] = { + 0xff,0x80,0xff,0xc0,0xc0,0xe0,0xc0,0x60,0xc0,0x60,0xc0,0xe0,0xff,0xc0,0xff,0x80, + 0xc1,0x80,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 +}; +static const GLUTBitmapChar ch66 = { 11, 14, -1, 0, 13, ch66data }; + +static const unsigned char ch67data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, + 0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 +}; +static const GLUTBitmapChar ch67 = { 12, 14, -1, 0, 14, ch67data }; + +static const unsigned char ch68data[] = { + 0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 +}; +static const GLUTBitmapChar ch68 = { 11, 14, -1, 0, 13, ch68data }; + +static const unsigned char ch69data[] = { + 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80 +}; +static const GLUTBitmapChar ch69 = { 9, 14, -1, 0, 11, ch69data }; + +static const unsigned char ch70data[] = { + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80 +}; +static const GLUTBitmapChar ch70 = { 9, 14, -1, 0, 11, ch70data }; + +static const unsigned char ch71data[] = { + 0xf,0xb0,0x3f,0xf0,0x70,0x70,0x60,0x30,0xe0,0x30,0xc1,0xf0,0xc1,0xf0,0xc0,0x0, + 0xc0,0x0,0xe0,0x30,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 +}; +static const GLUTBitmapChar ch71 = { 12, 14, -1, 0, 14, ch71data }; + +static const unsigned char ch72data[] = { + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xff,0xe0,0xff,0xe0, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60 +}; +static const GLUTBitmapChar ch72 = { 11, 14, -1, 0, 13, ch72data }; + +static const unsigned char ch73data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch73 = { 2, 14, -2, 0, 6, ch73data }; + +static const unsigned char ch74data[] = { + 0x3c,0x7e,0xe7,0xc3,0xc3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3 +}; +static const GLUTBitmapChar ch74 = { 8, 14, -1, 0, 10, ch74data }; + +static const unsigned char ch75data[] = { + 0xc0,0x70,0xc0,0xe0,0xc1,0xc0,0xc3,0x80,0xc7,0x0,0xce,0x0,0xfc,0x0,0xf8,0x0, + 0xdc,0x0,0xce,0x0,0xc7,0x0,0xc3,0x80,0xc1,0xc0,0xc0,0xe0 +}; +static const GLUTBitmapChar ch75 = { 12, 14, -1, 0, 13, ch75data }; + +static const unsigned char ch76data[] = { + 0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch76 = { 8, 14, -1, 0, 10, ch76data }; + +static const unsigned char ch77data[] = { + 0xc3,0xc,0xc3,0xc,0xc7,0x8c,0xc4,0x8c,0xcc,0xcc,0xcc,0xcc,0xd8,0x6c,0xd8,0x6c, + 0xf0,0x3c,0xf0,0x3c,0xe0,0x1c,0xe0,0x1c,0xc0,0xc,0xc0,0xc +}; +static const GLUTBitmapChar ch77 = { 14, 14, -1, 0, 16, ch77data }; + +static const unsigned char ch78data[] = { + 0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, + 0xcc,0x60,0xd8,0x60,0xf0,0x60,0xf0,0x60,0xe0,0x60,0xc0,0x60 +}; +static const GLUTBitmapChar ch78 = { 11, 14, -1, 0, 13, ch78data }; + +static const unsigned char ch79data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 +}; +static const GLUTBitmapChar ch79 = { 13, 14, -1, 0, 15, ch79data }; + +static const unsigned char ch80data[] = { + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80, + 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 +}; +static const GLUTBitmapChar ch80 = { 10, 14, -1, 0, 12, ch80data }; + +static const unsigned char ch81data[] = { + 0x0,0x30,0xf,0xb0,0x3f,0xe0,0x70,0xf0,0x61,0xb0,0xe1,0xb8,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80 +}; +static const GLUTBitmapChar ch81 = { 13, 15, -1, 1, 15, ch81data }; + +static const unsigned char ch82data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0x80,0xc1,0x80,0xff,0x0,0xff,0x80, + 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0xff,0x80,0xff,0x0 +}; +static const GLUTBitmapChar ch82 = { 10, 14, -1, 0, 12, ch82data }; + +static const unsigned char ch83data[] = { + 0x3f,0x0,0x7f,0xc0,0xe0,0xe0,0xc0,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0,0x1f,0x0, + 0x7c,0x0,0xe0,0x0,0xc0,0x60,0xe0,0xe0,0x7f,0xc0,0x1f,0x0 +}; +static const GLUTBitmapChar ch83 = { 11, 14, -1, 0, 13, ch83data }; + +static const unsigned char ch84data[] = { + 0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0, + 0xc,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0xff,0xc0,0xff,0xc0 +}; +static const GLUTBitmapChar ch84 = { 10, 14, -1, 0, 12, ch84data }; + +static const unsigned char ch85data[] = { + 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60 +}; +static const GLUTBitmapChar ch85 = { 11, 14, -1, 0, 13, ch85data }; + +static const unsigned char ch86data[] = { + 0x6,0x0,0xf,0x0,0xf,0x0,0x19,0x80,0x19,0x80,0x19,0x80,0x30,0xc0,0x30,0xc0, + 0x30,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30 +}; +static const GLUTBitmapChar ch86 = { 12, 14, -1, 0, 14, ch86data }; + +static const unsigned char ch87data[] = { + 0x18,0x18,0x18,0x18,0x1c,0x38,0x34,0x2c,0x36,0x6c,0x36,0x6c,0x66,0x66,0x66,0x66, + 0x62,0x46,0x63,0xc6,0xc3,0xc3,0xc1,0x83,0xc1,0x83,0xc1,0x83 +}; +static const GLUTBitmapChar ch87 = { 16, 14, -1, 0, 18, ch87data }; + +static const unsigned char ch88data[] = { + 0xc0,0x60,0xe0,0xe0,0x60,0xc0,0x71,0xc0,0x31,0x80,0x1b,0x0,0xe,0x0,0xe,0x0, + 0x1b,0x0,0x31,0x80,0x71,0xc0,0x60,0xc0,0xe0,0xe0,0xc0,0x60 +}; +static const GLUTBitmapChar ch88 = { 11, 14, -1, 0, 13, ch88data }; + +static const unsigned char ch89data[] = { + 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, + 0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30 +}; +static const GLUTBitmapChar ch89 = { 12, 14, -1, 0, 14, ch89data }; + +static const unsigned char ch90data[] = { + 0xff,0xc0,0xff,0xc0,0xc0,0x0,0x60,0x0,0x30,0x0,0x18,0x0,0x1c,0x0,0xc,0x0, + 0x6,0x0,0x3,0x0,0x1,0x80,0x0,0xc0,0xff,0xc0,0xff,0xc0 +}; +static const GLUTBitmapChar ch90 = { 10, 14, -1, 0, 12, ch90data }; + +static const unsigned char ch91data[] = { + 0xf0,0xf0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xf0,0xf0 +}; +static const GLUTBitmapChar ch91 = { 4, 18, -1, 4, 5, ch91data }; + +static const unsigned char ch92data[] = { + 0x18,0x18,0x10,0x10,0x30,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0xc0,0xc0 +}; +static const GLUTBitmapChar ch92 = { 5, 14, 0, 0, 5, ch92data }; + +static const unsigned char ch93data[] = { + 0xf0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0xf0,0xf0 +}; +static const GLUTBitmapChar ch93 = { 4, 18, 0, 4, 5, ch93data }; + +static const unsigned char ch94data[] = { + 0x82,0xc6,0x6c,0x38,0x10 +}; +static const GLUTBitmapChar ch94 = { 7, 5, -1, -8, 9, ch94data }; + +static const unsigned char ch95data[] = { + 0xff,0xc0,0xff,0xc0 +}; +static const GLUTBitmapChar ch95 = { 10, 2, 0, 4, 10, ch95data }; + +static const unsigned char ch96data[] = { + 0xc0,0xc0,0x80,0x80,0x40 +}; +static const GLUTBitmapChar ch96 = { 2, 5, -1, -9, 4, ch96data }; + +static const unsigned char ch97data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c +}; +static const GLUTBitmapChar ch97 = { 7, 10, -1, 0, 9, ch97data }; + +static const unsigned char ch98data[] = { + 0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0, + 0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0 +}; +static const GLUTBitmapChar ch98 = { 9, 14, -1, 0, 11, ch98data }; + +static const unsigned char ch99data[] = { + 0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e +}; +static const GLUTBitmapChar ch99 = { 8, 10, -1, 0, 10, ch99data }; + +static const unsigned char ch100data[] = { + 0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80, + 0x7f,0x80,0x3d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80 +}; +static const GLUTBitmapChar ch100 = { 9, 14, -1, 0, 11, ch100data }; + +static const unsigned char ch101data[] = { + 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c +}; +static const GLUTBitmapChar ch101 = { 8, 10, -1, 0, 10, ch101data }; + +static const unsigned char ch102data[] = { + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x3c,0x1c +}; +static const GLUTBitmapChar ch102 = { 6, 14, 0, 0, 6, ch102data }; + +static const unsigned char ch103data[] = { + 0x1c,0x0,0x7f,0x0,0x63,0x0,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, + 0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x7f,0x80,0x3d,0x80 +}; +static const GLUTBitmapChar ch103 = { 9, 14, -1, 4, 11, ch103data }; + +static const unsigned char ch104data[] = { + 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch104 = { 8, 14, -1, 0, 10, ch104data }; + +static const unsigned char ch105data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch105 = { 2, 14, -1, 0, 4, ch105data }; + +static const unsigned char ch106data[] = { + 0xe0,0xf0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x0, + 0x30,0x30 +}; +static const GLUTBitmapChar ch106 = { 4, 18, 1, 4, 4, ch106data }; + +static const unsigned char ch107data[] = { + 0xc7,0xc6,0xce,0xcc,0xd8,0xf8,0xf0,0xd8,0xcc,0xc6,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch107 = { 8, 14, -1, 0, 9, ch107data }; + +static const unsigned char ch108data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch108 = { 2, 14, -1, 0, 4, ch108data }; + +static const unsigned char ch109data[] = { + 0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xe7,0x30, + 0xde,0xf0,0xcc,0x60 +}; +static const GLUTBitmapChar ch109 = { 12, 10, -1, 0, 14, ch109data }; + +static const unsigned char ch110data[] = { + 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce +}; +static const GLUTBitmapChar ch110 = { 8, 10, -1, 0, 10, ch110data }; + +static const unsigned char ch111data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0 +}; +static const GLUTBitmapChar ch111 = { 9, 10, -1, 0, 11, ch111data }; + +static const unsigned char ch112data[] = { + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, + 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0 +}; +static const GLUTBitmapChar ch112 = { 9, 14, -1, 4, 11, ch112data }; + +static const unsigned char ch113data[] = { + 0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3d,0x80,0x7f,0x80,0x63,0x80,0xc1,0x80, + 0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x80,0x7f,0x80,0x3d,0x80 +}; +static const GLUTBitmapChar ch113 = { 9, 14, -1, 4, 11, ch113data }; + +static const unsigned char ch114data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xd8,0xd8 +}; +static const GLUTBitmapChar ch114 = { 5, 10, -1, 0, 6, ch114data }; + +static const unsigned char ch115data[] = { + 0x78,0xfc,0xc6,0x6,0x3e,0xfc,0xc0,0xc6,0x7e,0x3c +}; +static const GLUTBitmapChar ch115 = { 7, 10, -1, 0, 9, ch115data }; + +static const unsigned char ch116data[] = { + 0x18,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0xfc,0xfc,0x30,0x30,0x30 +}; +static const GLUTBitmapChar ch116 = { 6, 13, 0, 0, 6, ch116data }; + +static const unsigned char ch117data[] = { + 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3 +}; +static const GLUTBitmapChar ch117 = { 8, 10, -1, 0, 10, ch117data }; + +static const unsigned char ch118data[] = { + 0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3 +}; +static const GLUTBitmapChar ch118 = { 8, 10, -1, 0, 10, ch118data }; + +static const unsigned char ch119data[] = { + 0x19,0x80,0x19,0x80,0x39,0xc0,0x29,0x40,0x69,0x60,0x66,0x60,0x66,0x60,0xc6,0x30, + 0xc6,0x30,0xc6,0x30 +}; +static const GLUTBitmapChar ch119 = { 12, 10, -1, 0, 14, ch119data }; + +static const unsigned char ch120data[] = { + 0xc3,0xe7,0x66,0x3c,0x18,0x18,0x3c,0x66,0xe7,0xc3 +}; +static const GLUTBitmapChar ch120 = { 8, 10, -1, 0, 10, ch120data }; + +static const unsigned char ch121data[] = { + 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3 +}; +static const GLUTBitmapChar ch121 = { 8, 14, -1, 4, 10, ch121data }; + +static const unsigned char ch122data[] = { + 0xfe,0xfe,0xc0,0x60,0x30,0x18,0xc,0x6,0xfe,0xfe +}; +static const GLUTBitmapChar ch122 = { 7, 10, -1, 0, 9, ch122data }; + +static const unsigned char ch123data[] = { + 0xc,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0xc0,0x60,0x30,0x30,0x30,0x30,0x30, + 0x18,0xc +}; +static const GLUTBitmapChar ch123 = { 6, 18, 0, 4, 6, ch123data }; + +static const unsigned char ch124data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch124 = { 2, 18, -1, 4, 4, ch124data }; + +static const unsigned char ch125data[] = { + 0xc0,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0xc,0x18,0x30,0x30,0x30,0x30,0x30, + 0x60,0xc0 +}; +static const GLUTBitmapChar ch125 = { 6, 18, 0, 4, 6, ch125data }; + +static const unsigned char ch126data[] = { + 0xcc,0x7e,0x33 +}; +static const GLUTBitmapChar ch126 = { 8, 3, -1, -4, 10, ch126data }; + +static const unsigned char ch160data[] = { + 0x0 +}; +static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 5, ch160data }; + +static const unsigned char ch161data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x40,0x40,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch161 = { 2, 14, -2, 4, 6, ch161data }; + +static const unsigned char ch162data[] = { + 0x10,0x10,0x3e,0x7f,0x6b,0xc8,0xc8,0xc8,0xc8,0x6b,0x7f,0x3e,0x4,0x4 +}; +static const GLUTBitmapChar ch162 = { 8, 14, -1, 2, 10, ch162data }; + +static const unsigned char ch163data[] = { + 0xdf,0x0,0xff,0x80,0x60,0x80,0x30,0x0,0x18,0x0,0x18,0x0,0x7e,0x0,0x30,0x0, + 0x60,0x0,0x61,0x80,0x61,0x80,0x3f,0x0,0x1e,0x0 +}; +static const GLUTBitmapChar ch163 = { 9, 13, 0, 0, 10, ch163data }; + +static const unsigned char ch164data[] = { + 0xc3,0xff,0x66,0x66,0x66,0xff,0xc3 +}; +static const GLUTBitmapChar ch164 = { 8, 7, -1, -3, 10, ch164data }; + +static const unsigned char ch165data[] = { + 0x18,0x18,0x18,0x18,0xff,0x18,0xff,0x3c,0x66,0x66,0x66,0xc3,0xc3 +}; +static const GLUTBitmapChar ch165 = { 8, 13, -1, 0, 10, ch165data }; + +static const unsigned char ch166data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch166 = { 2, 17, -1, 3, 4, ch166data }; + +static const unsigned char ch167data[] = { + 0x3c,0x7e,0xc3,0xc3,0x7,0xe,0x3e,0x73,0xe3,0xc3,0xc7,0x6e,0x7c,0xf0,0xc3,0xc3, + 0x7e,0x3c +}; +static const GLUTBitmapChar ch167 = { 8, 18, -1, 4, 10, ch167data }; + +static const unsigned char ch168data[] = { + 0xd8,0xd8 +}; +static const GLUTBitmapChar ch168 = { 5, 2, 0, -11, 6, ch168data }; + +static const unsigned char ch169data[] = { + 0xf,0x80,0x30,0x60,0x40,0x10,0x47,0x10,0x88,0x88,0x90,0x8,0x90,0x8,0x90,0x8, + 0x88,0x88,0x47,0x10,0x40,0x10,0x30,0x60,0xf,0x80 +}; +static const GLUTBitmapChar ch169 = { 13, 13, -1, 0, 15, ch169data }; + +static const unsigned char ch170data[] = { + 0xf8,0x0,0x68,0xd8,0x48,0x38,0xc8,0x70 +}; +static const GLUTBitmapChar ch170 = { 5, 8, -1, -6, 7, ch170data }; + +static const unsigned char ch171data[] = { + 0x12,0x36,0x6c,0xd8,0xd8,0x6c,0x36,0x12 +}; +static const GLUTBitmapChar ch171 = { 7, 8, -1, -1, 9, ch171data }; + +static const unsigned char ch172data[] = { + 0x1,0x80,0x1,0x80,0x1,0x80,0xff,0x80,0xff,0x80 +}; +static const GLUTBitmapChar ch172 = { 9, 5, -1, -3, 11, ch172data }; + +static const unsigned char ch173data[] = { + 0xf8,0xf8 +}; +static const GLUTBitmapChar ch173 = { 5, 2, -1, -4, 7, ch173data }; + +static const unsigned char ch174data[] = { + 0xf,0x80,0x30,0x60,0x40,0x10,0x48,0x50,0x88,0x88,0x89,0x8,0x8f,0x88,0x88,0x48, + 0x88,0x48,0x4f,0x90,0x40,0x10,0x30,0x60,0xf,0x80 +}; +static const GLUTBitmapChar ch174 = { 13, 13, -1, 0, 14, ch174data }; + +static const unsigned char ch175data[] = { + 0xf8 +}; +static const GLUTBitmapChar ch175 = { 5, 1, 0, -12, 5, ch175data }; + +static const unsigned char ch176data[] = { + 0x70,0xd8,0x88,0xd8,0x70 +}; +static const GLUTBitmapChar ch176 = { 5, 5, -1, -8, 7, ch176data }; + +static const unsigned char ch177data[] = { + 0xff,0xff,0x0,0x18,0x18,0x18,0xff,0xff,0x18,0x18,0x18 +}; +static const GLUTBitmapChar ch177 = { 8, 11, -1, 0, 10, ch177data }; + +static const unsigned char ch178data[] = { + 0xf8,0xf8,0x60,0x30,0x18,0x98,0xf8,0x70 +}; +static const GLUTBitmapChar ch178 = { 5, 8, 0, -5, 6, ch178data }; + +static const unsigned char ch179data[] = { + 0x70,0xf8,0x98,0x30,0x30,0x98,0xf8,0x70 +}; +static const GLUTBitmapChar ch179 = { 5, 8, 0, -5, 6, ch179data }; + +static const unsigned char ch180data[] = { + 0xc0,0x60,0x30 +}; +static const GLUTBitmapChar ch180 = { 4, 3, 0, -11, 4, ch180data }; + +static const unsigned char ch181data[] = { + 0xc0,0xc0,0xc0,0xc0,0xdb,0xff,0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3 +}; +static const GLUTBitmapChar ch181 = { 8, 14, -1, 4, 10, ch181data }; + +static const unsigned char ch182data[] = { + 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x32,0x72,0xf2,0xf2,0xf2,0xf2, + 0x72,0x3f +}; +static const GLUTBitmapChar ch182 = { 8, 18, -1, 4, 10, ch182data }; + +static const unsigned char ch183data[] = { + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch183 = { 2, 2, -1, -4, 4, ch183data }; + +static const unsigned char ch184data[] = { + 0xf0,0xd8,0x18,0x70,0x60 +}; +static const GLUTBitmapChar ch184 = { 5, 5, 0, 4, 5, ch184data }; + +static const unsigned char ch185data[] = { + 0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x60 +}; +static const GLUTBitmapChar ch185 = { 3, 8, -1, -5, 6, ch185data }; + +static const unsigned char ch186data[] = { + 0xf8,0x0,0x70,0xd8,0x88,0x88,0xd8,0x70 +}; +static const GLUTBitmapChar ch186 = { 5, 8, -1, -6, 7, ch186data }; + +static const unsigned char ch187data[] = { + 0x90,0xd8,0x6c,0x36,0x36,0x6c,0xd8,0x90 +}; +static const GLUTBitmapChar ch187 = { 7, 8, -1, -1, 9, ch187data }; + +static const unsigned char ch188data[] = { + 0x30,0x30,0x30,0x30,0x19,0xf8,0xd,0xb0,0xc,0xf0,0x66,0x70,0x62,0x30,0x63,0x10, + 0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60 +}; +static const GLUTBitmapChar ch188 = { 13, 13, -1, 0, 15, ch188data }; + +static const unsigned char ch189data[] = { + 0x30,0xf8,0x30,0xf8,0x18,0x60,0xc,0x30,0xc,0x18,0x66,0x98,0x62,0xf8,0x63,0x70, + 0x61,0x80,0x61,0x80,0xe0,0xc0,0xe0,0x60,0x60,0x60 +}; +static const GLUTBitmapChar ch189 = { 13, 13, -1, 0, 15, ch189data }; + +static const unsigned char ch190data[] = { + 0x18,0x18,0x18,0x18,0xc,0xfc,0x6,0xd8,0x6,0x78,0x73,0x38,0xf9,0x18,0x99,0x88, + 0x30,0xc0,0x30,0xc0,0x98,0x60,0xf8,0x30,0x70,0x30 +}; +static const GLUTBitmapChar ch190 = { 14, 13, 0, 0, 15, ch190data }; + +static const unsigned char ch191data[] = { + 0x7c,0xfe,0xc6,0xc6,0xe0,0x70,0x38,0x18,0x18,0x18,0x0,0x0,0x18,0x18 +}; +static const GLUTBitmapChar ch191 = { 7, 14, -1, 4, 10, ch191data }; + +static const unsigned char ch192data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, + 0xc,0x0,0x18,0x0 +}; +static const GLUTBitmapChar ch192 = { 12, 18, 0, 0, 12, ch192data }; + +static const unsigned char ch193data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x6,0x0, + 0x3,0x0,0x1,0x80 +}; +static const GLUTBitmapChar ch193 = { 12, 18, 0, 0, 12, ch193data }; + +static const unsigned char ch194data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, + 0xf,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch194 = { 12, 18, 0, 0, 12, ch194data }; + +static const unsigned char ch195data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x13,0x0, + 0x16,0x80,0xc,0x80 +}; +static const GLUTBitmapChar ch195 = { 12, 18, 0, 0, 12, ch195data }; + +static const unsigned char ch196data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x19,0x80, + 0x19,0x80 +}; +static const GLUTBitmapChar ch196 = { 12, 17, 0, 0, 12, ch196data }; + +static const unsigned char ch197data[] = { + 0xc0,0x30,0xc0,0x30,0x60,0x60,0x60,0x60,0x7f,0xe0,0x3f,0xc0,0x30,0xc0,0x30,0xc0, + 0x19,0x80,0x19,0x80,0xf,0x0,0xf,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, + 0x19,0x80,0xf,0x0 +}; +static const GLUTBitmapChar ch197 = { 12, 18, 0, 0, 12, ch197data }; + +static const unsigned char ch198data[] = { + 0xc1,0xff,0xc1,0xff,0x61,0x80,0x61,0x80,0x7f,0x80,0x3f,0x80,0x31,0xfe,0x31,0xfe, + 0x19,0x80,0x19,0x80,0xd,0x80,0xd,0x80,0x7,0xff,0x7,0xff +}; +static const GLUTBitmapChar ch198 = { 16, 14, -1, 0, 18, ch198data }; + +static const unsigned char ch199data[] = { + 0x1e,0x0,0x1b,0x0,0x3,0x0,0xe,0x0,0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30, + 0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xe0,0x0,0x60,0x30,0x70,0x70, + 0x3f,0xe0,0xf,0x80 +}; +static const GLUTBitmapChar ch199 = { 12, 18, -1, 4, 14, ch199data }; + +static const unsigned char ch200data[] = { + 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, + 0x18,0x0,0x30,0x0 +}; +static const GLUTBitmapChar ch200 = { 9, 18, -1, 0, 11, ch200data }; + +static const unsigned char ch201data[] = { + 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0xc,0x0, + 0x6,0x0,0x3,0x0 +}; +static const GLUTBitmapChar ch201 = { 9, 18, -1, 0, 11, ch201data }; + +static const unsigned char ch202data[] = { + 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, + 0x1e,0x0,0xc,0x0 +}; +static const GLUTBitmapChar ch202 = { 9, 18, -1, 0, 11, ch202data }; + +static const unsigned char ch203data[] = { + 0xff,0x80,0xff,0x80,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80,0xff,0x80,0x0,0x0,0x33,0x0, + 0x33,0x0 +}; +static const GLUTBitmapChar ch203 = { 9, 17, -1, 0, 11, ch203data }; + +static const unsigned char ch204data[] = { + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0x30, + 0x60,0xc0 +}; +static const GLUTBitmapChar ch204 = { 4, 18, 0, 0, 6, ch204data }; + +static const unsigned char ch205data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0xc0, + 0x60,0x30 +}; +static const GLUTBitmapChar ch205 = { 4, 18, -2, 0, 6, ch205data }; + +static const unsigned char ch206data[] = { + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, + 0x78,0x30 +}; +static const GLUTBitmapChar ch206 = { 6, 18, 0, 0, 6, ch206data }; + +static const unsigned char ch207data[] = { + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc, + 0xcc +}; +static const GLUTBitmapChar ch207 = { 6, 17, 0, 0, 6, ch207data }; + +static const unsigned char ch208data[] = { + 0x7f,0x80,0x7f,0xc0,0x60,0xe0,0x60,0x60,0x60,0x30,0x60,0x30,0xfc,0x30,0xfc,0x30, + 0x60,0x30,0x60,0x30,0x60,0x60,0x60,0xe0,0x7f,0xc0,0x7f,0x80 +}; +static const GLUTBitmapChar ch208 = { 12, 14, 0, 0, 13, ch208data }; + +static const unsigned char ch209data[] = { + 0xc0,0x60,0xc0,0xe0,0xc1,0xe0,0xc1,0xe0,0xc3,0x60,0xc6,0x60,0xc6,0x60,0xcc,0x60, + 0xcc,0x60,0xd8,0x60,0xd8,0x60,0xf0,0x60,0xe0,0x60,0xe0,0x60,0x0,0x0,0x13,0x0, + 0x16,0x80,0xc,0x80 +}; +static const GLUTBitmapChar ch209 = { 11, 18, -1, 0, 13, ch209data }; + +static const unsigned char ch210data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, + 0x6,0x0,0xc,0x0 +}; +static const GLUTBitmapChar ch210 = { 13, 18, -1, 0, 15, ch210data }; + +static const unsigned char ch211data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x3,0x0, + 0x1,0x80,0x0,0xc0 +}; +static const GLUTBitmapChar ch211 = { 13, 18, -1, 0, 15, ch211data }; + +static const unsigned char ch212data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xc,0xc0, + 0x7,0x80,0x3,0x0 +}; +static const GLUTBitmapChar ch212 = { 13, 18, -1, 0, 15, ch212data }; + +static const unsigned char ch213data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0x9,0x80, + 0xb,0x40,0x6,0x40 +}; +static const GLUTBitmapChar ch213 = { 13, 18, -1, 0, 15, ch213data }; + +static const unsigned char ch214data[] = { + 0xf,0x80,0x3f,0xe0,0x70,0x70,0x60,0x30,0xe0,0x38,0xc0,0x18,0xc0,0x18,0xc0,0x18, + 0xc0,0x18,0xe0,0x38,0x60,0x30,0x70,0x70,0x3f,0xe0,0xf,0x80,0x0,0x0,0xd,0x80, + 0xd,0x80 +}; +static const GLUTBitmapChar ch214 = { 13, 17, -1, 0, 15, ch214data }; + +static const unsigned char ch215data[] = { + 0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0,0x61,0x80, + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch215 = { 10, 9, 0, 0, 10, ch215data }; + +static const unsigned char ch216data[] = { + 0xc7,0xc0,0xff,0xf0,0x78,0x38,0x38,0x18,0x6c,0x1c,0x6e,0xc,0x67,0xc,0x63,0x8c, + 0x61,0xcc,0x70,0xdc,0x30,0x78,0x38,0x38,0x1f,0xfc,0x7,0xcc +}; +static const GLUTBitmapChar ch216 = { 14, 14, 0, 0, 15, ch216data }; + +static const unsigned char ch217data[] = { + 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x6,0x0, + 0xc,0x0,0x18,0x0 +}; +static const GLUTBitmapChar ch217 = { 11, 18, -1, 0, 13, ch217data }; + +static const unsigned char ch218data[] = { + 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0xc,0x0, + 0x6,0x0,0x3,0x0 +}; +static const GLUTBitmapChar ch218 = { 11, 18, -1, 0, 13, ch218data }; + +static const unsigned char ch219data[] = { + 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, + 0xf,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch219 = { 11, 18, -1, 0, 13, ch219data }; + +static const unsigned char ch220data[] = { + 0x1f,0x0,0x7f,0xc0,0x60,0xc0,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60, + 0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0x0,0x0,0x19,0x80, + 0x19,0x80 +}; +static const GLUTBitmapChar ch220 = { 11, 17, -1, 0, 13, ch220data }; + +static const unsigned char ch221data[] = { + 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xf,0x0,0x19,0x80, + 0x30,0xc0,0x30,0xc0,0x60,0x60,0x60,0x60,0xc0,0x30,0xc0,0x30,0x0,0x0,0x6,0x0, + 0x3,0x0,0x1,0x80 +}; +static const GLUTBitmapChar ch221 = { 12, 18, -1, 0, 14, ch221data }; + +static const unsigned char ch222data[] = { + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x0,0xff,0x80,0xc1,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc1,0xc0,0xff,0x80,0xff,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0 +}; +static const GLUTBitmapChar ch222 = { 10, 14, -1, 0, 12, ch222data }; + +static const unsigned char ch223data[] = { + 0xdc,0xde,0xc6,0xc6,0xc6,0xc6,0xdc,0xdc,0xc6,0xc6,0xc6,0xc6,0x7c,0x38 +}; +static const GLUTBitmapChar ch223 = { 7, 14, -1, 0, 9, ch223data }; + +static const unsigned char ch224data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x18,0x30,0x60 +}; +static const GLUTBitmapChar ch224 = { 7, 14, -1, 0, 9, ch224data }; + +static const unsigned char ch225data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x30,0x18,0xc +}; +static const GLUTBitmapChar ch225 = { 7, 14, -1, 0, 9, ch225data }; + +static const unsigned char ch226data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x66,0x3c,0x18 +}; +static const GLUTBitmapChar ch226 = { 7, 14, -1, 0, 9, ch226data }; + +static const unsigned char ch227data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x4c,0x5a,0x32 +}; +static const GLUTBitmapChar ch227 = { 7, 14, -1, 0, 9, ch227data }; + +static const unsigned char ch228data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x0,0x6c,0x6c +}; +static const GLUTBitmapChar ch228 = { 7, 13, -1, 0, 9, ch228data }; + +static const unsigned char ch229data[] = { + 0x76,0xee,0xc6,0xc6,0xe6,0x7e,0xe,0xc6,0xee,0x7c,0x38,0x6c,0x6c,0x38 +}; +static const GLUTBitmapChar ch229 = { 7, 14, -1, 0, 9, ch229data }; + +static const unsigned char ch230data[] = { + 0x75,0xe0,0xef,0xf8,0xc7,0x18,0xc6,0x0,0xe6,0x0,0x7f,0xf8,0xe,0x18,0xc6,0x18, + 0xef,0xf0,0x7d,0xe0 +}; +static const GLUTBitmapChar ch230 = { 13, 10, -1, 0, 15, ch230data }; + +static const unsigned char ch231data[] = { + 0x78,0x6c,0xc,0x38,0x3e,0x7f,0x63,0xc0,0xc0,0xc0,0xc0,0x63,0x7f,0x3e +}; +static const GLUTBitmapChar ch231 = { 8, 14, -1, 4, 10, ch231data }; + +static const unsigned char ch232data[] = { + 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0x30,0x60 +}; +static const GLUTBitmapChar ch232 = { 8, 14, -1, 0, 10, ch232data }; + +static const unsigned char ch233data[] = { + 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x18,0xc,0x6 +}; +static const GLUTBitmapChar ch233 = { 8, 14, -1, 0, 10, ch233data }; + +static const unsigned char ch234data[] = { + 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x66,0x3c,0x18 +}; +static const GLUTBitmapChar ch234 = { 8, 14, -1, 0, 10, ch234data }; + +static const unsigned char ch235data[] = { + 0x3c,0x7f,0xe3,0xc0,0xc0,0xff,0xc3,0xc3,0x7e,0x3c,0x0,0x36,0x36 +}; +static const GLUTBitmapChar ch235 = { 8, 13, -1, 0, 10, ch235data }; + +static const unsigned char ch236data[] = { + 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0x30,0x60,0xc0 +}; +static const GLUTBitmapChar ch236 = { 4, 14, 0, 0, 4, ch236data }; + +static const unsigned char ch237data[] = { + 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xc0,0x60,0x30 +}; +static const GLUTBitmapChar ch237 = { 4, 14, 0, 0, 4, ch237data }; + +static const unsigned char ch238data[] = { + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x0,0xcc,0x78,0x30 +}; +static const GLUTBitmapChar ch238 = { 6, 14, 1, 0, 4, ch238data }; + +static const unsigned char ch239data[] = { + 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x0,0xd8,0xd8 +}; +static const GLUTBitmapChar ch239 = { 5, 13, 0, 0, 4, ch239data }; + +static const unsigned char ch240data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x4c,0x0,0x38,0x0,0x36,0x0,0x60,0x0 +}; +static const GLUTBitmapChar ch240 = { 9, 14, -1, 0, 11, ch240data }; + +static const unsigned char ch241data[] = { + 0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xe3,0xdf,0xce,0x0,0x4c,0x5a,0x32 +}; +static const GLUTBitmapChar ch241 = { 8, 14, -1, 0, 10, ch241data }; + +static const unsigned char ch242data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x0,0x0,0xc,0x0,0x18,0x0,0x30,0x0 +}; +static const GLUTBitmapChar ch242 = { 9, 14, -1, 0, 11, ch242data }; + +static const unsigned char ch243data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x0,0x0,0x18,0x0,0xc,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch243 = { 9, 14, -1, 0, 11, ch243data }; + +static const unsigned char ch244data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x0,0x0,0x33,0x0,0x1e,0x0,0xc,0x0 +}; +static const GLUTBitmapChar ch244 = { 9, 14, -1, 0, 11, ch244data }; + +static const unsigned char ch245data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x0,0x0,0x26,0x0,0x2d,0x0,0x19,0x0 +}; +static const GLUTBitmapChar ch245 = { 9, 14, -1, 0, 11, ch245data }; + +static const unsigned char ch246data[] = { + 0x3e,0x0,0x7f,0x0,0x63,0x0,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x0, + 0x7f,0x0,0x3e,0x0,0x0,0x0,0x36,0x0,0x36,0x0 +}; +static const GLUTBitmapChar ch246 = { 9, 13, -1, 0, 11, ch246data }; + +static const unsigned char ch247data[] = { + 0x18,0x18,0x0,0xff,0xff,0x0,0x18,0x18 +}; +static const GLUTBitmapChar ch247 = { 8, 8, -1, -1, 10, ch247data }; + +static const unsigned char ch248data[] = { + 0xce,0x0,0x7f,0x80,0x31,0x80,0x78,0xc0,0x6c,0xc0,0x66,0xc0,0x63,0xc0,0x31,0x80, + 0x3f,0xc0,0xe,0x60 +}; +static const GLUTBitmapChar ch248 = { 11, 10, 0, 0, 11, ch248data }; + +static const unsigned char ch249data[] = { + 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0xc,0x18,0x30 +}; +static const GLUTBitmapChar ch249 = { 8, 14, -1, 0, 10, ch249data }; + +static const unsigned char ch250data[] = { + 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x18,0xc,0x6 +}; +static const GLUTBitmapChar ch250 = { 8, 14, -1, 0, 10, ch250data }; + +static const unsigned char ch251data[] = { + 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x3c,0x18 +}; +static const GLUTBitmapChar ch251 = { 8, 14, -1, 0, 10, ch251data }; + +static const unsigned char ch252data[] = { + 0x73,0xfb,0xc7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x0,0x66,0x66 +}; +static const GLUTBitmapChar ch252 = { 8, 13, -1, 0, 10, ch252data }; + +static const unsigned char ch253data[] = { + 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x18, + 0xc,0x6 +}; +static const GLUTBitmapChar ch253 = { 8, 18, -1, 4, 10, ch253data }; + +static const unsigned char ch254data[] = { + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xde,0x0,0xff,0x0,0xe3,0x0,0xc1,0x80, + 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xe3,0x0,0xff,0x0,0xde,0x0,0xc0,0x0,0xc0,0x0, + 0xc0,0x0,0xc0,0x0 +}; +static const GLUTBitmapChar ch254 = { 9, 18, -1, 4, 11, ch254data }; + +static const unsigned char ch255data[] = { + 0x70,0x70,0x18,0x18,0x18,0x18,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,0xc3,0x0,0x66, + 0x66 +}; +static const GLUTBitmapChar ch255 = { 8, 17, -1, 4, 10, ch255data }; + + +static const GLUTBitmapChar *chars[] = { + 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, + &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, 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, 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 GLUTBitmapFont glutBitmapHelvetica18 = { + "-Adobe-Helvetica-Medium-R-Normal--18-180-75-75-P-98-ISO8859-1", + 22, 256, chars +}; diff --git a/src/glut/dos/init.c b/src/glut/dos/init.c new file mode 100644 index 00000000000..3a98dcf0a4b --- /dev/null +++ b/src/glut/dos/init.c @@ -0,0 +1,223 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "internal.h" + + +char *__glutProgramName = NULL; + +GLUTvisual _glut_visual = { + 16, 8, 16, 8, 16, /* bpp, alpha, depth, stencil, accum */ + + { 0, 0 }, 0, /* geometry */ + + 0 /* flags */ +}; + +GLUTdefault _glut_default = { + 0, 0, /* glutInitWindowPosition */ + 300, 300, /* glutInitWindowSize */ + 0 /* glutInitDisplayMode */ +}; + +GLuint _glut_fps = 0; + +static char *init_string; + + +void +_glut_fatal (char *format,...) +{ + va_list args; + + va_start(args, format); + fprintf(stderr, "GLUT: Fatal Error in %s: ", + __glutProgramName ? __glutProgramName : "(unamed)"); + vfprintf(stderr, format, args); + va_end(args); + putc('\n', stderr); + exit(1); +} + + +/* strdup is actually not a standard ANSI C or POSIX routine + * so implement a private one for GLUT. + */ +static char * +_glut_strdup (const char *string) +{ + if (string != NULL) { + int len = strlen(string) + 1; + char *p = malloc(len); + if (p != NULL) { + return strcpy(p, string); + } + } + return NULL; +} + + +void APIENTRY +glutInit (int *argc, char **argv) +{ + char *str; + const char *env; + + if ((env = getenv("DMESA_GLUT_BPP")) != NULL) { + _glut_visual.bpp = atoi(env); + } + if ((env = getenv("DMESA_GLUT_ALPHA")) != NULL) { + _glut_visual.alpha = atoi(env); + } + if ((env = getenv("DMESA_GLUT_DEPTH")) != NULL) { + _glut_visual.depth = atoi(env); + } + if ((env = getenv("DMESA_GLUT_STENCIL")) != NULL) { + _glut_visual.stencil = atoi(env); + } + if ((env = getenv("DMESA_GLUT_ACCUM")) != NULL) { + _glut_visual.accum = atoi(env); + } + if ((env = getenv("DMESA_GLUT_REFRESH")) != NULL) { + _glut_visual.refresh = atoi(env); + } + + /* Determine program name. */ + str = strrchr(argv[0], '/'); + if (str == NULL) { + str = argv[0]; + } else { + str++; + } + __glutProgramName = _glut_strdup(str); + + /* check if GLUT_FPS env var is set */ + if ((env = getenv("GLUT_FPS")) != NULL) { + if ((_glut_fps = atoi(env)) <= 0) { + _glut_fps = 5000; /* 5000 milliseconds */ + } + } + + /* Initialize timer */ + glutGet(GLUT_ELAPSED_TIME); +} + + +void APIENTRY +glutInitDisplayMode (unsigned int mode) +{ + _glut_default.mode = mode; +} + + +void APIENTRY +glutInitWindowPosition (int x, int y) +{ + _glut_default.x = x; + _glut_default.y = y; +} + + +void APIENTRY +glutInitWindowSize (int width, int height) +{ + _glut_default.width = width; + _glut_default.height = height; +} + + +void APIENTRY +glutInitDisplayString (const char *string) +{ + init_string = _glut_strdup(string); +} + + +void APIENTRY +glutSetOption (GLenum pname, int value) +{ + switch (pname) { + case GLUT_INIT_WINDOW_X: + _glut_default.x = value; + break; + case GLUT_INIT_WINDOW_Y: + _glut_default.y = value; + break; + } +} + + +void APIENTRY +glutForceJoystickFunc (void) +{ +} + + +void APIENTRY +glutIgnoreKeyRepeat (int ignore) +{ +} + + +void APIENTRY +glutSetKeyRepeat (int repeatMode) +{ +} + + +void APIENTRY +glutVideoPan (int x, int y, int w, int h) +{ +} + + +int APIENTRY +glutVideoResizeGet( GLenum eWhat ) +{ + return 0; +} + + +void APIENTRY +glutSetupVideoResizing (void) +{ +} + + +void APIENTRY +glutStopVideoResizing (void) +{ +} + + +void APIENTRY +glutVideoResize (int x, int y, int w, int h) +{ +} diff --git a/src/glut/dos/internal.h b/src/glut/dos/internal.h new file mode 100644 index 00000000000..063c2d00d96 --- /dev/null +++ b/src/glut/dos/internal.h @@ -0,0 +1,197 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef INTERNAL_H_included +#define INTERNAL_H_included + +#include <GL/glut.h> + +#include "GL/dmesa.h" + + +#define MAX_WINDOWS 2 +#define MAX_TIMER_CB 8 +#define RESERVED_COLORS 0 + + +/* GLUT function types */ +typedef void (GLUTCALLBACK *GLUTdisplayCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeCB) (int, int); +typedef void (GLUTCALLBACK *GLUTkeyboardCB) (unsigned char, int, int); +typedef void (GLUTCALLBACK *GLUTmouseCB) (int, int, int, int); +typedef void (GLUTCALLBACK *GLUTmotionCB) (int, int); +typedef void (GLUTCALLBACK *GLUTpassiveCB) (int, int); +typedef void (GLUTCALLBACK *GLUTentryCB) (int); +typedef void (GLUTCALLBACK *GLUTvisibilityCB) (int); +typedef void (GLUTCALLBACK *GLUTwindowStatusCB) (int); +typedef void (GLUTCALLBACK *GLUTidleCB) (void); +typedef void (GLUTCALLBACK *GLUTtimerCB) (int); +typedef void (GLUTCALLBACK *GLUTmenuStateCB) (int); /* DEPRECATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusCB) (int, int, int); +typedef void (GLUTCALLBACK *GLUTselectCB) (int); +typedef void (GLUTCALLBACK *GLUTspecialCB) (int, int, int); +typedef void (GLUTCALLBACK *GLUTspaceMotionCB) (int, int, int); +typedef void (GLUTCALLBACK *GLUTspaceRotateCB) (int, int, int); +typedef void (GLUTCALLBACK *GLUTspaceButtonCB) (int, int); +typedef void (GLUTCALLBACK *GLUTdialsCB) (int, int); +typedef void (GLUTCALLBACK *GLUTbuttonBoxCB) (int, int); +typedef void (GLUTCALLBACK *GLUTtabletMotionCB) (int, int); +typedef void (GLUTCALLBACK *GLUTtabletButtonCB) (int, int, int, int); +typedef void (GLUTCALLBACK *GLUTjoystickCB) (unsigned int, int, int, int); + +typedef void (GLUTCALLBACK *GLUTdestroyCB) (void); +typedef void (GLUTCALLBACK *GLUTmouseWheelCB) (int, int, int, int); +typedef void (GLUTCALLBACK *GLUTmenuDestroyCB) (void); + + +typedef struct { + GLuint bpp, alpha; + GLuint depth, stencil; + GLuint accum; + + GLint geometry[2]; + GLuint refresh; + + GLint flags; +} GLUTvisual; + +typedef struct { + GLint x, y; + GLint width, height; + GLuint mode; +} GLUTdefault; + +typedef struct { + void (*func) (int); + int value; + int time; +} GLUTSShotCB; + +typedef struct GLUTwindow { + int num; /* window id */ + + DMesaContext context; + DMesaBuffer buffer; + + int show_mouse; + GLboolean redisplay; + + /* GLUT settable or visible window state. */ + int xpos; + int ypos; + int width; /* window width in pixels */ + int height; /* window height in pixels */ + + /* Per-window callbacks. */ + GLUTdisplayCB display; /* redraw */ + GLUTreshapeCB reshape; /* resize (width,height) */ + GLUTmouseCB mouse; /* mouse (button,state,x,y) */ + GLUTmotionCB motion; /* motion (x,y) */ + GLUTpassiveCB passive; /* passive motion (x,y) */ + GLUTentryCB entry; /* window entry/exit (state) */ + GLUTkeyboardCB keyboard; /* keyboard (ASCII,x,y) */ + GLUTkeyboardCB keyboardUp; /* keyboard up (ASCII,x,y) */ + GLUTwindowStatusCB windowStatus; /* window status */ + GLUTvisibilityCB visibility; /* visibility */ + GLUTspecialCB special; /* special key */ + GLUTspecialCB specialUp; /* special up key */ + GLUTbuttonBoxCB buttonBox; /* button box */ + GLUTdialsCB dials; /* dials */ + GLUTspaceMotionCB spaceMotion; /* Spaceball motion */ + GLUTspaceRotateCB spaceRotate; /* Spaceball rotate */ + GLUTspaceButtonCB spaceButton; /* Spaceball button */ + GLUTtabletMotionCB tabletMotion; /* tablet motion */ + GLUTtabletButtonCB tabletButton; /* tablet button */ + GLUTjoystickCB joystick; /* joystick */ + + GLUTdestroyCB destroy; /* destroy */ + GLUTmouseWheelCB mouseWheel; /* mouse wheel */ + + /* specific data */ + void *data; +} GLUTwindow; + +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; + +typedef struct { + const GLfloat x, y; +} GLUTStrokeVertex; + +typedef struct { + const unsigned num; + const GLUTStrokeVertex *vertex; +} GLUTStrokeStrip; + +typedef struct { + const GLfloat right; + const unsigned num; + const GLUTStrokeStrip *strip; +} GLUTStrokeChar; + +typedef struct { + const char *name; + const unsigned num; + const GLUTStrokeChar *const *table; + const GLfloat height; + const GLfloat descent; +} GLUTStrokeFont; + + +extern char *__glutProgramName; + +extern GLUTvisual _glut_visual; +extern GLUTdefault _glut_default; + +extern GLuint _glut_fps; +extern GLUTidleCB _glut_idle_func; +extern GLUTmenuStatusCB _glut_menu_status_func; +extern GLUTSShotCB _glut_timer_cb[]; + +extern GLUTwindow *_glut_current, *_glut_windows[]; + +extern int _glut_mouse; /* number of buttons, if mouse installed */ +extern int _glut_mouse_x, _glut_mouse_y; /* mouse coords, relative to current win */ + + +extern void _glut_mouse_init (void); +extern void _glut_fatal(char *format,...); +extern void *_glut_font (void *font); + + +#include "pc_hw/pc_hw.h" + +#endif diff --git a/src/glut/dos/loop.c b/src/glut/dos/loop.c new file mode 100644 index 00000000000..36c3adc3ffe --- /dev/null +++ b/src/glut/dos/loop.c @@ -0,0 +1,245 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include <string.h> + +#include <GL/glut.h> +#include "GL/dmesa.h" + +#include "PC_HW/pc_hw.h" +#include "internal.h" + + +static int looping = 0; + + +#define DO_REDISPLAY(w, ccin, ccout) \ + do { \ + if (w->redisplay && w->display) { \ + int rv = GL_TRUE; \ + \ + idle = GL_FALSE; \ + w->redisplay = GL_FALSE; \ + \ + /* test IN condition (whether we need to `MakeCurrent') */\ + if (ccin) { \ + rv = DMesaMakeCurrent(w->context, w->buffer); \ + } \ + \ + /* do the display only if `MakeCurrent' didn't failed */ \ + if (rv) { \ + if (w->show_mouse && !(_glut_default.mode & GLUT_DOUBLE)) {\ + /* XXX scare mouse */ \ + w->display(); \ + /* XXX unscare mouse */ \ + } else { \ + w->display(); \ + } \ + \ + /* update OUT condition */ \ + ccout; \ + } \ + } \ + } while (0) + + +void APIENTRY +glutMainLoopEvent (void) +{ + int i, n; + GLUTwindow *w; + GLboolean idle; + static int old_mouse_x = 0; + static int old_mouse_y = 0; + static int old_mouse_b = 0; + + static GLboolean virgin = GL_TRUE; + if (virgin) { + pc_install_keyb(); + _glut_mouse_init(); + + for (i = 0; i < MAX_WINDOWS; i++) { + w = _glut_windows[i]; + if (w != NULL) { + glutSetWindow(w->num); + glutPostRedisplay(); + if (w->reshape) { + w->reshape(w->width, w->height); + } + if (w->visibility) { + w->visibility(GLUT_VISIBLE); + } + } + } + virgin = GL_FALSE; + } + + idle = GL_TRUE; + + n = 0; + for (i = 0; i < MAX_WINDOWS; i++) { + w = _glut_windows[i]; + if ((w != NULL) && (w != _glut_current)) { + /* 1) redisplay `w' + * 2) `MakeCurrent' always + * 3) update number of non-default windows + */ + DO_REDISPLAY(w, GL_TRUE, n++); + } + } + /* 1) redisplay `_glut_current' + * 2) `MakeCurrent' only if we previously did non-default windows + * 3) don't update anything + */ + DO_REDISPLAY(_glut_current, n, n); + + if (_glut_mouse) { + int mouse_x; + int mouse_y; + int mouse_z; + int mouse_b; + + /* query mouse */ + mouse_b = pc_query_mouse(&mouse_x, &mouse_y, &mouse_z); + + /* relative to window coordinates */ + _glut_mouse_x = mouse_x - _glut_current->xpos; + _glut_mouse_y = mouse_y - _glut_current->ypos; + + /* mouse was moved? */ + if ((mouse_x != old_mouse_x) || (mouse_y != old_mouse_y)) { + idle = GL_FALSE; + old_mouse_x = mouse_x; + old_mouse_y = mouse_y; + + if (mouse_b) { + /* any button pressed */ + if (_glut_current->motion) { + _glut_current->motion(_glut_mouse_x, _glut_mouse_y); + } + } else { + /* no button pressed */ + if (_glut_current->passive) { + _glut_current->passive(_glut_mouse_x, _glut_mouse_y); + } + } + } + + /* button state changed? */ + if (mouse_b != old_mouse_b) { + GLUTmouseCB mouse_func; + + if ((mouse_func = _glut_current->mouse)) { + if ((old_mouse_b & 1) && !(mouse_b & 1)) + mouse_func(GLUT_LEFT_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); + else if (!(old_mouse_b & 1) && (mouse_b & 1)) + mouse_func(GLUT_LEFT_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); + + if ((old_mouse_b & 2) && !(mouse_b & 2)) + mouse_func(GLUT_RIGHT_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); + else if (!(old_mouse_b & 2) && (mouse_b & 2)) + mouse_func(GLUT_RIGHT_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); + + if ((old_mouse_b & 4) && !(mouse_b & 4)) + mouse_func(GLUT_MIDDLE_BUTTON, GLUT_UP, _glut_mouse_x, _glut_mouse_y); + else if (!(old_mouse_b & 3) && (mouse_b & 4)) + mouse_func(GLUT_MIDDLE_BUTTON, GLUT_DOWN, _glut_mouse_x, _glut_mouse_y); + } + + idle = GL_FALSE; + old_mouse_b = mouse_b; + } + } + + if (pc_keypressed()) { + int key; + int glut_key; + + idle = GL_FALSE; + key = pc_readkey(); + + switch (key>>16) { + case KEY_F1: glut_key = GLUT_KEY_F1; goto special; + case KEY_F2: glut_key = GLUT_KEY_F2; goto special; + case KEY_F3: glut_key = GLUT_KEY_F3; goto special; + case KEY_F4: glut_key = GLUT_KEY_F4; goto special; + case KEY_F5: glut_key = GLUT_KEY_F5; goto special; + case KEY_F6: glut_key = GLUT_KEY_F6; goto special; + case KEY_F7: glut_key = GLUT_KEY_F7; goto special; + case KEY_F8: glut_key = GLUT_KEY_F8; goto special; + case KEY_F9: glut_key = GLUT_KEY_F9; goto special; + case KEY_F10: glut_key = GLUT_KEY_F10; goto special; + case KEY_F11: glut_key = GLUT_KEY_F11; goto special; + case KEY_F12: glut_key = GLUT_KEY_F12; goto special; + case KEY_LEFT: glut_key = GLUT_KEY_LEFT; goto special; + case KEY_UP: glut_key = GLUT_KEY_UP; goto special; + case KEY_RIGHT: glut_key = GLUT_KEY_RIGHT; goto special; + case KEY_DOWN: glut_key = GLUT_KEY_DOWN; goto special; + case KEY_PGUP: glut_key = GLUT_KEY_PAGE_UP; goto special; + case KEY_PGDN: glut_key = GLUT_KEY_PAGE_DOWN; goto special; + case KEY_HOME: glut_key = GLUT_KEY_HOME; goto special; + case KEY_END: glut_key = GLUT_KEY_END; goto special; + case KEY_INSERT: glut_key = GLUT_KEY_INSERT; goto special; + special: + if (_glut_current->special) { + _glut_current->special(glut_key, _glut_mouse_x, _glut_mouse_y); + } + break; + default: + if (_glut_current->keyboard) { + _glut_current->keyboard(key & 0xFF, _glut_mouse_x, _glut_mouse_y); + } + } + } + + if (idle && _glut_idle_func) + _glut_idle_func(); + + for (i = 0; i < MAX_TIMER_CB; i++) { + int time = glutGet(GLUT_ELAPSED_TIME); + GLUTSShotCB *cb = &_glut_timer_cb[i]; + if (cb->func && (time >= cb->time)) { + cb->func(cb->value); + cb->func = NULL; + } + } +} + + +void APIENTRY +glutMainLoop (void) +{ + looping++; + while (looping) { + glutMainLoopEvent(); + } +} + + +void APIENTRY +glutLeaveMainLoop (void) +{ + looping--; +} diff --git a/src/glut/dos/menu.c b/src/glut/dos/menu.c new file mode 100644 index 00000000000..857d2b4a46a --- /dev/null +++ b/src/glut/dos/menu.c @@ -0,0 +1,130 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +GLUTmenuStatusCB _glut_menu_status_func = NULL; + + +void APIENTRY +glutMenuStateFunc (GLUTmenuStateCB func) +{ + _glut_menu_status_func = (GLUTmenuStatusCB)func; +} + + +void APIENTRY +glutMenuStatusFunc (GLUTmenuStatusCB func) +{ + _glut_menu_status_func = func; +} + + +int APIENTRY +glutCreateMenu (GLUTselectCB func) +{ + return 0; +} + + +void APIENTRY +glutDestroyMenu (int menu) +{ +} + + +int APIENTRY +glutGetMenu (void) +{ + return 0; +} + + +void APIENTRY +glutSetMenu (int menu) +{ +} + + +void APIENTRY +glutAddMenuEntry (const char *label, int value) +{ +} + + +void APIENTRY +glutAddSubMenu (const char *label, int submenu) +{ +} + + +void APIENTRY +glutChangeToMenuEntry (int item, const char *label, int value) +{ +} + + +void APIENTRY +glutChangeToSubMenu (int item, const char *label, int submenu) +{ +} + + +void APIENTRY +glutRemoveMenuItem (int item) +{ +} + + +void APIENTRY +glutAttachMenu (int button) +{ +} + + +void APIENTRY +glutDetachMenu (int button) +{ +} + + +void APIENTRY +glutMenuDestroyFunc ( void (* callback)( void ) ) +{ +} + + +void * APIENTRY +glutGetMenuData (void) +{ + return NULL; +} + + +void APIENTRY +glutSetMenuData (void *data) +{ +} diff --git a/src/glut/dos/mouse.c b/src/glut/dos/mouse.c new file mode 100644 index 00000000000..945e2a5c14e --- /dev/null +++ b/src/glut/dos/mouse.c @@ -0,0 +1,55 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +int _glut_mouse; +int _glut_mouse_x = 0, _glut_mouse_y = 0; + + +void +_glut_mouse_init (void) +{ + if ((_glut_mouse = pc_install_mouse())) { + pc_mouse_area(_glut_current->xpos, _glut_current->ypos, _glut_current->xpos + _glut_current->width - 1, _glut_current->ypos + _glut_current->height - 1); + + _glut_current->show_mouse = (_glut_current->mouse || _glut_current->motion || _glut_current->passive); + } +} + + +void APIENTRY +glutSetCursor (int cursor) +{ + /* XXX completely futile until full mouse support (maybe never) */ +} + + +void APIENTRY +glutWarpPointer (int x, int y) +{ + pc_warp_mouse(x, y); +} diff --git a/src/glut/dos/mroman.c b/src/glut/dos/mroman.c new file mode 100644 index 00000000000..137458b7549 --- /dev/null +++ b/src/glut/dos/mroman.c @@ -0,0 +1,2779 @@ + +/* GENERATED FILE -- DO NOT MODIFY */ + +#include "internal.h" + +/* char: 0x20 */ + +static const GLUTStrokeChar ch32 = {104.7619f,0,NULL}; + +/* char: 0x21 */ + +static const GLUTStrokeVertex ch33st0[] = +{ + {52.3810f,100.0000f}, + {52.3810f,33.3333f} +}; + +static const GLUTStrokeVertex ch33st1[] = +{ + {52.3810f,9.5238f}, + {47.6191f,4.7619f}, + {52.3810f,0.0000f}, + {57.1429f,4.7619f}, + {52.3810f,9.5238f} +}; + +static const GLUTStrokeStrip ch33st[] = +{ + {2,ch33st0}, + {5,ch33st1} +}; + +static const GLUTStrokeChar ch33 = {104.7619f,2,ch33st}; + +/* char: 0x22 */ + +static const GLUTStrokeVertex ch34st0[] = +{ + {33.3334f,100.0000f}, + {33.3334f,66.6667f} +}; + +static const GLUTStrokeVertex ch34st1[] = +{ + {71.4286f,100.0000f}, + {71.4286f,66.6667f} +}; + +static const GLUTStrokeStrip ch34st[] = +{ + {2,ch34st0}, + {2,ch34st1} +}; + +static const GLUTStrokeChar ch34 = {104.7619f,2,ch34st}; + +/* char: 0x23 */ + +static const GLUTStrokeVertex ch35st0[] = +{ + {54.7619f,119.0476f}, + {21.4286f,-33.3333f} +}; + +static const GLUTStrokeVertex ch35st1[] = +{ + {83.3334f,119.0476f}, + {50.0000f,-33.3333f} +}; + +static const GLUTStrokeVertex ch35st2[] = +{ + {21.4286f,57.1429f}, + {88.0952f,57.1429f} +}; + +static const GLUTStrokeVertex ch35st3[] = +{ + {16.6667f,28.5714f}, + {83.3334f,28.5714f} +}; + +static const GLUTStrokeStrip ch35st[] = +{ + {2,ch35st0}, + {2,ch35st1}, + {2,ch35st2}, + {2,ch35st3} +}; + +static const GLUTStrokeChar ch35 = {104.7619f,4,ch35st}; + +/* char: 0x24 */ + +static const GLUTStrokeVertex ch36st0[] = +{ + {42.8571f,119.0476f}, + {42.8571f,-19.0476f} +}; + +static const GLUTStrokeVertex ch36st1[] = +{ + {61.9047f,119.0476f}, + {61.9047f,-19.0476f} +}; + +static const GLUTStrokeVertex ch36st2[] = +{ + {85.7143f,85.7143f}, + {76.1905f,95.2381f}, + {61.9047f,100.0000f}, + {42.8571f,100.0000f}, + {28.5714f,95.2381f}, + {19.0476f,85.7143f}, + {19.0476f,76.1905f}, + {23.8095f,66.6667f}, + {28.5714f,61.9048f}, + {38.0952f,57.1429f}, + {66.6666f,47.6190f}, + {76.1905f,42.8571f}, + {80.9524f,38.0952f}, + {85.7143f,28.5714f}, + {85.7143f,14.2857f}, + {76.1905f,4.7619f}, + {61.9047f,0.0000f}, + {42.8571f,0.0000f}, + {28.5714f,4.7619f}, + {19.0476f,14.2857f} +}; + +static const GLUTStrokeStrip ch36st[] = +{ + {2,ch36st0}, + {2,ch36st1}, + {20,ch36st2} +}; + +static const GLUTStrokeChar ch36 = {104.7619f,3,ch36st}; + +/* char: 0x25 */ + +static const GLUTStrokeVertex ch37st0[] = +{ + {95.2381f,100.0000f}, + {9.5238f,0.0000f} +}; + +static const GLUTStrokeVertex ch37st1[] = +{ + {33.3333f,100.0000f}, + {42.8571f,90.4762f}, + {42.8571f,80.9524f}, + {38.0952f,71.4286f}, + {28.5714f,66.6667f}, + {19.0476f,66.6667f}, + {9.5238f,76.1905f}, + {9.5238f,85.7143f}, + {14.2857f,95.2381f}, + {23.8095f,100.0000f}, + {33.3333f,100.0000f}, + {42.8571f,95.2381f}, + {57.1428f,90.4762f}, + {71.4286f,90.4762f}, + {85.7143f,95.2381f}, + {95.2381f,100.0000f} +}; + +static const GLUTStrokeVertex ch37st2[] = +{ + {76.1905f,33.3333f}, + {66.6667f,28.5714f}, + {61.9048f,19.0476f}, + {61.9048f,9.5238f}, + {71.4286f,0.0000f}, + {80.9524f,0.0000f}, + {90.4762f,4.7619f}, + {95.2381f,14.2857f}, + {95.2381f,23.8095f}, + {85.7143f,33.3333f}, + {76.1905f,33.3333f} +}; + +static const GLUTStrokeStrip ch37st[] = +{ + {2,ch37st0}, + {16,ch37st1}, + {11,ch37st2} +}; + +static const GLUTStrokeChar ch37 = {104.7619f,3,ch37st}; + +/* char: 0x26 */ + +static const GLUTStrokeVertex ch38st0[] = +{ + {100.0000f,57.1429f}, + {100.0000f,61.9048f}, + {95.2381f,66.6667f}, + {90.4762f,66.6667f}, + {85.7143f,61.9048f}, + {80.9524f,52.3810f}, + {71.4286f,28.5714f}, + {61.9048f,14.2857f}, + {52.3809f,4.7619f}, + {42.8571f,0.0000f}, + {23.8095f,0.0000f}, + {14.2857f,4.7619f}, + {9.5238f,9.5238f}, + {4.7619f,19.0476f}, + {4.7619f,28.5714f}, + {9.5238f,38.0952f}, + {14.2857f,42.8571f}, + {47.6190f,61.9048f}, + {52.3809f,66.6667f}, + {57.1429f,76.1905f}, + {57.1429f,85.7143f}, + {52.3809f,95.2381f}, + {42.8571f,100.0000f}, + {33.3333f,95.2381f}, + {28.5714f,85.7143f}, + {28.5714f,76.1905f}, + {33.3333f,61.9048f}, + {42.8571f,47.6190f}, + {66.6667f,14.2857f}, + {76.1905f,4.7619f}, + {85.7143f,0.0000f}, + {95.2381f,0.0000f}, + {100.0000f,4.7619f}, + {100.0000f,9.5238f} +}; + +static const GLUTStrokeStrip ch38st[] = +{ + {34,ch38st0} +}; + +static const GLUTStrokeChar ch38 = {104.7619f,1,ch38st}; + +/* char: 0x27 */ + +static const GLUTStrokeVertex ch39st0[] = +{ + {52.3810f,100.0000f}, + {52.3810f,66.6667f} +}; + +static const GLUTStrokeStrip ch39st[] = +{ + {2,ch39st0} +}; + +static const GLUTStrokeChar ch39 = {104.7619f,1,ch39st}; + +/* char: 0x28 */ + +static const GLUTStrokeVertex ch40st0[] = +{ + {69.0476f,119.0476f}, + {59.5238f,109.5238f}, + {50.0000f,95.2381f}, + {40.4762f,76.1905f}, + {35.7143f,52.3810f}, + {35.7143f,33.3333f}, + {40.4762f,9.5238f}, + {50.0000f,-9.5238f}, + {59.5238f,-23.8095f}, + {69.0476f,-33.3333f} +}; + +static const GLUTStrokeStrip ch40st[] = +{ + {10,ch40st0} +}; + +static const GLUTStrokeChar ch40 = {104.7619f,1,ch40st}; + +/* char: 0x29 */ + +static const GLUTStrokeVertex ch41st0[] = +{ + {35.7143f,119.0476f}, + {45.2381f,109.5238f}, + {54.7619f,95.2381f}, + {64.2857f,76.1905f}, + {69.0476f,52.3810f}, + {69.0476f,33.3333f}, + {64.2857f,9.5238f}, + {54.7619f,-9.5238f}, + {45.2381f,-23.8095f}, + {35.7143f,-33.3333f} +}; + +static const GLUTStrokeStrip ch41st[] = +{ + {10,ch41st0} +}; + +static const GLUTStrokeChar ch41 = {104.7619f,1,ch41st}; + +/* char: 0x2a */ + +static const GLUTStrokeVertex ch42st0[] = +{ + {52.3810f,71.4286f}, + {52.3810f,14.2857f} +}; + +static const GLUTStrokeVertex ch42st1[] = +{ + {28.5715f,57.1429f}, + {76.1905f,28.5714f} +}; + +static const GLUTStrokeVertex ch42st2[] = +{ + {76.1905f,57.1429f}, + {28.5715f,28.5714f} +}; + +static const GLUTStrokeStrip ch42st[] = +{ + {2,ch42st0}, + {2,ch42st1}, + {2,ch42st2} +}; + +static const GLUTStrokeChar ch42 = {104.7619f,3,ch42st}; + +/* char: 0x2b */ + +static const GLUTStrokeVertex ch43st0[] = +{ + {52.3809f,85.7143f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch43st1[] = +{ + {9.5238f,42.8571f}, + {95.2381f,42.8571f} +}; + +static const GLUTStrokeStrip ch43st[] = +{ + {2,ch43st0}, + {2,ch43st1} +}; + +static const GLUTStrokeChar ch43 = {104.7619f,2,ch43st}; + +/* char: 0x2c */ + +static const GLUTStrokeVertex ch44st0[] = +{ + {57.1429f,4.7619f}, + {52.3810f,0.0000f}, + {47.6191f,4.7619f}, + {52.3810f,9.5238f}, + {57.1429f,4.7619f}, + {57.1429f,-4.7619f}, + {52.3810f,-14.2857f}, + {47.6191f,-19.0476f} +}; + +static const GLUTStrokeStrip ch44st[] = +{ + {8,ch44st0} +}; + +static const GLUTStrokeChar ch44 = {104.7619f,1,ch44st}; + +/* char: 0x2d */ + +static const GLUTStrokeVertex ch45st0[] = +{ + {9.5238f,42.8571f}, + {95.2381f,42.8571f} +}; + +static const GLUTStrokeStrip ch45st[] = +{ + {2,ch45st0} +}; + +static const GLUTStrokeChar ch45 = {104.7619f,1,ch45st}; + +/* char: 0x2e */ + +static const GLUTStrokeVertex ch46st0[] = +{ + {52.3810f,9.5238f}, + {47.6191f,4.7619f}, + {52.3810f,0.0000f}, + {57.1429f,4.7619f}, + {52.3810f,9.5238f} +}; + +static const GLUTStrokeStrip ch46st[] = +{ + {5,ch46st0} +}; + +static const GLUTStrokeChar ch46 = {104.7619f,1,ch46st}; + +/* char: 0x2f */ + +static const GLUTStrokeVertex ch47st0[] = +{ + {19.0476f,-14.2857f}, + {85.7143f,100.0000f} +}; + +static const GLUTStrokeStrip ch47st[] = +{ + {2,ch47st0} +}; + +static const GLUTStrokeChar ch47 = {104.7619f,1,ch47st}; + +/* char: 0x30 */ + +static const GLUTStrokeVertex ch48st0[] = +{ + {47.6190f,100.0000f}, + {33.3333f,95.2381f}, + {23.8095f,80.9524f}, + {19.0476f,57.1429f}, + {19.0476f,42.8571f}, + {23.8095f,19.0476f}, + {33.3333f,4.7619f}, + {47.6190f,0.0000f}, + {57.1428f,0.0000f}, + {71.4286f,4.7619f}, + {80.9524f,19.0476f}, + {85.7143f,42.8571f}, + {85.7143f,57.1429f}, + {80.9524f,80.9524f}, + {71.4286f,95.2381f}, + {57.1428f,100.0000f}, + {47.6190f,100.0000f} +}; + +static const GLUTStrokeStrip ch48st[] = +{ + {17,ch48st0} +}; + +static const GLUTStrokeChar ch48 = {104.7619f,1,ch48st}; + +/* char: 0x31 */ + +static const GLUTStrokeVertex ch49st0[] = +{ + {40.4762f,80.9524f}, + {50.0000f,85.7143f}, + {64.2857f,100.0000f}, + {64.2857f,0.0000f} +}; + +static const GLUTStrokeStrip ch49st[] = +{ + {4,ch49st0} +}; + +static const GLUTStrokeChar ch49 = {104.7619f,1,ch49st}; + +/* char: 0x32 */ + +static const GLUTStrokeVertex ch50st0[] = +{ + {23.8095f,76.1905f}, + {23.8095f,80.9524f}, + {28.5714f,90.4762f}, + {33.3333f,95.2381f}, + {42.8571f,100.0000f}, + {61.9047f,100.0000f}, + {71.4286f,95.2381f}, + {76.1905f,90.4762f}, + {80.9524f,80.9524f}, + {80.9524f,71.4286f}, + {76.1905f,61.9048f}, + {66.6666f,47.6190f}, + {19.0476f,0.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeStrip ch50st[] = +{ + {14,ch50st0} +}; + +static const GLUTStrokeChar ch50 = {104.7619f,1,ch50st}; + +/* char: 0x33 */ + +static const GLUTStrokeVertex ch51st0[] = +{ + {28.5714f,100.0000f}, + {80.9524f,100.0000f}, + {52.3809f,61.9048f}, + {66.6666f,61.9048f}, + {76.1905f,57.1429f}, + {80.9524f,52.3810f}, + {85.7143f,38.0952f}, + {85.7143f,28.5714f}, + {80.9524f,14.2857f}, + {71.4286f,4.7619f}, + {57.1428f,0.0000f}, + {42.8571f,0.0000f}, + {28.5714f,4.7619f}, + {23.8095f,9.5238f}, + {19.0476f,19.0476f} +}; + +static const GLUTStrokeStrip ch51st[] = +{ + {15,ch51st0} +}; + +static const GLUTStrokeChar ch51 = {104.7619f,1,ch51st}; + +/* char: 0x34 */ + +static const GLUTStrokeVertex ch52st0[] = +{ + {64.2857f,100.0000f}, + {16.6667f,33.3333f}, + {88.0952f,33.3333f} +}; + +static const GLUTStrokeVertex ch52st1[] = +{ + {64.2857f,100.0000f}, + {64.2857f,0.0000f} +}; + +static const GLUTStrokeStrip ch52st[] = +{ + {3,ch52st0}, + {2,ch52st1} +}; + +static const GLUTStrokeChar ch52 = {104.7619f,2,ch52st}; + +/* char: 0x35 */ + +static const GLUTStrokeVertex ch53st0[] = +{ + {76.1905f,100.0000f}, + {28.5714f,100.0000f}, + {23.8095f,57.1429f}, + {28.5714f,61.9048f}, + {42.8571f,66.6667f}, + {57.1428f,66.6667f}, + {71.4286f,61.9048f}, + {80.9524f,52.3810f}, + {85.7143f,38.0952f}, + {85.7143f,28.5714f}, + {80.9524f,14.2857f}, + {71.4286f,4.7619f}, + {57.1428f,0.0000f}, + {42.8571f,0.0000f}, + {28.5714f,4.7619f}, + {23.8095f,9.5238f}, + {19.0476f,19.0476f} +}; + +static const GLUTStrokeStrip ch53st[] = +{ + {17,ch53st0} +}; + +static const GLUTStrokeChar ch53 = {104.7619f,1,ch53st}; + +/* char: 0x36 */ + +static const GLUTStrokeVertex ch54st0[] = +{ + {78.5714f,85.7143f}, + {73.8096f,95.2381f}, + {59.5238f,100.0000f}, + {50.0000f,100.0000f}, + {35.7143f,95.2381f}, + {26.1905f,80.9524f}, + {21.4286f,57.1429f}, + {21.4286f,33.3333f}, + {26.1905f,14.2857f}, + {35.7143f,4.7619f}, + {50.0000f,0.0000f}, + {54.7619f,0.0000f}, + {69.0476f,4.7619f}, + {78.5714f,14.2857f}, + {83.3334f,28.5714f}, + {83.3334f,33.3333f}, + {78.5714f,47.6190f}, + {69.0476f,57.1429f}, + {54.7619f,61.9048f}, + {50.0000f,61.9048f}, + {35.7143f,57.1429f}, + {26.1905f,47.6190f}, + {21.4286f,33.3333f} +}; + +static const GLUTStrokeStrip ch54st[] = +{ + {23,ch54st0} +}; + +static const GLUTStrokeChar ch54 = {104.7619f,1,ch54st}; + +/* char: 0x37 */ + +static const GLUTStrokeVertex ch55st0[] = +{ + {85.7143f,100.0000f}, + {38.0952f,0.0000f} +}; + +static const GLUTStrokeVertex ch55st1[] = +{ + {19.0476f,100.0000f}, + {85.7143f,100.0000f} +}; + +static const GLUTStrokeStrip ch55st[] = +{ + {2,ch55st0}, + {2,ch55st1} +}; + +static const GLUTStrokeChar ch55 = {104.7619f,2,ch55st}; + +/* char: 0x38 */ + +static const GLUTStrokeVertex ch56st0[] = +{ + {42.8571f,100.0000f}, + {28.5714f,95.2381f}, + {23.8095f,85.7143f}, + {23.8095f,76.1905f}, + {28.5714f,66.6667f}, + {38.0952f,61.9048f}, + {57.1428f,57.1429f}, + {71.4286f,52.3810f}, + {80.9524f,42.8571f}, + {85.7143f,33.3333f}, + {85.7143f,19.0476f}, + {80.9524f,9.5238f}, + {76.1905f,4.7619f}, + {61.9047f,0.0000f}, + {42.8571f,0.0000f}, + {28.5714f,4.7619f}, + {23.8095f,9.5238f}, + {19.0476f,19.0476f}, + {19.0476f,33.3333f}, + {23.8095f,42.8571f}, + {33.3333f,52.3810f}, + {47.6190f,57.1429f}, + {66.6666f,61.9048f}, + {76.1905f,66.6667f}, + {80.9524f,76.1905f}, + {80.9524f,85.7143f}, + {76.1905f,95.2381f}, + {61.9047f,100.0000f}, + {42.8571f,100.0000f} +}; + +static const GLUTStrokeStrip ch56st[] = +{ + {29,ch56st0} +}; + +static const GLUTStrokeChar ch56 = {104.7619f,1,ch56st}; + +/* char: 0x39 */ + +static const GLUTStrokeVertex ch57st0[] = +{ + {83.3334f,66.6667f}, + {78.5714f,52.3810f}, + {69.0476f,42.8571f}, + {54.7619f,38.0952f}, + {50.0000f,38.0952f}, + {35.7143f,42.8571f}, + {26.1905f,52.3810f}, + {21.4286f,66.6667f}, + {21.4286f,71.4286f}, + {26.1905f,85.7143f}, + {35.7143f,95.2381f}, + {50.0000f,100.0000f}, + {54.7619f,100.0000f}, + {69.0476f,95.2381f}, + {78.5714f,85.7143f}, + {83.3334f,66.6667f}, + {83.3334f,42.8571f}, + {78.5714f,19.0476f}, + {69.0476f,4.7619f}, + {54.7619f,0.0000f}, + {45.2381f,0.0000f}, + {30.9524f,4.7619f}, + {26.1905f,14.2857f} +}; + +static const GLUTStrokeStrip ch57st[] = +{ + {23,ch57st0} +}; + +static const GLUTStrokeChar ch57 = {104.7619f,1,ch57st}; + +/* char: 0x3a */ + +static const GLUTStrokeVertex ch58st0[] = +{ + {52.3810f,66.6667f}, + {47.6191f,61.9048f}, + {52.3810f,57.1429f}, + {57.1429f,61.9048f}, + {52.3810f,66.6667f} +}; + +static const GLUTStrokeVertex ch58st1[] = +{ + {52.3810f,9.5238f}, + {47.6191f,4.7619f}, + {52.3810f,0.0000f}, + {57.1429f,4.7619f}, + {52.3810f,9.5238f} +}; + +static const GLUTStrokeStrip ch58st[] = +{ + {5,ch58st0}, + {5,ch58st1} +}; + +static const GLUTStrokeChar ch58 = {104.7619f,2,ch58st}; + +/* char: 0x3b */ + +static const GLUTStrokeVertex ch59st0[] = +{ + {52.3810f,66.6667f}, + {47.6191f,61.9048f}, + {52.3810f,57.1429f}, + {57.1429f,61.9048f}, + {52.3810f,66.6667f} +}; + +static const GLUTStrokeVertex ch59st1[] = +{ + {57.1429f,4.7619f}, + {52.3810f,0.0000f}, + {47.6191f,4.7619f}, + {52.3810f,9.5238f}, + {57.1429f,4.7619f}, + {57.1429f,-4.7619f}, + {52.3810f,-14.2857f}, + {47.6191f,-19.0476f} +}; + +static const GLUTStrokeStrip ch59st[] = +{ + {5,ch59st0}, + {8,ch59st1} +}; + +static const GLUTStrokeChar ch59 = {104.7619f,2,ch59st}; + +/* char: 0x3c */ + +static const GLUTStrokeVertex ch60st0[] = +{ + {90.4762f,85.7143f}, + {14.2857f,42.8571f}, + {90.4762f,0.0000f} +}; + +static const GLUTStrokeStrip ch60st[] = +{ + {3,ch60st0} +}; + +static const GLUTStrokeChar ch60 = {104.7619f,1,ch60st}; + +/* char: 0x3d */ + +static const GLUTStrokeVertex ch61st0[] = +{ + {9.5238f,57.1429f}, + {95.2381f,57.1429f} +}; + +static const GLUTStrokeVertex ch61st1[] = +{ + {9.5238f,28.5714f}, + {95.2381f,28.5714f} +}; + +static const GLUTStrokeStrip ch61st[] = +{ + {2,ch61st0}, + {2,ch61st1} +}; + +static const GLUTStrokeChar ch61 = {104.7619f,2,ch61st}; + +/* char: 0x3e */ + +static const GLUTStrokeVertex ch62st0[] = +{ + {14.2857f,85.7143f}, + {90.4762f,42.8571f}, + {14.2857f,0.0000f} +}; + +static const GLUTStrokeStrip ch62st[] = +{ + {3,ch62st0} +}; + +static const GLUTStrokeChar ch62 = {104.7619f,1,ch62st}; + +/* char: 0x3f */ + +static const GLUTStrokeVertex ch63st0[] = +{ + {23.8095f,76.1905f}, + {23.8095f,80.9524f}, + {28.5714f,90.4762f}, + {33.3333f,95.2381f}, + {42.8571f,100.0000f}, + {61.9047f,100.0000f}, + {71.4285f,95.2381f}, + {76.1905f,90.4762f}, + {80.9524f,80.9524f}, + {80.9524f,71.4286f}, + {76.1905f,61.9048f}, + {71.4285f,57.1429f}, + {52.3809f,47.6190f}, + {52.3809f,33.3333f} +}; + +static const GLUTStrokeVertex ch63st1[] = +{ + {52.3809f,9.5238f}, + {47.6190f,4.7619f}, + {52.3809f,0.0000f}, + {57.1428f,4.7619f}, + {52.3809f,9.5238f} +}; + +static const GLUTStrokeStrip ch63st[] = +{ + {14,ch63st0}, + {5,ch63st1} +}; + +static const GLUTStrokeChar ch63 = {104.7619f,2,ch63st}; + +/* char: 0x40 */ + +static const GLUTStrokeVertex ch64st0[] = +{ + {64.2857f,52.3810f}, + {54.7619f,57.1429f}, + {45.2381f,57.1429f}, + {40.4762f,47.6190f}, + {40.4762f,42.8571f}, + {45.2381f,33.3333f}, + {54.7619f,33.3333f}, + {64.2857f,38.0952f} +}; + +static const GLUTStrokeVertex ch64st1[] = +{ + {64.2857f,57.1429f}, + {64.2857f,38.0952f}, + {69.0476f,33.3333f}, + {78.5714f,33.3333f}, + {83.3334f,42.8571f}, + {83.3334f,47.6190f}, + {78.5714f,61.9048f}, + {69.0476f,71.4286f}, + {54.7619f,76.1905f}, + {50.0000f,76.1905f}, + {35.7143f,71.4286f}, + {26.1905f,61.9048f}, + {21.4286f,47.6190f}, + {21.4286f,42.8571f}, + {26.1905f,28.5714f}, + {35.7143f,19.0476f}, + {50.0000f,14.2857f}, + {54.7619f,14.2857f}, + {69.0476f,19.0476f} +}; + +static const GLUTStrokeStrip ch64st[] = +{ + {8,ch64st0}, + {19,ch64st1} +}; + +static const GLUTStrokeChar ch64 = {104.7619f,2,ch64st}; + +/* char: 0x41 */ + +static const GLUTStrokeVertex ch65st0[] = +{ + {52.3809f,100.0000f}, + {14.2857f,0.0000f} +}; + +static const GLUTStrokeVertex ch65st1[] = +{ + {52.3809f,100.0000f}, + {90.4762f,0.0000f} +}; + +static const GLUTStrokeVertex ch65st2[] = +{ + {28.5714f,33.3333f}, + {76.1905f,33.3333f} +}; + +static const GLUTStrokeStrip ch65st[] = +{ + {2,ch65st0}, + {2,ch65st1}, + {2,ch65st2} +}; + +static const GLUTStrokeChar ch65 = {104.7619f,3,ch65st}; + +/* char: 0x42 */ + +static const GLUTStrokeVertex ch66st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch66st1[] = +{ + {19.0476f,100.0000f}, + {61.9047f,100.0000f}, + {76.1905f,95.2381f}, + {80.9524f,90.4762f}, + {85.7143f,80.9524f}, + {85.7143f,71.4286f}, + {80.9524f,61.9048f}, + {76.1905f,57.1429f}, + {61.9047f,52.3810f} +}; + +static const GLUTStrokeVertex ch66st2[] = +{ + {19.0476f,52.3810f}, + {61.9047f,52.3810f}, + {76.1905f,47.6190f}, + {80.9524f,42.8571f}, + {85.7143f,33.3333f}, + {85.7143f,19.0476f}, + {80.9524f,9.5238f}, + {76.1905f,4.7619f}, + {61.9047f,0.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeStrip ch66st[] = +{ + {2,ch66st0}, + {9,ch66st1}, + {10,ch66st2} +}; + +static const GLUTStrokeChar ch66 = {104.7619f,3,ch66st}; + +/* char: 0x43 */ + +static const GLUTStrokeVertex ch67st0[] = +{ + {88.0952f,76.1905f}, + {83.3334f,85.7143f}, + {73.8096f,95.2381f}, + {64.2857f,100.0000f}, + {45.2381f,100.0000f}, + {35.7143f,95.2381f}, + {26.1905f,85.7143f}, + {21.4286f,76.1905f}, + {16.6667f,61.9048f}, + {16.6667f,38.0952f}, + {21.4286f,23.8095f}, + {26.1905f,14.2857f}, + {35.7143f,4.7619f}, + {45.2381f,0.0000f}, + {64.2857f,0.0000f}, + {73.8096f,4.7619f}, + {83.3334f,14.2857f}, + {88.0952f,23.8095f} +}; + +static const GLUTStrokeStrip ch67st[] = +{ + {18,ch67st0} +}; + +static const GLUTStrokeChar ch67 = {104.7619f,1,ch67st}; + +/* char: 0x44 */ + +static const GLUTStrokeVertex ch68st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch68st1[] = +{ + {19.0476f,100.0000f}, + {52.3809f,100.0000f}, + {66.6666f,95.2381f}, + {76.1905f,85.7143f}, + {80.9524f,76.1905f}, + {85.7143f,61.9048f}, + {85.7143f,38.0952f}, + {80.9524f,23.8095f}, + {76.1905f,14.2857f}, + {66.6666f,4.7619f}, + {52.3809f,0.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeStrip ch68st[] = +{ + {2,ch68st0}, + {12,ch68st1} +}; + +static const GLUTStrokeChar ch68 = {104.7619f,2,ch68st}; + +/* char: 0x45 */ + +static const GLUTStrokeVertex ch69st0[] = +{ + {21.4286f,100.0000f}, + {21.4286f,0.0000f} +}; + +static const GLUTStrokeVertex ch69st1[] = +{ + {21.4286f,100.0000f}, + {83.3334f,100.0000f} +}; + +static const GLUTStrokeVertex ch69st2[] = +{ + {21.4286f,52.3810f}, + {59.5238f,52.3810f} +}; + +static const GLUTStrokeVertex ch69st3[] = +{ + {21.4286f,0.0000f}, + {83.3334f,0.0000f} +}; + +static const GLUTStrokeStrip ch69st[] = +{ + {2,ch69st0}, + {2,ch69st1}, + {2,ch69st2}, + {2,ch69st3} +}; + +static const GLUTStrokeChar ch69 = {104.7619f,4,ch69st}; + +/* char: 0x46 */ + +static const GLUTStrokeVertex ch70st0[] = +{ + {21.4286f,100.0000f}, + {21.4286f,0.0000f} +}; + +static const GLUTStrokeVertex ch70st1[] = +{ + {21.4286f,100.0000f}, + {83.3334f,100.0000f} +}; + +static const GLUTStrokeVertex ch70st2[] = +{ + {21.4286f,52.3810f}, + {59.5238f,52.3810f} +}; + +static const GLUTStrokeStrip ch70st[] = +{ + {2,ch70st0}, + {2,ch70st1}, + {2,ch70st2} +}; + +static const GLUTStrokeChar ch70 = {104.7619f,3,ch70st}; + +/* char: 0x47 */ + +static const GLUTStrokeVertex ch71st0[] = +{ + {88.0952f,76.1905f}, + {83.3334f,85.7143f}, + {73.8096f,95.2381f}, + {64.2857f,100.0000f}, + {45.2381f,100.0000f}, + {35.7143f,95.2381f}, + {26.1905f,85.7143f}, + {21.4286f,76.1905f}, + {16.6667f,61.9048f}, + {16.6667f,38.0952f}, + {21.4286f,23.8095f}, + {26.1905f,14.2857f}, + {35.7143f,4.7619f}, + {45.2381f,0.0000f}, + {64.2857f,0.0000f}, + {73.8096f,4.7619f}, + {83.3334f,14.2857f}, + {88.0952f,23.8095f}, + {88.0952f,38.0952f} +}; + +static const GLUTStrokeVertex ch71st1[] = +{ + {64.2857f,38.0952f}, + {88.0952f,38.0952f} +}; + +static const GLUTStrokeStrip ch71st[] = +{ + {19,ch71st0}, + {2,ch71st1} +}; + +static const GLUTStrokeChar ch71 = {104.7619f,2,ch71st}; + +/* char: 0x48 */ + +static const GLUTStrokeVertex ch72st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch72st1[] = +{ + {85.7143f,100.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeVertex ch72st2[] = +{ + {19.0476f,52.3810f}, + {85.7143f,52.3810f} +}; + +static const GLUTStrokeStrip ch72st[] = +{ + {2,ch72st0}, + {2,ch72st1}, + {2,ch72st2} +}; + +static const GLUTStrokeChar ch72 = {104.7619f,3,ch72st}; + +/* char: 0x49 */ + +static const GLUTStrokeVertex ch73st0[] = +{ + {52.3810f,100.0000f}, + {52.3810f,0.0000f} +}; + +static const GLUTStrokeStrip ch73st[] = +{ + {2,ch73st0} +}; + +static const GLUTStrokeChar ch73 = {104.7619f,1,ch73st}; + +/* char: 0x4a */ + +static const GLUTStrokeVertex ch74st0[] = +{ + {76.1905f,100.0000f}, + {76.1905f,23.8095f}, + {71.4286f,9.5238f}, + {66.6667f,4.7619f}, + {57.1429f,0.0000f}, + {47.6191f,0.0000f}, + {38.0953f,4.7619f}, + {33.3334f,9.5238f}, + {28.5715f,23.8095f}, + {28.5715f,33.3333f} +}; + +static const GLUTStrokeStrip ch74st[] = +{ + {10,ch74st0} +}; + +static const GLUTStrokeChar ch74 = {104.7619f,1,ch74st}; + +/* char: 0x4b */ + +static const GLUTStrokeVertex ch75st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch75st1[] = +{ + {85.7143f,100.0000f}, + {19.0476f,33.3333f} +}; + +static const GLUTStrokeVertex ch75st2[] = +{ + {42.8571f,57.1429f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeStrip ch75st[] = +{ + {2,ch75st0}, + {2,ch75st1}, + {2,ch75st2} +}; + +static const GLUTStrokeChar ch75 = {104.7619f,3,ch75st}; + +/* char: 0x4c */ + +static const GLUTStrokeVertex ch76st0[] = +{ + {23.8095f,100.0000f}, + {23.8095f,0.0000f} +}; + +static const GLUTStrokeVertex ch76st1[] = +{ + {23.8095f,0.0000f}, + {80.9524f,0.0000f} +}; + +static const GLUTStrokeStrip ch76st[] = +{ + {2,ch76st0}, + {2,ch76st1} +}; + +static const GLUTStrokeChar ch76 = {104.7619f,2,ch76st}; + +/* char: 0x4d */ + +static const GLUTStrokeVertex ch77st0[] = +{ + {14.2857f,100.0000f}, + {14.2857f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st1[] = +{ + {14.2857f,100.0000f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st2[] = +{ + {90.4762f,100.0000f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st3[] = +{ + {90.4762f,100.0000f}, + {90.4762f,0.0000f} +}; + +static const GLUTStrokeStrip ch77st[] = +{ + {2,ch77st0}, + {2,ch77st1}, + {2,ch77st2}, + {2,ch77st3} +}; + +static const GLUTStrokeChar ch77 = {104.7619f,4,ch77st}; + +/* char: 0x4e */ + +static const GLUTStrokeVertex ch78st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch78st1[] = +{ + {19.0476f,100.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeVertex ch78st2[] = +{ + {85.7143f,100.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeStrip ch78st[] = +{ + {2,ch78st0}, + {2,ch78st1}, + {2,ch78st2} +}; + +static const GLUTStrokeChar ch78 = {104.7619f,3,ch78st}; + +/* char: 0x4f */ + +static const GLUTStrokeVertex ch79st0[] = +{ + {42.8571f,100.0000f}, + {33.3333f,95.2381f}, + {23.8095f,85.7143f}, + {19.0476f,76.1905f}, + {14.2857f,61.9048f}, + {14.2857f,38.0952f}, + {19.0476f,23.8095f}, + {23.8095f,14.2857f}, + {33.3333f,4.7619f}, + {42.8571f,0.0000f}, + {61.9047f,0.0000f}, + {71.4286f,4.7619f}, + {80.9524f,14.2857f}, + {85.7143f,23.8095f}, + {90.4762f,38.0952f}, + {90.4762f,61.9048f}, + {85.7143f,76.1905f}, + {80.9524f,85.7143f}, + {71.4286f,95.2381f}, + {61.9047f,100.0000f}, + {42.8571f,100.0000f} +}; + +static const GLUTStrokeStrip ch79st[] = +{ + {21,ch79st0} +}; + +static const GLUTStrokeChar ch79 = {104.7619f,1,ch79st}; + +/* char: 0x50 */ + +static const GLUTStrokeVertex ch80st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch80st1[] = +{ + {19.0476f,100.0000f}, + {61.9047f,100.0000f}, + {76.1905f,95.2381f}, + {80.9524f,90.4762f}, + {85.7143f,80.9524f}, + {85.7143f,66.6667f}, + {80.9524f,57.1429f}, + {76.1905f,52.3810f}, + {61.9047f,47.6190f}, + {19.0476f,47.6190f} +}; + +static const GLUTStrokeStrip ch80st[] = +{ + {2,ch80st0}, + {10,ch80st1} +}; + +static const GLUTStrokeChar ch80 = {104.7619f,2,ch80st}; + +/* char: 0x51 */ + +static const GLUTStrokeVertex ch81st0[] = +{ + {42.8571f,100.0000f}, + {33.3333f,95.2381f}, + {23.8095f,85.7143f}, + {19.0476f,76.1905f}, + {14.2857f,61.9048f}, + {14.2857f,38.0952f}, + {19.0476f,23.8095f}, + {23.8095f,14.2857f}, + {33.3333f,4.7619f}, + {42.8571f,0.0000f}, + {61.9047f,0.0000f}, + {71.4286f,4.7619f}, + {80.9524f,14.2857f}, + {85.7143f,23.8095f}, + {90.4762f,38.0952f}, + {90.4762f,61.9048f}, + {85.7143f,76.1905f}, + {80.9524f,85.7143f}, + {71.4286f,95.2381f}, + {61.9047f,100.0000f}, + {42.8571f,100.0000f} +}; + +static const GLUTStrokeVertex ch81st1[] = +{ + {57.1428f,19.0476f}, + {85.7143f,-9.5238f} +}; + +static const GLUTStrokeStrip ch81st[] = +{ + {21,ch81st0}, + {2,ch81st1} +}; + +static const GLUTStrokeChar ch81 = {104.7619f,2,ch81st}; + +/* char: 0x52 */ + +static const GLUTStrokeVertex ch82st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch82st1[] = +{ + {19.0476f,100.0000f}, + {61.9047f,100.0000f}, + {76.1905f,95.2381f}, + {80.9524f,90.4762f}, + {85.7143f,80.9524f}, + {85.7143f,71.4286f}, + {80.9524f,61.9048f}, + {76.1905f,57.1429f}, + {61.9047f,52.3810f}, + {19.0476f,52.3810f} +}; + +static const GLUTStrokeVertex ch82st2[] = +{ + {52.3809f,52.3810f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeStrip ch82st[] = +{ + {2,ch82st0}, + {10,ch82st1}, + {2,ch82st2} +}; + +static const GLUTStrokeChar ch82 = {104.7619f,3,ch82st}; + +/* char: 0x53 */ + +static const GLUTStrokeVertex ch83st0[] = +{ + {85.7143f,85.7143f}, + {76.1905f,95.2381f}, + {61.9047f,100.0000f}, + {42.8571f,100.0000f}, + {28.5714f,95.2381f}, + {19.0476f,85.7143f}, + {19.0476f,76.1905f}, + {23.8095f,66.6667f}, + {28.5714f,61.9048f}, + {38.0952f,57.1429f}, + {66.6666f,47.6190f}, + {76.1905f,42.8571f}, + {80.9524f,38.0952f}, + {85.7143f,28.5714f}, + {85.7143f,14.2857f}, + {76.1905f,4.7619f}, + {61.9047f,0.0000f}, + {42.8571f,0.0000f}, + {28.5714f,4.7619f}, + {19.0476f,14.2857f} +}; + +static const GLUTStrokeStrip ch83st[] = +{ + {20,ch83st0} +}; + +static const GLUTStrokeChar ch83 = {104.7619f,1,ch83st}; + +/* char: 0x54 */ + +static const GLUTStrokeVertex ch84st0[] = +{ + {52.3809f,100.0000f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch84st1[] = +{ + {19.0476f,100.0000f}, + {85.7143f,100.0000f} +}; + +static const GLUTStrokeStrip ch84st[] = +{ + {2,ch84st0}, + {2,ch84st1} +}; + +static const GLUTStrokeChar ch84 = {104.7619f,2,ch84st}; + +/* char: 0x55 */ + +static const GLUTStrokeVertex ch85st0[] = +{ + {19.0476f,100.0000f}, + {19.0476f,28.5714f}, + {23.8095f,14.2857f}, + {33.3333f,4.7619f}, + {47.6190f,0.0000f}, + {57.1428f,0.0000f}, + {71.4286f,4.7619f}, + {80.9524f,14.2857f}, + {85.7143f,28.5714f}, + {85.7143f,100.0000f} +}; + +static const GLUTStrokeStrip ch85st[] = +{ + {10,ch85st0} +}; + +static const GLUTStrokeChar ch85 = {104.7619f,1,ch85st}; + +/* char: 0x56 */ + +static const GLUTStrokeVertex ch86st0[] = +{ + {14.2857f,100.0000f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch86st1[] = +{ + {90.4762f,100.0000f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeStrip ch86st[] = +{ + {2,ch86st0}, + {2,ch86st1} +}; + +static const GLUTStrokeChar ch86 = {104.7619f,2,ch86st}; + +/* char: 0x57 */ + +static const GLUTStrokeVertex ch87st0[] = +{ + {4.7619f,100.0000f}, + {28.5714f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st1[] = +{ + {52.3809f,100.0000f}, + {28.5714f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st2[] = +{ + {52.3809f,100.0000f}, + {76.1905f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st3[] = +{ + {100.0000f,100.0000f}, + {76.1905f,0.0000f} +}; + +static const GLUTStrokeStrip ch87st[] = +{ + {2,ch87st0}, + {2,ch87st1}, + {2,ch87st2}, + {2,ch87st3} +}; + +static const GLUTStrokeChar ch87 = {104.7619f,4,ch87st}; + +/* char: 0x58 */ + +static const GLUTStrokeVertex ch88st0[] = +{ + {19.0476f,100.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeVertex ch88st1[] = +{ + {85.7143f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeStrip ch88st[] = +{ + {2,ch88st0}, + {2,ch88st1} +}; + +static const GLUTStrokeChar ch88 = {104.7619f,2,ch88st}; + +/* char: 0x59 */ + +static const GLUTStrokeVertex ch89st0[] = +{ + {14.2857f,100.0000f}, + {52.3809f,52.3810f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch89st1[] = +{ + {90.4762f,100.0000f}, + {52.3809f,52.3810f} +}; + +static const GLUTStrokeStrip ch89st[] = +{ + {3,ch89st0}, + {2,ch89st1} +}; + +static const GLUTStrokeChar ch89 = {104.7619f,2,ch89st}; + +/* char: 0x5a */ + +static const GLUTStrokeVertex ch90st0[] = +{ + {85.7143f,100.0000f}, + {19.0476f,0.0000f} +}; + +static const GLUTStrokeVertex ch90st1[] = +{ + {19.0476f,100.0000f}, + {85.7143f,100.0000f} +}; + +static const GLUTStrokeVertex ch90st2[] = +{ + {19.0476f,0.0000f}, + {85.7143f,0.0000f} +}; + +static const GLUTStrokeStrip ch90st[] = +{ + {2,ch90st0}, + {2,ch90st1}, + {2,ch90st2} +}; + +static const GLUTStrokeChar ch90 = {104.7619f,3,ch90st}; + +/* char: 0x5b */ + +static const GLUTStrokeVertex ch91st0[] = +{ + {35.7143f,119.0476f}, + {35.7143f,-33.3333f} +}; + +static const GLUTStrokeVertex ch91st1[] = +{ + {40.4762f,119.0476f}, + {40.4762f,-33.3333f} +}; + +static const GLUTStrokeVertex ch91st2[] = +{ + {35.7143f,119.0476f}, + {69.0476f,119.0476f} +}; + +static const GLUTStrokeVertex ch91st3[] = +{ + {35.7143f,-33.3333f}, + {69.0476f,-33.3333f} +}; + +static const GLUTStrokeStrip ch91st[] = +{ + {2,ch91st0}, + {2,ch91st1}, + {2,ch91st2}, + {2,ch91st3} +}; + +static const GLUTStrokeChar ch91 = {104.7619f,4,ch91st}; + +/* char: 0x5c */ + +static const GLUTStrokeVertex ch92st0[] = +{ + {19.0476f,100.0000f}, + {85.7143f,-14.2857f} +}; + +static const GLUTStrokeStrip ch92st[] = +{ + {2,ch92st0} +}; + +static const GLUTStrokeChar ch92 = {104.7619f,1,ch92st}; + +/* char: 0x5d */ + +static const GLUTStrokeVertex ch93st0[] = +{ + {64.2857f,119.0476f}, + {64.2857f,-33.3333f} +}; + +static const GLUTStrokeVertex ch93st1[] = +{ + {69.0476f,119.0476f}, + {69.0476f,-33.3333f} +}; + +static const GLUTStrokeVertex ch93st2[] = +{ + {35.7143f,119.0476f}, + {69.0476f,119.0476f} +}; + +static const GLUTStrokeVertex ch93st3[] = +{ + {35.7143f,-33.3333f}, + {69.0476f,-33.3333f} +}; + +static const GLUTStrokeStrip ch93st[] = +{ + {2,ch93st0}, + {2,ch93st1}, + {2,ch93st2}, + {2,ch93st3} +}; + +static const GLUTStrokeChar ch93 = {104.7619f,4,ch93st}; + +/* char: 0x5e */ + +static const GLUTStrokeVertex ch94st0[] = +{ + {52.3809f,109.5238f}, + {14.2857f,42.8571f} +}; + +static const GLUTStrokeVertex ch94st1[] = +{ + {52.3809f,109.5238f}, + {90.4762f,42.8571f} +}; + +static const GLUTStrokeStrip ch94st[] = +{ + {2,ch94st0}, + {2,ch94st1} +}; + +static const GLUTStrokeChar ch94 = {104.7619f,2,ch94st}; + +/* char: 0x5f */ + +static const GLUTStrokeVertex ch95st0[] = +{ + {0.0000f,-33.3333f}, + {104.7619f,-33.3333f}, + {104.7619f,-28.5714f}, + {0.0000f,-28.5714f}, + {0.0000f,-33.3333f} +}; + +static const GLUTStrokeStrip ch95st[] = +{ + {5,ch95st0} +}; + +static const GLUTStrokeChar ch95 = {104.7619f,1,ch95st}; + +/* char: 0x60 */ + +static const GLUTStrokeVertex ch96st0[] = +{ + {42.8572f,100.0000f}, + {66.6667f,71.4286f} +}; + +static const GLUTStrokeVertex ch96st1[] = +{ + {42.8572f,100.0000f}, + {38.0953f,95.2381f}, + {66.6667f,71.4286f} +}; + +static const GLUTStrokeStrip ch96st[] = +{ + {2,ch96st0}, + {3,ch96st1} +}; + +static const GLUTStrokeChar ch96 = {104.7619f,2,ch96st}; + +/* char: 0x61 */ + +static const GLUTStrokeVertex ch97st0[] = +{ + {80.9524f,66.6667f}, + {80.9524f,0.0000f} +}; + +static const GLUTStrokeVertex ch97st1[] = +{ + {80.9524f,52.3810f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch97st[] = +{ + {2,ch97st0}, + {14,ch97st1} +}; + +static const GLUTStrokeChar ch97 = {104.7619f,2,ch97st}; + +/* char: 0x62 */ + +static const GLUTStrokeVertex ch98st0[] = +{ + {23.8095f,100.0000f}, + {23.8095f,0.0000f} +}; + +static const GLUTStrokeVertex ch98st1[] = +{ + {23.8095f,52.3810f}, + {33.3333f,61.9048f}, + {42.8571f,66.6667f}, + {57.1428f,66.6667f}, + {66.6666f,61.9048f}, + {76.1905f,52.3810f}, + {80.9524f,38.0952f}, + {80.9524f,28.5714f}, + {76.1905f,14.2857f}, + {66.6666f,4.7619f}, + {57.1428f,0.0000f}, + {42.8571f,0.0000f}, + {33.3333f,4.7619f}, + {23.8095f,14.2857f} +}; + +static const GLUTStrokeStrip ch98st[] = +{ + {2,ch98st0}, + {14,ch98st1} +}; + +static const GLUTStrokeChar ch98 = {104.7619f,2,ch98st}; + +/* char: 0x63 */ + +static const GLUTStrokeVertex ch99st0[] = +{ + {80.9524f,52.3810f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch99st[] = +{ + {14,ch99st0} +}; + +static const GLUTStrokeChar ch99 = {104.7619f,1,ch99st}; + +/* char: 0x64 */ + +static const GLUTStrokeVertex ch100st0[] = +{ + {80.9524f,100.0000f}, + {80.9524f,0.0000f} +}; + +static const GLUTStrokeVertex ch100st1[] = +{ + {80.9524f,52.3810f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch100st[] = +{ + {2,ch100st0}, + {14,ch100st1} +}; + +static const GLUTStrokeChar ch100 = {104.7619f,2,ch100st}; + +/* char: 0x65 */ + +static const GLUTStrokeVertex ch101st0[] = +{ + {23.8095f,38.0952f}, + {80.9524f,38.0952f}, + {80.9524f,47.6190f}, + {76.1905f,57.1429f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch101st[] = +{ + {17,ch101st0} +}; + +static const GLUTStrokeChar ch101 = {104.7619f,1,ch101st}; + +/* char: 0x66 */ + +static const GLUTStrokeVertex ch102st0[] = +{ + {71.4286f,100.0000f}, + {61.9048f,100.0000f}, + {52.3810f,95.2381f}, + {47.6191f,80.9524f}, + {47.6191f,0.0000f} +}; + +static const GLUTStrokeVertex ch102st1[] = +{ + {33.3334f,66.6667f}, + {66.6667f,66.6667f} +}; + +static const GLUTStrokeStrip ch102st[] = +{ + {5,ch102st0}, + {2,ch102st1} +}; + +static const GLUTStrokeChar ch102 = {104.7619f,2,ch102st}; + +/* char: 0x67 */ + +static const GLUTStrokeVertex ch103st0[] = +{ + {80.9524f,66.6667f}, + {80.9524f,-9.5238f}, + {76.1905f,-23.8095f}, + {71.4285f,-28.5714f}, + {61.9047f,-33.3333f}, + {47.6190f,-33.3333f}, + {38.0952f,-28.5714f} +}; + +static const GLUTStrokeVertex ch103st1[] = +{ + {80.9524f,52.3810f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch103st[] = +{ + {7,ch103st0}, + {14,ch103st1} +}; + +static const GLUTStrokeChar ch103 = {104.7619f,2,ch103st}; + +/* char: 0x68 */ + +static const GLUTStrokeVertex ch104st0[] = +{ + {26.1905f,100.0000f}, + {26.1905f,0.0000f} +}; + +static const GLUTStrokeVertex ch104st1[] = +{ + {26.1905f,47.6190f}, + {40.4762f,61.9048f}, + {50.0000f,66.6667f}, + {64.2857f,66.6667f}, + {73.8095f,61.9048f}, + {78.5715f,47.6190f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeStrip ch104st[] = +{ + {2,ch104st0}, + {7,ch104st1} +}; + +static const GLUTStrokeChar ch104 = {104.7619f,2,ch104st}; + +/* char: 0x69 */ + +static const GLUTStrokeVertex ch105st0[] = +{ + {47.6191f,100.0000f}, + {52.3810f,95.2381f}, + {57.1429f,100.0000f}, + {52.3810f,104.7619f}, + {47.6191f,100.0000f} +}; + +static const GLUTStrokeVertex ch105st1[] = +{ + {52.3810f,66.6667f}, + {52.3810f,0.0000f} +}; + +static const GLUTStrokeStrip ch105st[] = +{ + {5,ch105st0}, + {2,ch105st1} +}; + +static const GLUTStrokeChar ch105 = {104.7619f,2,ch105st}; + +/* char: 0x6a */ + +static const GLUTStrokeVertex ch106st0[] = +{ + {57.1429f,100.0000f}, + {61.9048f,95.2381f}, + {66.6667f,100.0000f}, + {61.9048f,104.7619f}, + {57.1429f,100.0000f} +}; + +static const GLUTStrokeVertex ch106st1[] = +{ + {61.9048f,66.6667f}, + {61.9048f,-14.2857f}, + {57.1429f,-28.5714f}, + {47.6191f,-33.3333f}, + {38.0953f,-33.3333f} +}; + +static const GLUTStrokeStrip ch106st[] = +{ + {5,ch106st0}, + {5,ch106st1} +}; + +static const GLUTStrokeChar ch106 = {104.7619f,2,ch106st}; + +/* char: 0x6b */ + +static const GLUTStrokeVertex ch107st0[] = +{ + {26.1905f,100.0000f}, + {26.1905f,0.0000f} +}; + +static const GLUTStrokeVertex ch107st1[] = +{ + {73.8095f,66.6667f}, + {26.1905f,19.0476f} +}; + +static const GLUTStrokeVertex ch107st2[] = +{ + {45.2381f,38.0952f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeStrip ch107st[] = +{ + {2,ch107st0}, + {2,ch107st1}, + {2,ch107st2} +}; + +static const GLUTStrokeChar ch107 = {104.7619f,3,ch107st}; + +/* char: 0x6c */ + +static const GLUTStrokeVertex ch108st0[] = +{ + {52.3810f,100.0000f}, + {52.3810f,0.0000f} +}; + +static const GLUTStrokeStrip ch108st[] = +{ + {2,ch108st0} +}; + +static const GLUTStrokeChar ch108 = {104.7619f,1,ch108st}; + +/* char: 0x6d */ + +static const GLUTStrokeVertex ch109st0[] = +{ + {0.0000f,66.6667f}, + {0.0000f,0.0000f} +}; + +static const GLUTStrokeVertex ch109st1[] = +{ + {0.0000f,47.6190f}, + {14.2857f,61.9048f}, + {23.8095f,66.6667f}, + {38.0952f,66.6667f}, + {47.6190f,61.9048f}, + {52.3810f,47.6190f}, + {52.3810f,0.0000f} +}; + +static const GLUTStrokeVertex ch109st2[] = +{ + {52.3810f,47.6190f}, + {66.6667f,61.9048f}, + {76.1905f,66.6667f}, + {90.4762f,66.6667f}, + {100.0000f,61.9048f}, + {104.7619f,47.6190f}, + {104.7619f,0.0000f} +}; + +static const GLUTStrokeStrip ch109st[] = +{ + {2,ch109st0}, + {7,ch109st1}, + {7,ch109st2} +}; + +static const GLUTStrokeChar ch109 = {104.7619f,3,ch109st}; + +/* char: 0x6e */ + +static const GLUTStrokeVertex ch110st0[] = +{ + {26.1905f,66.6667f}, + {26.1905f,0.0000f} +}; + +static const GLUTStrokeVertex ch110st1[] = +{ + {26.1905f,47.6190f}, + {40.4762f,61.9048f}, + {50.0000f,66.6667f}, + {64.2857f,66.6667f}, + {73.8095f,61.9048f}, + {78.5715f,47.6190f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeStrip ch110st[] = +{ + {2,ch110st0}, + {7,ch110st1} +}; + +static const GLUTStrokeChar ch110 = {104.7619f,2,ch110st}; + +/* char: 0x6f */ + +static const GLUTStrokeVertex ch111st0[] = +{ + {45.2381f,66.6667f}, + {35.7143f,61.9048f}, + {26.1905f,52.3810f}, + {21.4286f,38.0952f}, + {21.4286f,28.5714f}, + {26.1905f,14.2857f}, + {35.7143f,4.7619f}, + {45.2381f,0.0000f}, + {59.5238f,0.0000f}, + {69.0476f,4.7619f}, + {78.5714f,14.2857f}, + {83.3334f,28.5714f}, + {83.3334f,38.0952f}, + {78.5714f,52.3810f}, + {69.0476f,61.9048f}, + {59.5238f,66.6667f}, + {45.2381f,66.6667f} +}; + +static const GLUTStrokeStrip ch111st[] = +{ + {17,ch111st0} +}; + +static const GLUTStrokeChar ch111 = {104.7619f,1,ch111st}; + +/* char: 0x70 */ + +static const GLUTStrokeVertex ch112st0[] = +{ + {23.8095f,66.6667f}, + {23.8095f,-33.3333f} +}; + +static const GLUTStrokeVertex ch112st1[] = +{ + {23.8095f,52.3810f}, + {33.3333f,61.9048f}, + {42.8571f,66.6667f}, + {57.1428f,66.6667f}, + {66.6666f,61.9048f}, + {76.1905f,52.3810f}, + {80.9524f,38.0952f}, + {80.9524f,28.5714f}, + {76.1905f,14.2857f}, + {66.6666f,4.7619f}, + {57.1428f,0.0000f}, + {42.8571f,0.0000f}, + {33.3333f,4.7619f}, + {23.8095f,14.2857f} +}; + +static const GLUTStrokeStrip ch112st[] = +{ + {2,ch112st0}, + {14,ch112st1} +}; + +static const GLUTStrokeChar ch112 = {104.7619f,2,ch112st}; + +/* char: 0x71 */ + +static const GLUTStrokeVertex ch113st0[] = +{ + {80.9524f,66.6667f}, + {80.9524f,-33.3333f} +}; + +static const GLUTStrokeVertex ch113st1[] = +{ + {80.9524f,52.3810f}, + {71.4285f,61.9048f}, + {61.9047f,66.6667f}, + {47.6190f,66.6667f}, + {38.0952f,61.9048f}, + {28.5714f,52.3810f}, + {23.8095f,38.0952f}, + {23.8095f,28.5714f}, + {28.5714f,14.2857f}, + {38.0952f,4.7619f}, + {47.6190f,0.0000f}, + {61.9047f,0.0000f}, + {71.4285f,4.7619f}, + {80.9524f,14.2857f} +}; + +static const GLUTStrokeStrip ch113st[] = +{ + {2,ch113st0}, + {14,ch113st1} +}; + +static const GLUTStrokeChar ch113 = {104.7619f,2,ch113st}; + +/* char: 0x72 */ + +static const GLUTStrokeVertex ch114st0[] = +{ + {33.3334f,66.6667f}, + {33.3334f,0.0000f} +}; + +static const GLUTStrokeVertex ch114st1[] = +{ + {33.3334f,38.0952f}, + {38.0953f,52.3810f}, + {47.6191f,61.9048f}, + {57.1429f,66.6667f}, + {71.4286f,66.6667f} +}; + +static const GLUTStrokeStrip ch114st[] = +{ + {2,ch114st0}, + {5,ch114st1} +}; + +static const GLUTStrokeChar ch114 = {104.7619f,2,ch114st}; + +/* char: 0x73 */ + +static const GLUTStrokeVertex ch115st0[] = +{ + {78.5715f,52.3810f}, + {73.8095f,61.9048f}, + {59.5238f,66.6667f}, + {45.2381f,66.6667f}, + {30.9524f,61.9048f}, + {26.1905f,52.3810f}, + {30.9524f,42.8571f}, + {40.4762f,38.0952f}, + {64.2857f,33.3333f}, + {73.8095f,28.5714f}, + {78.5715f,19.0476f}, + {78.5715f,14.2857f}, + {73.8095f,4.7619f}, + {59.5238f,0.0000f}, + {45.2381f,0.0000f}, + {30.9524f,4.7619f}, + {26.1905f,14.2857f} +}; + +static const GLUTStrokeStrip ch115st[] = +{ + {17,ch115st0} +}; + +static const GLUTStrokeChar ch115 = {104.7619f,1,ch115st}; + +/* char: 0x74 */ + +static const GLUTStrokeVertex ch116st0[] = +{ + {47.6191f,100.0000f}, + {47.6191f,19.0476f}, + {52.3810f,4.7619f}, + {61.9048f,0.0000f}, + {71.4286f,0.0000f} +}; + +static const GLUTStrokeVertex ch116st1[] = +{ + {33.3334f,66.6667f}, + {66.6667f,66.6667f} +}; + +static const GLUTStrokeStrip ch116st[] = +{ + {5,ch116st0}, + {2,ch116st1} +}; + +static const GLUTStrokeChar ch116 = {104.7619f,2,ch116st}; + +/* char: 0x75 */ + +static const GLUTStrokeVertex ch117st0[] = +{ + {26.1905f,66.6667f}, + {26.1905f,19.0476f}, + {30.9524f,4.7619f}, + {40.4762f,0.0000f}, + {54.7619f,0.0000f}, + {64.2857f,4.7619f}, + {78.5715f,19.0476f} +}; + +static const GLUTStrokeVertex ch117st1[] = +{ + {78.5715f,66.6667f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeStrip ch117st[] = +{ + {7,ch117st0}, + {2,ch117st1} +}; + +static const GLUTStrokeChar ch117 = {104.7619f,2,ch117st}; + +/* char: 0x76 */ + +static const GLUTStrokeVertex ch118st0[] = +{ + {23.8095f,66.6667f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeVertex ch118st1[] = +{ + {80.9524f,66.6667f}, + {52.3809f,0.0000f} +}; + +static const GLUTStrokeStrip ch118st[] = +{ + {2,ch118st0}, + {2,ch118st1} +}; + +static const GLUTStrokeChar ch118 = {104.7619f,2,ch118st}; + +/* char: 0x77 */ + +static const GLUTStrokeVertex ch119st0[] = +{ + {14.2857f,66.6667f}, + {33.3333f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st1[] = +{ + {52.3809f,66.6667f}, + {33.3333f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st2[] = +{ + {52.3809f,66.6667f}, + {71.4286f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st3[] = +{ + {90.4762f,66.6667f}, + {71.4286f,0.0000f} +}; + +static const GLUTStrokeStrip ch119st[] = +{ + {2,ch119st0}, + {2,ch119st1}, + {2,ch119st2}, + {2,ch119st3} +}; + +static const GLUTStrokeChar ch119 = {104.7619f,4,ch119st}; + +/* char: 0x78 */ + +static const GLUTStrokeVertex ch120st0[] = +{ + {26.1905f,66.6667f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeVertex ch120st1[] = +{ + {78.5715f,66.6667f}, + {26.1905f,0.0000f} +}; + +static const GLUTStrokeStrip ch120st[] = +{ + {2,ch120st0}, + {2,ch120st1} +}; + +static const GLUTStrokeChar ch120 = {104.7619f,2,ch120st}; + +/* char: 0x79 */ + +static const GLUTStrokeVertex ch121st0[] = +{ + {26.1905f,66.6667f}, + {54.7619f,0.0000f} +}; + +static const GLUTStrokeVertex ch121st1[] = +{ + {83.3334f,66.6667f}, + {54.7619f,0.0000f}, + {45.2381f,-19.0476f}, + {35.7143f,-28.5714f}, + {26.1905f,-33.3333f}, + {21.4286f,-33.3333f} +}; + +static const GLUTStrokeStrip ch121st[] = +{ + {2,ch121st0}, + {6,ch121st1} +}; + +static const GLUTStrokeChar ch121 = {104.7619f,2,ch121st}; + +/* char: 0x7a */ + +static const GLUTStrokeVertex ch122st0[] = +{ + {78.5715f,66.6667f}, + {26.1905f,0.0000f} +}; + +static const GLUTStrokeVertex ch122st1[] = +{ + {26.1905f,66.6667f}, + {78.5715f,66.6667f} +}; + +static const GLUTStrokeVertex ch122st2[] = +{ + {26.1905f,0.0000f}, + {78.5715f,0.0000f} +}; + +static const GLUTStrokeStrip ch122st[] = +{ + {2,ch122st0}, + {2,ch122st1}, + {2,ch122st2} +}; + +static const GLUTStrokeChar ch122 = {104.7619f,3,ch122st}; + +/* char: 0x7b */ + +static const GLUTStrokeVertex ch123st0[] = +{ + {64.2857f,119.0476f}, + {54.7619f,114.2857f}, + {50.0000f,109.5238f}, + {45.2381f,100.0000f}, + {45.2381f,90.4762f}, + {50.0000f,80.9524f}, + {54.7619f,76.1905f}, + {59.5238f,66.6667f}, + {59.5238f,57.1429f}, + {50.0000f,47.6190f} +}; + +static const GLUTStrokeVertex ch123st1[] = +{ + {54.7619f,114.2857f}, + {50.0000f,104.7619f}, + {50.0000f,95.2381f}, + {54.7619f,85.7143f}, + {59.5238f,80.9524f}, + {64.2857f,71.4286f}, + {64.2857f,61.9048f}, + {59.5238f,52.3810f}, + {40.4762f,42.8571f}, + {59.5238f,33.3333f}, + {64.2857f,23.8095f}, + {64.2857f,14.2857f}, + {59.5238f,4.7619f}, + {54.7619f,0.0000f}, + {50.0000f,-9.5238f}, + {50.0000f,-19.0476f}, + {54.7619f,-28.5714f} +}; + +static const GLUTStrokeVertex ch123st2[] = +{ + {50.0000f,38.0952f}, + {59.5238f,28.5714f}, + {59.5238f,19.0476f}, + {54.7619f,9.5238f}, + {50.0000f,4.7619f}, + {45.2381f,-4.7619f}, + {45.2381f,-14.2857f}, + {50.0000f,-23.8095f}, + {54.7619f,-28.5714f}, + {64.2857f,-33.3333f} +}; + +static const GLUTStrokeStrip ch123st[] = +{ + {10,ch123st0}, + {17,ch123st1}, + {10,ch123st2} +}; + +static const GLUTStrokeChar ch123 = {104.7619f,3,ch123st}; + +/* char: 0x7c */ + +static const GLUTStrokeVertex ch124st0[] = +{ + {52.3810f,119.0476f}, + {52.3810f,-33.3333f} +}; + +static const GLUTStrokeStrip ch124st[] = +{ + {2,ch124st0} +}; + +static const GLUTStrokeChar ch124 = {104.7619f,1,ch124st}; + +/* char: 0x7d */ + +static const GLUTStrokeVertex ch125st0[] = +{ + {40.4762f,119.0476f}, + {50.0000f,114.2857f}, + {54.7619f,109.5238f}, + {59.5238f,100.0000f}, + {59.5238f,90.4762f}, + {54.7619f,80.9524f}, + {50.0000f,76.1905f}, + {45.2381f,66.6667f}, + {45.2381f,57.1429f}, + {54.7619f,47.6190f} +}; + +static const GLUTStrokeVertex ch125st1[] = +{ + {50.0000f,114.2857f}, + {54.7619f,104.7619f}, + {54.7619f,95.2381f}, + {50.0000f,85.7143f}, + {45.2381f,80.9524f}, + {40.4762f,71.4286f}, + {40.4762f,61.9048f}, + {45.2381f,52.3810f}, + {64.2857f,42.8571f}, + {45.2381f,33.3333f}, + {40.4762f,23.8095f}, + {40.4762f,14.2857f}, + {45.2381f,4.7619f}, + {50.0000f,0.0000f}, + {54.7619f,-9.5238f}, + {54.7619f,-19.0476f}, + {50.0000f,-28.5714f} +}; + +static const GLUTStrokeVertex ch125st2[] = +{ + {54.7619f,38.0952f}, + {45.2381f,28.5714f}, + {45.2381f,19.0476f}, + {50.0000f,9.5238f}, + {54.7619f,4.7619f}, + {59.5238f,-4.7619f}, + {59.5238f,-14.2857f}, + {54.7619f,-23.8095f}, + {50.0000f,-28.5714f}, + {40.4762f,-33.3333f} +}; + +static const GLUTStrokeStrip ch125st[] = +{ + {10,ch125st0}, + {17,ch125st1}, + {10,ch125st2} +}; + +static const GLUTStrokeChar ch125 = {104.7619f,3,ch125st}; + +/* char: 0x7e */ + +static const GLUTStrokeVertex ch126st0[] = +{ + {9.5238f,28.5714f}, + {9.5238f,38.0952f}, + {14.2857f,52.3810f}, + {23.8095f,57.1429f}, + {33.3333f,57.1429f}, + {42.8571f,52.3810f}, + {61.9048f,38.0952f}, + {71.4286f,33.3333f}, + {80.9524f,33.3333f}, + {90.4762f,38.0952f}, + {95.2381f,47.6190f} +}; + +static const GLUTStrokeVertex ch126st1[] = +{ + {9.5238f,38.0952f}, + {14.2857f,47.6190f}, + {23.8095f,52.3810f}, + {33.3333f,52.3810f}, + {42.8571f,47.6190f}, + {61.9048f,33.3333f}, + {71.4286f,28.5714f}, + {80.9524f,28.5714f}, + {90.4762f,33.3333f}, + {95.2381f,47.6190f}, + {95.2381f,57.1429f} +}; + +static const GLUTStrokeStrip ch126st[] = +{ + {11,ch126st0}, + {11,ch126st1} +}; + +static const GLUTStrokeChar ch126 = {104.7619f,2,ch126st}; + +static const GLUTStrokeChar *chars[] = +{ + 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, + &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 +}; + +const GLUTStrokeFont glutStrokeMonoRoman = {"MonoRoman",128,chars,152.3809f,33.3333f}; diff --git a/src/glut/dos/overlay.c b/src/glut/dos/overlay.c new file mode 100644 index 00000000000..46d3a395770 --- /dev/null +++ b/src/glut/dos/overlay.c @@ -0,0 +1,93 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +int APIENTRY +glutLayerGet (GLenum info) +{ + switch (info) { + case GLUT_OVERLAY_POSSIBLE: + case GLUT_HAS_OVERLAY: + return GL_FALSE; + case GLUT_LAYER_IN_USE: + return GLUT_NORMAL; + case GLUT_NORMAL_DAMAGED: + return GL_FALSE; + case GLUT_OVERLAY_DAMAGED: + case GLUT_TRANSPARENT_INDEX: + default: + return -1; + } +} + + +void APIENTRY +glutOverlayDisplayFunc (GLUTdisplayCB func) +{ +} + + +void APIENTRY +glutEstablishOverlay (void) +{ +} + + +void APIENTRY +glutRemoveOverlay (void) +{ +} + + +void APIENTRY +glutUseLayer (GLenum layer) +{ +} + + +void APIENTRY +glutPostOverlayRedisplay (void) +{ +} + + +void APIENTRY +glutShowOverlay (void) +{ +} + + +void APIENTRY +glutHideOverlay (void) +{ +} + + +void APIENTRY +glutPostWindowOverlayRedisplay (int win) +{ +} diff --git a/src/glut/dos/roman.c b/src/glut/dos/roman.c new file mode 100644 index 00000000000..c30d76eb3f0 --- /dev/null +++ b/src/glut/dos/roman.c @@ -0,0 +1,2779 @@ + +/* GENERATED FILE -- DO NOT MODIFY */ + +#include "internal.h" + +/* char: 0x20 */ + +static const GLUTStrokeChar ch32 = {104.7619f,0,NULL}; + +/* char: 0x21 */ + +static const GLUTStrokeVertex ch33st0[] = +{ + {13.3819f,100.0000f}, + {13.3819f,33.3333f} +}; + +static const GLUTStrokeVertex ch33st1[] = +{ + {13.3819f,9.5238f}, + {8.6200f,4.7619f}, + {13.3819f,0.0000f}, + {18.1438f,4.7619f}, + {13.3819f,9.5238f} +}; + +static const GLUTStrokeStrip ch33st[] = +{ + {2,ch33st0}, + {5,ch33st1} +}; + +static const GLUTStrokeChar ch33 = {26.6238f,2,ch33st}; + +/* char: 0x22 */ + +static const GLUTStrokeVertex ch34st0[] = +{ + {4.0200f,100.0000f}, + {4.0200f,66.6667f} +}; + +static const GLUTStrokeVertex ch34st1[] = +{ + {42.1152f,100.0000f}, + {42.1152f,66.6667f} +}; + +static const GLUTStrokeStrip ch34st[] = +{ + {2,ch34st0}, + {2,ch34st1} +}; + +static const GLUTStrokeChar ch34 = {51.4352f,2,ch34st}; + +/* char: 0x23 */ + +static const GLUTStrokeVertex ch35st0[] = +{ + {41.2952f,119.0476f}, + {7.9619f,-33.3333f} +}; + +static const GLUTStrokeVertex ch35st1[] = +{ + {69.8667f,119.0476f}, + {36.5333f,-33.3333f} +}; + +static const GLUTStrokeVertex ch35st2[] = +{ + {7.9619f,57.1429f}, + {74.6286f,57.1429f} +}; + +static const GLUTStrokeVertex ch35st3[] = +{ + {3.2000f,28.5714f}, + {69.8667f,28.5714f} +}; + +static const GLUTStrokeStrip ch35st[] = +{ + {2,ch35st0}, + {2,ch35st1}, + {2,ch35st2}, + {2,ch35st3} +}; + +static const GLUTStrokeChar ch35 = {79.4886f,4,ch35st}; + +/* char: 0x24 */ + +static const GLUTStrokeVertex ch36st0[] = +{ + {28.6295f,119.0476f}, + {28.6295f,-19.0476f} +}; + +static const GLUTStrokeVertex ch36st1[] = +{ + {47.6771f,119.0476f}, + {47.6771f,-19.0476f} +}; + +static const GLUTStrokeVertex ch36st2[] = +{ + {71.4867f,85.7143f}, + {61.9629f,95.2381f}, + {47.6771f,100.0000f}, + {28.6295f,100.0000f}, + {14.3438f,95.2381f}, + {4.8200f,85.7143f}, + {4.8200f,76.1905f}, + {9.5819f,66.6667f}, + {14.3438f,61.9048f}, + {23.8676f,57.1429f}, + {52.4390f,47.6190f}, + {61.9629f,42.8571f}, + {66.7248f,38.0952f}, + {71.4867f,28.5714f}, + {71.4867f,14.2857f}, + {61.9629f,4.7619f}, + {47.6771f,0.0000f}, + {28.6295f,0.0000f}, + {14.3438f,4.7619f}, + {4.8200f,14.2857f} +}; + +static const GLUTStrokeStrip ch36st[] = +{ + {2,ch36st0}, + {2,ch36st1}, + {20,ch36st2} +}; + +static const GLUTStrokeChar ch36 = {76.2067f,3,ch36st}; + +/* char: 0x25 */ + +static const GLUTStrokeVertex ch37st0[] = +{ + {92.0743f,100.0000f}, + {6.3600f,0.0000f} +}; + +static const GLUTStrokeVertex ch37st1[] = +{ + {30.1695f,100.0000f}, + {39.6933f,90.4762f}, + {39.6933f,80.9524f}, + {34.9314f,71.4286f}, + {25.4076f,66.6667f}, + {15.8838f,66.6667f}, + {6.3600f,76.1905f}, + {6.3600f,85.7143f}, + {11.1219f,95.2381f}, + {20.6457f,100.0000f}, + {30.1695f,100.0000f}, + {39.6933f,95.2381f}, + {53.9790f,90.4762f}, + {68.2648f,90.4762f}, + {82.5505f,95.2381f}, + {92.0743f,100.0000f} +}; + +static const GLUTStrokeVertex ch37st2[] = +{ + {73.0267f,33.3333f}, + {63.5029f,28.5714f}, + {58.7410f,19.0476f}, + {58.7410f,9.5238f}, + {68.2648f,0.0000f}, + {77.7886f,0.0000f}, + {87.3124f,4.7619f}, + {92.0743f,14.2857f}, + {92.0743f,23.8095f}, + {82.5505f,33.3333f}, + {73.0267f,33.3333f} +}; + +static const GLUTStrokeStrip ch37st[] = +{ + {2,ch37st0}, + {16,ch37st1}, + {11,ch37st2} +}; + +static const GLUTStrokeChar ch37 = {96.5743f,3,ch37st}; + +/* char: 0x26 */ + +static const GLUTStrokeVertex ch38st0[] = +{ + {101.2181f,57.1429f}, + {101.2181f,61.9048f}, + {96.4562f,66.6667f}, + {91.6943f,66.6667f}, + {86.9324f,61.9048f}, + {82.1705f,52.3810f}, + {72.6467f,28.5714f}, + {63.1229f,14.2857f}, + {53.5990f,4.7619f}, + {44.0752f,0.0000f}, + {25.0276f,0.0000f}, + {15.5038f,4.7619f}, + {10.7419f,9.5238f}, + {5.9800f,19.0476f}, + {5.9800f,28.5714f}, + {10.7419f,38.0952f}, + {15.5038f,42.8571f}, + {48.8371f,61.9048f}, + {53.5990f,66.6667f}, + {58.3610f,76.1905f}, + {58.3610f,85.7143f}, + {53.5990f,95.2381f}, + {44.0752f,100.0000f}, + {34.5514f,95.2381f}, + {29.7895f,85.7143f}, + {29.7895f,76.1905f}, + {34.5514f,61.9048f}, + {44.0752f,47.6190f}, + {67.8848f,14.2857f}, + {77.4086f,4.7619f}, + {86.9324f,0.0000f}, + {96.4562f,0.0000f}, + {101.2181f,4.7619f}, + {101.2181f,9.5238f} +}; + +static const GLUTStrokeStrip ch38st[] = +{ + {34,ch38st0} +}; + +static const GLUTStrokeChar ch38 = {101.7581f,1,ch38st}; + +/* char: 0x27 */ + +static const GLUTStrokeVertex ch39st0[] = +{ + {4.4400f,100.0000f}, + {4.4400f,66.6667f} +}; + +static const GLUTStrokeStrip ch39st[] = +{ + {2,ch39st0} +}; + +static const GLUTStrokeChar ch39 = {13.6200f,1,ch39st}; + +/* char: 0x28 */ + +static const GLUTStrokeVertex ch40st0[] = +{ + {40.9133f,119.0476f}, + {31.3895f,109.5238f}, + {21.8657f,95.2381f}, + {12.3419f,76.1905f}, + {7.5800f,52.3810f}, + {7.5800f,33.3333f}, + {12.3419f,9.5238f}, + {21.8657f,-9.5238f}, + {31.3895f,-23.8095f}, + {40.9133f,-33.3333f} +}; + +static const GLUTStrokeStrip ch40st[] = +{ + {10,ch40st0} +}; + +static const GLUTStrokeChar ch40 = {47.1733f,1,ch40st}; + +/* char: 0x29 */ + +static const GLUTStrokeVertex ch41st0[] = +{ + {5.2800f,119.0476f}, + {14.8038f,109.5238f}, + {24.3276f,95.2381f}, + {33.8514f,76.1905f}, + {38.6133f,52.3810f}, + {38.6133f,33.3333f}, + {33.8514f,9.5238f}, + {24.3276f,-9.5238f}, + {14.8038f,-23.8095f}, + {5.2800f,-33.3333f} +}; + +static const GLUTStrokeStrip ch41st[] = +{ + {10,ch41st0} +}; + +static const GLUTStrokeChar ch41 = {47.5333f,1,ch41st}; + +/* char: 0x2a */ + +static const GLUTStrokeVertex ch42st0[] = +{ + {30.7695f,71.4286f}, + {30.7695f,14.2857f} +}; + +static const GLUTStrokeVertex ch42st1[] = +{ + {6.9600f,57.1429f}, + {54.5790f,28.5714f} +}; + +static const GLUTStrokeVertex ch42st2[] = +{ + {54.5790f,57.1429f}, + {6.9600f,28.5714f} +}; + +static const GLUTStrokeStrip ch42st[] = +{ + {2,ch42st0}, + {2,ch42st1}, + {2,ch42st2} +}; + +static const GLUTStrokeChar ch42 = {59.4390f,3,ch42st}; + +/* char: 0x2b */ + +static const GLUTStrokeVertex ch43st0[] = +{ + {48.8371f,85.7143f}, + {48.8371f,0.0000f} +}; + +static const GLUTStrokeVertex ch43st1[] = +{ + {5.9800f,42.8571f}, + {91.6943f,42.8571f} +}; + +static const GLUTStrokeStrip ch43st[] = +{ + {2,ch43st0}, + {2,ch43st1} +}; + +static const GLUTStrokeChar ch43 = {97.2543f,2,ch43st}; + +/* char: 0x2c */ + +static const GLUTStrokeVertex ch44st0[] = +{ + {18.2838f,4.7619f}, + {13.5219f,0.0000f}, + {8.7600f,4.7619f}, + {13.5219f,9.5238f}, + {18.2838f,4.7619f}, + {18.2838f,-4.7619f}, + {13.5219f,-14.2857f}, + {8.7600f,-19.0476f} +}; + +static const GLUTStrokeStrip ch44st[] = +{ + {8,ch44st0} +}; + +static const GLUTStrokeChar ch44 = {26.0638f,1,ch44st}; + +/* char: 0x2d */ + +static const GLUTStrokeVertex ch45st0[] = +{ + {7.3800f,42.8571f}, + {93.0943f,42.8571f} +}; + +static const GLUTStrokeStrip ch45st[] = +{ + {2,ch45st0} +}; + +static const GLUTStrokeChar ch45 = {100.7543f,1,ch45st}; + +/* char: 0x2e */ + +static const GLUTStrokeVertex ch46st0[] = +{ + {13.1019f,9.5238f}, + {8.3400f,4.7619f}, + {13.1019f,0.0000f}, + {17.8638f,4.7619f}, + {13.1019f,9.5238f} +}; + +static const GLUTStrokeStrip ch46st[] = +{ + {5,ch46st0} +}; + +static const GLUTStrokeChar ch46 = {26.4838f,1,ch46st}; + +/* char: 0x2f */ + +static const GLUTStrokeVertex ch47st0[] = +{ + {7.2400f,-14.2857f}, + {73.9067f,100.0000f} +}; + +static const GLUTStrokeStrip ch47st[] = +{ + {2,ch47st0} +}; + +static const GLUTStrokeChar ch47 = {82.1067f,1,ch47st}; + +/* char: 0x30 */ + +static const GLUTStrokeVertex ch48st0[] = +{ + {33.5514f,100.0000f}, + {19.2657f,95.2381f}, + {9.7419f,80.9524f}, + {4.9800f,57.1429f}, + {4.9800f,42.8571f}, + {9.7419f,19.0476f}, + {19.2657f,4.7619f}, + {33.5514f,0.0000f}, + {43.0752f,0.0000f}, + {57.3610f,4.7619f}, + {66.8848f,19.0476f}, + {71.6467f,42.8571f}, + {71.6467f,57.1429f}, + {66.8848f,80.9524f}, + {57.3610f,95.2381f}, + {43.0752f,100.0000f}, + {33.5514f,100.0000f} +}; + +static const GLUTStrokeStrip ch48st[] = +{ + {17,ch48st0} +}; + +static const GLUTStrokeChar ch48 = {77.0667f,1,ch48st}; + +/* char: 0x31 */ + +static const GLUTStrokeVertex ch49st0[] = +{ + {11.8200f,80.9524f}, + {21.3438f,85.7143f}, + {35.6295f,100.0000f}, + {35.6295f,0.0000f} +}; + +static const GLUTStrokeStrip ch49st[] = +{ + {4,ch49st0} +}; + +static const GLUTStrokeChar ch49 = {66.5295f,1,ch49st}; + +/* char: 0x32 */ + +static const GLUTStrokeVertex ch50st0[] = +{ + {10.1819f,76.1905f}, + {10.1819f,80.9524f}, + {14.9438f,90.4762f}, + {19.7057f,95.2381f}, + {29.2295f,100.0000f}, + {48.2771f,100.0000f}, + {57.8010f,95.2381f}, + {62.5629f,90.4762f}, + {67.3248f,80.9524f}, + {67.3248f,71.4286f}, + {62.5629f,61.9048f}, + {53.0390f,47.6190f}, + {5.4200f,0.0000f}, + {72.0867f,0.0000f} +}; + +static const GLUTStrokeStrip ch50st[] = +{ + {14,ch50st0} +}; + +static const GLUTStrokeChar ch50 = {77.6467f,1,ch50st}; + +/* char: 0x33 */ + +static const GLUTStrokeVertex ch51st0[] = +{ + {14.5238f,100.0000f}, + {66.9048f,100.0000f}, + {38.3333f,61.9048f}, + {52.6190f,61.9048f}, + {62.1429f,57.1429f}, + {66.9048f,52.3810f}, + {71.6667f,38.0952f}, + {71.6667f,28.5714f}, + {66.9048f,14.2857f}, + {57.3810f,4.7619f}, + {43.0952f,0.0000f}, + {28.8095f,0.0000f}, + {14.5238f,4.7619f}, + {9.7619f,9.5238f}, + {5.0000f,19.0476f} +}; + +static const GLUTStrokeStrip ch51st[] = +{ + {15,ch51st0} +}; + +static const GLUTStrokeChar ch51 = {77.0467f,1,ch51st}; + +/* char: 0x34 */ + +static const GLUTStrokeVertex ch52st0[] = +{ + {51.4990f,100.0000f}, + {3.8800f,33.3333f}, + {75.3086f,33.3333f} +}; + +static const GLUTStrokeVertex ch52st1[] = +{ + {51.4990f,100.0000f}, + {51.4990f,0.0000f} +}; + +static const GLUTStrokeStrip ch52st[] = +{ + {3,ch52st0}, + {2,ch52st1} +}; + +static const GLUTStrokeChar ch52 = {80.1686f,2,ch52st}; + +/* char: 0x35 */ + +static const GLUTStrokeVertex ch53st0[] = +{ + {62.0029f,100.0000f}, + {14.3838f,100.0000f}, + {9.6219f,57.1429f}, + {14.3838f,61.9048f}, + {28.6695f,66.6667f}, + {42.9552f,66.6667f}, + {57.2410f,61.9048f}, + {66.7648f,52.3810f}, + {71.5267f,38.0952f}, + {71.5267f,28.5714f}, + {66.7648f,14.2857f}, + {57.2410f,4.7619f}, + {42.9552f,0.0000f}, + {28.6695f,0.0000f}, + {14.3838f,4.7619f}, + {9.6219f,9.5238f}, + {4.8600f,19.0476f} +}; + +static const GLUTStrokeStrip ch53st[] = +{ + {17,ch53st0} +}; + +static const GLUTStrokeChar ch53 = {77.6867f,1,ch53st}; + +/* char: 0x36 */ + +static const GLUTStrokeVertex ch54st0[] = +{ + {62.7229f,85.7143f}, + {57.9610f,95.2381f}, + {43.6752f,100.0000f}, + {34.1514f,100.0000f}, + {19.8657f,95.2381f}, + {10.3419f,80.9524f}, + {5.5800f,57.1429f}, + {5.5800f,33.3333f}, + {10.3419f,14.2857f}, + {19.8657f,4.7619f}, + {34.1514f,0.0000f}, + {38.9133f,0.0000f}, + {53.1990f,4.7619f}, + {62.7229f,14.2857f}, + {67.4848f,28.5714f}, + {67.4848f,33.3333f}, + {62.7229f,47.6190f}, + {53.1990f,57.1429f}, + {38.9133f,61.9048f}, + {34.1514f,61.9048f}, + {19.8657f,57.1429f}, + {10.3419f,47.6190f}, + {5.5800f,33.3333f} +}; + +static const GLUTStrokeStrip ch54st[] = +{ + {23,ch54st0} +}; + +static const GLUTStrokeChar ch54 = {73.8048f,1,ch54st}; + +/* char: 0x37 */ + +static const GLUTStrokeVertex ch55st0[] = +{ + {72.2267f,100.0000f}, + {24.6076f,0.0000f} +}; + +static const GLUTStrokeVertex ch55st1[] = +{ + {5.5600f,100.0000f}, + {72.2267f,100.0000f} +}; + +static const GLUTStrokeStrip ch55st[] = +{ + {2,ch55st0}, + {2,ch55st1} +}; + +static const GLUTStrokeChar ch55 = {77.2267f,2,ch55st}; + +/* char: 0x38 */ + +static const GLUTStrokeVertex ch56st0[] = +{ + {29.4095f,100.0000f}, + {15.1238f,95.2381f}, + {10.3619f,85.7143f}, + {10.3619f,76.1905f}, + {15.1238f,66.6667f}, + {24.6476f,61.9048f}, + {43.6952f,57.1429f}, + {57.9810f,52.3810f}, + {67.5048f,42.8571f}, + {72.2667f,33.3333f}, + {72.2667f,19.0476f}, + {67.5048f,9.5238f}, + {62.7429f,4.7619f}, + {48.4571f,0.0000f}, + {29.4095f,0.0000f}, + {15.1238f,4.7619f}, + {10.3619f,9.5238f}, + {5.6000f,19.0476f}, + {5.6000f,33.3333f}, + {10.3619f,42.8571f}, + {19.8857f,52.3810f}, + {34.1714f,57.1429f}, + {53.2190f,61.9048f}, + {62.7429f,66.6667f}, + {67.5048f,76.1905f}, + {67.5048f,85.7143f}, + {62.7429f,95.2381f}, + {48.4571f,100.0000f}, + {29.4095f,100.0000f} +}; + +static const GLUTStrokeStrip ch56st[] = +{ + {29,ch56st0} +}; + +static const GLUTStrokeChar ch56 = {77.6667f,1,ch56st}; + +/* char: 0x39 */ + +static const GLUTStrokeVertex ch57st0[] = +{ + {68.5048f,66.6667f}, + {63.7429f,52.3810f}, + {54.2190f,42.8571f}, + {39.9333f,38.0952f}, + {35.1714f,38.0952f}, + {20.8857f,42.8571f}, + {11.3619f,52.3810f}, + {6.6000f,66.6667f}, + {6.6000f,71.4286f}, + {11.3619f,85.7143f}, + {20.8857f,95.2381f}, + {35.1714f,100.0000f}, + {39.9333f,100.0000f}, + {54.2190f,95.2381f}, + {63.7429f,85.7143f}, + {68.5048f,66.6667f}, + {68.5048f,42.8571f}, + {63.7429f,19.0476f}, + {54.2190f,4.7619f}, + {39.9333f,0.0000f}, + {30.4095f,0.0000f}, + {16.1238f,4.7619f}, + {11.3619f,14.2857f} +}; + +static const GLUTStrokeStrip ch57st[] = +{ + {23,ch57st0} +}; + +static const GLUTStrokeChar ch57 = {74.0648f,1,ch57st}; + +/* char: 0x3a */ + +static const GLUTStrokeVertex ch58st0[] = +{ + {14.0819f,66.6667f}, + {9.3200f,61.9048f}, + {14.0819f,57.1429f}, + {18.8438f,61.9048f}, + {14.0819f,66.6667f} +}; + +static const GLUTStrokeVertex ch58st1[] = +{ + {14.0819f,9.5238f}, + {9.3200f,4.7619f}, + {14.0819f,0.0000f}, + {18.8438f,4.7619f}, + {14.0819f,9.5238f} +}; + +static const GLUTStrokeStrip ch58st[] = +{ + {5,ch58st0}, + {5,ch58st1} +}; + +static const GLUTStrokeChar ch58 = {26.2238f,2,ch58st}; + +/* char: 0x3b */ + +static const GLUTStrokeVertex ch59st0[] = +{ + {12.9619f,66.6667f}, + {8.2000f,61.9048f}, + {12.9619f,57.1429f}, + {17.7238f,61.9048f}, + {12.9619f,66.6667f} +}; + +static const GLUTStrokeVertex ch59st1[] = +{ + {17.7238f,4.7619f}, + {12.9619f,0.0000f}, + {8.2000f,4.7619f}, + {12.9619f,9.5238f}, + {17.7238f,4.7619f}, + {17.7238f,-4.7619f}, + {12.9619f,-14.2857f}, + {8.2000f,-19.0476f} +}; + +static const GLUTStrokeStrip ch59st[] = +{ + {5,ch59st0}, + {8,ch59st1} +}; + +static const GLUTStrokeChar ch59 = {26.3038f,2,ch59st}; + +/* char: 0x3c */ + +static const GLUTStrokeVertex ch60st0[] = +{ + {79.2505f,85.7143f}, + {3.0600f,42.8571f}, + {79.2505f,0.0000f} +}; + +static const GLUTStrokeStrip ch60st[] = +{ + {3,ch60st0} +}; + +static const GLUTStrokeChar ch60 = {81.6105f,1,ch60st}; + +/* char: 0x3d */ + +static const GLUTStrokeVertex ch61st0[] = +{ + {5.7000f,57.1429f}, + {91.4143f,57.1429f} +}; + +static const GLUTStrokeVertex ch61st1[] = +{ + {5.7000f,28.5714f}, + {91.4143f,28.5714f} +}; + +static const GLUTStrokeStrip ch61st[] = +{ + {2,ch61st0}, + {2,ch61st1} +}; + +static const GLUTStrokeChar ch61 = {97.2543f,2,ch61st}; + +/* char: 0x3e */ + +static const GLUTStrokeVertex ch62st0[] = +{ + {2.7800f,85.7143f}, + {78.9705f,42.8571f}, + {2.7800f,0.0000f} +}; + +static const GLUTStrokeStrip ch62st[] = +{ + {3,ch62st0} +}; + +static const GLUTStrokeChar ch62 = {81.6105f,1,ch62st}; + +/* char: 0x3f */ + +static const GLUTStrokeVertex ch63st0[] = +{ + {8.4200f,76.1905f}, + {8.4200f,80.9524f}, + {13.1819f,90.4762f}, + {17.9438f,95.2381f}, + {27.4676f,100.0000f}, + {46.5152f,100.0000f}, + {56.0390f,95.2381f}, + {60.8010f,90.4762f}, + {65.5629f,80.9524f}, + {65.5629f,71.4286f}, + {60.8010f,61.9048f}, + {56.0390f,57.1429f}, + {36.9914f,47.6190f}, + {36.9914f,33.3333f} +}; + +static const GLUTStrokeVertex ch63st1[] = +{ + {36.9914f,9.5238f}, + {32.2295f,4.7619f}, + {36.9914f,0.0000f}, + {41.7533f,4.7619f}, + {36.9914f,9.5238f} +}; + +static const GLUTStrokeStrip ch63st[] = +{ + {14,ch63st0}, + {5,ch63st1} +}; + +static const GLUTStrokeChar ch63 = {73.9029f,2,ch63st}; + +/* char: 0x40 */ + +static const GLUTStrokeVertex ch64st0[] = +{ + {49.2171f,52.3810f}, + {39.6933f,57.1429f}, + {30.1695f,57.1429f}, + {25.4076f,47.6190f}, + {25.4076f,42.8571f}, + {30.1695f,33.3333f}, + {39.6933f,33.3333f}, + {49.2171f,38.0952f} +}; + +static const GLUTStrokeVertex ch64st1[] = +{ + {49.2171f,57.1429f}, + {49.2171f,38.0952f}, + {53.9790f,33.3333f}, + {63.5029f,33.3333f}, + {68.2648f,42.8571f}, + {68.2648f,47.6190f}, + {63.5029f,61.9048f}, + {53.9790f,71.4286f}, + {39.6933f,76.1905f}, + {34.9314f,76.1905f}, + {20.6457f,71.4286f}, + {11.1219f,61.9048f}, + {6.3600f,47.6190f}, + {6.3600f,42.8571f}, + {11.1219f,28.5714f}, + {20.6457f,19.0476f}, + {34.9314f,14.2857f}, + {39.6933f,14.2857f}, + {53.9790f,19.0476f} +}; + +static const GLUTStrokeStrip ch64st[] = +{ + {8,ch64st0}, + {19,ch64st1} +}; + +static const GLUTStrokeChar ch64 = {74.3648f,2,ch64st}; + +/* char: 0x41 */ + +static const GLUTStrokeVertex ch65st0[] = +{ + {40.5952f,100.0000f}, + {2.5000f,0.0000f} +}; + +static const GLUTStrokeVertex ch65st1[] = +{ + {40.5952f,100.0000f}, + {78.6905f,0.0000f} +}; + +static const GLUTStrokeVertex ch65st2[] = +{ + {16.7857f,33.3333f}, + {64.4048f,33.3333f} +}; + +static const GLUTStrokeStrip ch65st[] = +{ + {2,ch65st0}, + {2,ch65st1}, + {2,ch65st2} +}; + +static const GLUTStrokeChar ch65 = {80.4905f,3,ch65st}; + +/* char: 0x42 */ + +static const GLUTStrokeVertex ch66st0[] = +{ + {11.4200f,100.0000f}, + {11.4200f,0.0000f} +}; + +static const GLUTStrokeVertex ch66st1[] = +{ + {11.4200f,100.0000f}, + {54.2771f,100.0000f}, + {68.5629f,95.2381f}, + {73.3248f,90.4762f}, + {78.0867f,80.9524f}, + {78.0867f,71.4286f}, + {73.3248f,61.9048f}, + {68.5629f,57.1429f}, + {54.2771f,52.3810f} +}; + +static const GLUTStrokeVertex ch66st2[] = +{ + {11.4200f,52.3810f}, + {54.2771f,52.3810f}, + {68.5629f,47.6190f}, + {73.3248f,42.8571f}, + {78.0867f,33.3333f}, + {78.0867f,19.0476f}, + {73.3248f,9.5238f}, + {68.5629f,4.7619f}, + {54.2771f,0.0000f}, + {11.4200f,0.0000f} +}; + +static const GLUTStrokeStrip ch66st[] = +{ + {2,ch66st0}, + {9,ch66st1}, + {10,ch66st2} +}; + +static const GLUTStrokeChar ch66 = {83.6267f,3,ch66st}; + +/* char: 0x43 */ + +static const GLUTStrokeVertex ch67st0[] = +{ + {78.0886f,76.1905f}, + {73.3267f,85.7143f}, + {63.8029f,95.2381f}, + {54.2790f,100.0000f}, + {35.2314f,100.0000f}, + {25.7076f,95.2381f}, + {16.1838f,85.7143f}, + {11.4219f,76.1905f}, + {6.6600f,61.9048f}, + {6.6600f,38.0952f}, + {11.4219f,23.8095f}, + {16.1838f,14.2857f}, + {25.7076f,4.7619f}, + {35.2314f,0.0000f}, + {54.2790f,0.0000f}, + {63.8029f,4.7619f}, + {73.3267f,14.2857f}, + {78.0886f,23.8095f} +}; + +static const GLUTStrokeStrip ch67st[] = +{ + {18,ch67st0} +}; + +static const GLUTStrokeChar ch67 = {84.4886f,1,ch67st}; + +/* char: 0x44 */ + +static const GLUTStrokeVertex ch68st0[] = +{ + {11.9600f,100.0000f}, + {11.9600f,0.0000f} +}; + +static const GLUTStrokeVertex ch68st1[] = +{ + {11.9600f,100.0000f}, + {45.2933f,100.0000f}, + {59.5790f,95.2381f}, + {69.1029f,85.7143f}, + {73.8648f,76.1905f}, + {78.6267f,61.9048f}, + {78.6267f,38.0952f}, + {73.8648f,23.8095f}, + {69.1029f,14.2857f}, + {59.5790f,4.7619f}, + {45.2933f,0.0000f}, + {11.9600f,0.0000f} +}; + +static const GLUTStrokeStrip ch68st[] = +{ + {2,ch68st0}, + {12,ch68st1} +}; + +static const GLUTStrokeChar ch68 = {85.2867f,2,ch68st}; + +/* char: 0x45 */ + +static const GLUTStrokeVertex ch69st0[] = +{ + {11.4200f,100.0000f}, + {11.4200f,0.0000f} +}; + +static const GLUTStrokeVertex ch69st1[] = +{ + {11.4200f,100.0000f}, + {73.3248f,100.0000f} +}; + +static const GLUTStrokeVertex ch69st2[] = +{ + {11.4200f,52.3810f}, + {49.5152f,52.3810f} +}; + +static const GLUTStrokeVertex ch69st3[] = +{ + {11.4200f,0.0000f}, + {73.3248f,0.0000f} +}; + +static const GLUTStrokeStrip ch69st[] = +{ + {2,ch69st0}, + {2,ch69st1}, + {2,ch69st2}, + {2,ch69st3} +}; + +static const GLUTStrokeChar ch69 = {78.1848f,4,ch69st}; + +/* char: 0x46 */ + +static const GLUTStrokeVertex ch70st0[] = +{ + {11.4200f,100.0000f}, + {11.4200f,0.0000f} +}; + +static const GLUTStrokeVertex ch70st1[] = +{ + {11.4200f,100.0000f}, + {73.3248f,100.0000f} +}; + +static const GLUTStrokeVertex ch70st2[] = +{ + {11.4200f,52.3810f}, + {49.5152f,52.3810f} +}; + +static const GLUTStrokeStrip ch70st[] = +{ + {2,ch70st0}, + {2,ch70st1}, + {2,ch70st2} +}; + +static const GLUTStrokeChar ch70 = {78.7448f,3,ch70st}; + +/* char: 0x47 */ + +static const GLUTStrokeVertex ch71st0[] = +{ + {78.4886f,76.1905f}, + {73.7267f,85.7143f}, + {64.2029f,95.2381f}, + {54.6790f,100.0000f}, + {35.6314f,100.0000f}, + {26.1076f,95.2381f}, + {16.5838f,85.7143f}, + {11.8219f,76.1905f}, + {7.0600f,61.9048f}, + {7.0600f,38.0952f}, + {11.8219f,23.8095f}, + {16.5838f,14.2857f}, + {26.1076f,4.7619f}, + {35.6314f,0.0000f}, + {54.6790f,0.0000f}, + {64.2029f,4.7619f}, + {73.7267f,14.2857f}, + {78.4886f,23.8095f}, + {78.4886f,38.0952f} +}; + +static const GLUTStrokeVertex ch71st1[] = +{ + {54.6790f,38.0952f}, + {78.4886f,38.0952f} +}; + +static const GLUTStrokeStrip ch71st[] = +{ + {19,ch71st0}, + {2,ch71st1} +}; + +static const GLUTStrokeChar ch71 = {89.7686f,2,ch71st}; + +/* char: 0x48 */ + +static const GLUTStrokeVertex ch72st0[] = +{ + {11.4200f,100.0000f}, + {11.4200f,0.0000f} +}; + +static const GLUTStrokeVertex ch72st1[] = +{ + {78.0867f,100.0000f}, + {78.0867f,0.0000f} +}; + +static const GLUTStrokeVertex ch72st2[] = +{ + {11.4200f,52.3810f}, + {78.0867f,52.3810f} +}; + +static const GLUTStrokeStrip ch72st[] = +{ + {2,ch72st0}, + {2,ch72st1}, + {2,ch72st2} +}; + +static const GLUTStrokeChar ch72 = {89.0867f,3,ch72st}; + +/* char: 0x49 */ + +static const GLUTStrokeVertex ch73st0[] = +{ + {10.8600f,100.0000f}, + {10.8600f,0.0000f} +}; + +static const GLUTStrokeStrip ch73st[] = +{ + {2,ch73st0} +}; + +static const GLUTStrokeChar ch73 = {21.3000f,1,ch73st}; + +/* char: 0x4a */ + +static const GLUTStrokeVertex ch74st0[] = +{ + {50.1190f,100.0000f}, + {50.1190f,23.8095f}, + {45.3571f,9.5238f}, + {40.5952f,4.7619f}, + {31.0714f,0.0000f}, + {21.5476f,0.0000f}, + {12.0238f,4.7619f}, + {7.2619f,9.5238f}, + {2.5000f,23.8095f}, + {2.5000f,33.3333f} +}; + +static const GLUTStrokeStrip ch74st[] = +{ + {10,ch74st0} +}; + +static const GLUTStrokeChar ch74 = {59.9990f,1,ch74st}; + +/* char: 0x4b */ + +static const GLUTStrokeVertex ch75st0[] = +{ + {11.2800f,100.0000f}, + {11.2800f,0.0000f} +}; + +static const GLUTStrokeVertex ch75st1[] = +{ + {77.9467f,100.0000f}, + {11.2800f,33.3333f} +}; + +static const GLUTStrokeVertex ch75st2[] = +{ + {35.0895f,57.1429f}, + {77.9467f,0.0000f} +}; + +static const GLUTStrokeStrip ch75st[] = +{ + {2,ch75st0}, + {2,ch75st1}, + {2,ch75st2} +}; + +static const GLUTStrokeChar ch75 = {79.3267f,3,ch75st}; + +/* char: 0x4c */ + +static const GLUTStrokeVertex ch76st0[] = +{ + {11.6800f,100.0000f}, + {11.6800f,0.0000f} +}; + +static const GLUTStrokeVertex ch76st1[] = +{ + {11.6800f,0.0000f}, + {68.8229f,0.0000f} +}; + +static const GLUTStrokeStrip ch76st[] = +{ + {2,ch76st0}, + {2,ch76st1} +}; + +static const GLUTStrokeChar ch76 = {71.3229f,2,ch76st}; + +/* char: 0x4d */ + +static const GLUTStrokeVertex ch77st0[] = +{ + {10.8600f,100.0000f}, + {10.8600f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st1[] = +{ + {10.8600f,100.0000f}, + {48.9552f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st2[] = +{ + {87.0505f,100.0000f}, + {48.9552f,0.0000f} +}; + +static const GLUTStrokeVertex ch77st3[] = +{ + {87.0505f,100.0000f}, + {87.0505f,0.0000f} +}; + +static const GLUTStrokeStrip ch77st[] = +{ + {2,ch77st0}, + {2,ch77st1}, + {2,ch77st2}, + {2,ch77st3} +}; + +static const GLUTStrokeChar ch77 = {97.2105f,4,ch77st}; + +/* char: 0x4e */ + +static const GLUTStrokeVertex ch78st0[] = +{ + {11.1400f,100.0000f}, + {11.1400f,0.0000f} +}; + +static const GLUTStrokeVertex ch78st1[] = +{ + {11.1400f,100.0000f}, + {77.8067f,0.0000f} +}; + +static const GLUTStrokeVertex ch78st2[] = +{ + {77.8067f,100.0000f}, + {77.8067f,0.0000f} +}; + +static const GLUTStrokeStrip ch78st[] = +{ + {2,ch78st0}, + {2,ch78st1}, + {2,ch78st2} +}; + +static const GLUTStrokeChar ch78 = {88.8067f,3,ch78st}; + +/* char: 0x4f */ + +static const GLUTStrokeVertex ch79st0[] = +{ + {34.8114f,100.0000f}, + {25.2876f,95.2381f}, + {15.7638f,85.7143f}, + {11.0019f,76.1905f}, + {6.2400f,61.9048f}, + {6.2400f,38.0952f}, + {11.0019f,23.8095f}, + {15.7638f,14.2857f}, + {25.2876f,4.7619f}, + {34.8114f,0.0000f}, + {53.8590f,0.0000f}, + {63.3829f,4.7619f}, + {72.9067f,14.2857f}, + {77.6686f,23.8095f}, + {82.4305f,38.0952f}, + {82.4305f,61.9048f}, + {77.6686f,76.1905f}, + {72.9067f,85.7143f}, + {63.3829f,95.2381f}, + {53.8590f,100.0000f}, + {34.8114f,100.0000f} +}; + +static const GLUTStrokeStrip ch79st[] = +{ + {21,ch79st0} +}; + +static const GLUTStrokeChar ch79 = {88.8305f,1,ch79st}; + +/* char: 0x50 */ + +static const GLUTStrokeVertex ch80st0[] = +{ + {12.1000f,100.0000f}, + {12.1000f,0.0000f} +}; + +static const GLUTStrokeVertex ch80st1[] = +{ + {12.1000f,100.0000f}, + {54.9571f,100.0000f}, + {69.2429f,95.2381f}, + {74.0048f,90.4762f}, + {78.7667f,80.9524f}, + {78.7667f,66.6667f}, + {74.0048f,57.1429f}, + {69.2429f,52.3810f}, + {54.9571f,47.6190f}, + {12.1000f,47.6190f} +}; + +static const GLUTStrokeStrip ch80st[] = +{ + {2,ch80st0}, + {10,ch80st1} +}; + +static const GLUTStrokeChar ch80 = {85.6667f,2,ch80st}; + +/* char: 0x51 */ + +static const GLUTStrokeVertex ch81st0[] = +{ + {33.8714f,100.0000f}, + {24.3476f,95.2381f}, + {14.8238f,85.7143f}, + {10.0619f,76.1905f}, + {5.3000f,61.9048f}, + {5.3000f,38.0952f}, + {10.0619f,23.8095f}, + {14.8238f,14.2857f}, + {24.3476f,4.7619f}, + {33.8714f,0.0000f}, + {52.9190f,0.0000f}, + {62.4429f,4.7619f}, + {71.9667f,14.2857f}, + {76.7286f,23.8095f}, + {81.4905f,38.0952f}, + {81.4905f,61.9048f}, + {76.7286f,76.1905f}, + {71.9667f,85.7143f}, + {62.4429f,95.2381f}, + {52.9190f,100.0000f}, + {33.8714f,100.0000f} +}; + +static const GLUTStrokeVertex ch81st1[] = +{ + {48.1571f,19.0476f}, + {76.7286f,-9.5238f} +}; + +static const GLUTStrokeStrip ch81st[] = +{ + {21,ch81st0}, + {2,ch81st1} +}; + +static const GLUTStrokeChar ch81 = {88.0905f,2,ch81st}; + +/* char: 0x52 */ + +static const GLUTStrokeVertex ch82st0[] = +{ + {11.6800f,100.0000f}, + {11.6800f,0.0000f} +}; + +static const GLUTStrokeVertex ch82st1[] = +{ + {11.6800f,100.0000f}, + {54.5371f,100.0000f}, + {68.8229f,95.2381f}, + {73.5848f,90.4762f}, + {78.3467f,80.9524f}, + {78.3467f,71.4286f}, + {73.5848f,61.9048f}, + {68.8229f,57.1429f}, + {54.5371f,52.3810f}, + {11.6800f,52.3810f} +}; + +static const GLUTStrokeVertex ch82st2[] = +{ + {45.0133f,52.3810f}, + {78.3467f,0.0000f} +}; + +static const GLUTStrokeStrip ch82st[] = +{ + {2,ch82st0}, + {10,ch82st1}, + {2,ch82st2} +}; + +static const GLUTStrokeChar ch82 = {82.3667f,3,ch82st}; + +/* char: 0x53 */ + +static const GLUTStrokeVertex ch83st0[] = +{ + {74.6667f,85.7143f}, + {65.1429f,95.2381f}, + {50.8571f,100.0000f}, + {31.8095f,100.0000f}, + {17.5238f,95.2381f}, + {8.0000f,85.7143f}, + {8.0000f,76.1905f}, + {12.7619f,66.6667f}, + {17.5238f,61.9048f}, + {27.0476f,57.1429f}, + {55.6190f,47.6190f}, + {65.1429f,42.8571f}, + {69.9048f,38.0952f}, + {74.6667f,28.5714f}, + {74.6667f,14.2857f}, + {65.1429f,4.7619f}, + {50.8571f,0.0000f}, + {31.8095f,0.0000f}, + {17.5238f,4.7619f}, + {8.0000f,14.2857f} +}; + +static const GLUTStrokeStrip ch83st[] = +{ + {20,ch83st0} +}; + +static const GLUTStrokeChar ch83 = {80.8267f,1,ch83st}; + +/* char: 0x54 */ + +static const GLUTStrokeVertex ch84st0[] = +{ + {35.6933f,100.0000f}, + {35.6933f,0.0000f} +}; + +static const GLUTStrokeVertex ch84st1[] = +{ + {2.3600f,100.0000f}, + {69.0267f,100.0000f} +}; + +static const GLUTStrokeStrip ch84st[] = +{ + {2,ch84st0}, + {2,ch84st1} +}; + +static const GLUTStrokeChar ch84 = {71.9467f,2,ch84st}; + +/* char: 0x55 */ + +static const GLUTStrokeVertex ch85st0[] = +{ + {11.5400f,100.0000f}, + {11.5400f,28.5714f}, + {16.3019f,14.2857f}, + {25.8257f,4.7619f}, + {40.1114f,0.0000f}, + {49.6352f,0.0000f}, + {63.9210f,4.7619f}, + {73.4448f,14.2857f}, + {78.2067f,28.5714f}, + {78.2067f,100.0000f} +}; + +static const GLUTStrokeStrip ch85st[] = +{ + {10,ch85st0} +}; + +static const GLUTStrokeChar ch85 = {89.4867f,1,ch85st}; + +/* char: 0x56 */ + +static const GLUTStrokeVertex ch86st0[] = +{ + {2.3600f,100.0000f}, + {40.4552f,0.0000f} +}; + +static const GLUTStrokeVertex ch86st1[] = +{ + {78.5505f,100.0000f}, + {40.4552f,0.0000f} +}; + +static const GLUTStrokeStrip ch86st[] = +{ + {2,ch86st0}, + {2,ch86st1} +}; + +static const GLUTStrokeChar ch86 = {81.6105f,2,ch86st}; + +/* char: 0x57 */ + +static const GLUTStrokeVertex ch87st0[] = +{ + {2.2200f,100.0000f}, + {26.0295f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st1[] = +{ + {49.8390f,100.0000f}, + {26.0295f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st2[] = +{ + {49.8390f,100.0000f}, + {73.6486f,0.0000f} +}; + +static const GLUTStrokeVertex ch87st3[] = +{ + {97.4581f,100.0000f}, + {73.6486f,0.0000f} +}; + +static const GLUTStrokeStrip ch87st[] = +{ + {2,ch87st0}, + {2,ch87st1}, + {2,ch87st2}, + {2,ch87st3} +}; + +static const GLUTStrokeChar ch87 = {100.5181f,4,ch87st}; + +/* char: 0x58 */ + +static const GLUTStrokeVertex ch88st0[] = +{ + {2.5000f,100.0000f}, + {69.1667f,0.0000f} +}; + +static const GLUTStrokeVertex ch88st1[] = +{ + {69.1667f,100.0000f}, + {2.5000f,0.0000f} +}; + +static const GLUTStrokeStrip ch88st[] = +{ + {2,ch88st0}, + {2,ch88st1} +}; + +static const GLUTStrokeChar ch88 = {72.3667f,2,ch88st}; + +/* char: 0x59 */ + +static const GLUTStrokeVertex ch89st0[] = +{ + {1.5200f,100.0000f}, + {39.6152f,52.3810f}, + {39.6152f,0.0000f} +}; + +static const GLUTStrokeVertex ch89st1[] = +{ + {77.7105f,100.0000f}, + {39.6152f,52.3810f} +}; + +static const GLUTStrokeStrip ch89st[] = +{ + {3,ch89st0}, + {2,ch89st1} +}; + +static const GLUTStrokeChar ch89 = {79.6505f,2,ch89st}; + +/* char: 0x5a */ + +static const GLUTStrokeVertex ch90st0[] = +{ + {69.1667f,100.0000f}, + {2.5000f,0.0000f} +}; + +static const GLUTStrokeVertex ch90st1[] = +{ + {2.5000f,100.0000f}, + {69.1667f,100.0000f} +}; + +static const GLUTStrokeVertex ch90st2[] = +{ + {2.5000f,0.0000f}, + {69.1667f,0.0000f} +}; + +static const GLUTStrokeStrip ch90st[] = +{ + {2,ch90st0}, + {2,ch90st1}, + {2,ch90st2} +}; + +static const GLUTStrokeChar ch90 = {73.7467f,3,ch90st}; + +/* char: 0x5b */ + +static const GLUTStrokeVertex ch91st0[] = +{ + {7.7800f,119.0476f}, + {7.7800f,-33.3333f} +}; + +static const GLUTStrokeVertex ch91st1[] = +{ + {12.5419f,119.0476f}, + {12.5419f,-33.3333f} +}; + +static const GLUTStrokeVertex ch91st2[] = +{ + {7.7800f,119.0476f}, + {41.1133f,119.0476f} +}; + +static const GLUTStrokeVertex ch91st3[] = +{ + {7.7800f,-33.3333f}, + {41.1133f,-33.3333f} +}; + +static const GLUTStrokeStrip ch91st[] = +{ + {2,ch91st0}, + {2,ch91st1}, + {2,ch91st2}, + {2,ch91st3} +}; + +static const GLUTStrokeChar ch91 = {46.1133f,4,ch91st}; + +/* char: 0x5c */ + +static const GLUTStrokeVertex ch92st0[] = +{ + {5.8400f,100.0000f}, + {72.5067f,-14.2857f} +}; + +static const GLUTStrokeStrip ch92st[] = +{ + {2,ch92st0} +}; + +static const GLUTStrokeChar ch92 = {78.2067f,1,ch92st}; + +/* char: 0x5d */ + +static const GLUTStrokeVertex ch93st0[] = +{ + {33.0114f,119.0476f}, + {33.0114f,-33.3333f} +}; + +static const GLUTStrokeVertex ch93st1[] = +{ + {37.7733f,119.0476f}, + {37.7733f,-33.3333f} +}; + +static const GLUTStrokeVertex ch93st2[] = +{ + {4.4400f,119.0476f}, + {37.7733f,119.0476f} +}; + +static const GLUTStrokeVertex ch93st3[] = +{ + {4.4400f,-33.3333f}, + {37.7733f,-33.3333f} +}; + +static const GLUTStrokeStrip ch93st[] = +{ + {2,ch93st0}, + {2,ch93st1}, + {2,ch93st2}, + {2,ch93st3} +}; + +static const GLUTStrokeChar ch93 = {46.3933f,4,ch93st}; + +/* char: 0x5e */ + +static const GLUTStrokeVertex ch94st0[] = +{ + {44.0752f,109.5238f}, + {5.9800f,42.8571f} +}; + +static const GLUTStrokeVertex ch94st1[] = +{ + {44.0752f,109.5238f}, + {82.1705f,42.8571f} +}; + +static const GLUTStrokeStrip ch94st[] = +{ + {2,ch94st0}, + {2,ch94st1} +}; + +static const GLUTStrokeChar ch94 = {90.2305f,2,ch94st}; + +/* char: 0x5f */ + +static const GLUTStrokeVertex ch95st0[] = +{ + {-1.1000f,-33.3333f}, + {103.6619f,-33.3333f}, + {103.6619f,-28.5714f}, + {-1.1000f,-28.5714f}, + {-1.1000f,-33.3333f} +}; + +static const GLUTStrokeStrip ch95st[] = +{ + {5,ch95st0} +}; + +static const GLUTStrokeChar ch95 = {104.0619f,1,ch95st}; + +/* char: 0x60 */ + +static const GLUTStrokeVertex ch96st0[] = +{ + {33.0219f,100.0000f}, + {56.8314f,71.4286f} +}; + +static const GLUTStrokeVertex ch96st1[] = +{ + {33.0219f,100.0000f}, + {28.2600f,95.2381f}, + {56.8314f,71.4286f} +}; + +static const GLUTStrokeStrip ch96st[] = +{ + {2,ch96st0}, + {3,ch96st1} +}; + +static const GLUTStrokeChar ch96 = {83.5714f,2,ch96st}; + +/* char: 0x61 */ + +static const GLUTStrokeVertex ch97st0[] = +{ + {63.8229f,66.6667f}, + {63.8229f,0.0000f} +}; + +static const GLUTStrokeVertex ch97st1[] = +{ + {63.8229f,52.3810f}, + {54.2990f,61.9048f}, + {44.7752f,66.6667f}, + {30.4895f,66.6667f}, + {20.9657f,61.9048f}, + {11.4419f,52.3810f}, + {6.6800f,38.0952f}, + {6.6800f,28.5714f}, + {11.4419f,14.2857f}, + {20.9657f,4.7619f}, + {30.4895f,0.0000f}, + {44.7752f,0.0000f}, + {54.2990f,4.7619f}, + {63.8229f,14.2857f} +}; + +static const GLUTStrokeStrip ch97st[] = +{ + {2,ch97st0}, + {14,ch97st1} +}; + +static const GLUTStrokeChar ch97 = {66.6029f,2,ch97st}; + +/* char: 0x62 */ + +static const GLUTStrokeVertex ch98st0[] = +{ + {8.7600f,100.0000f}, + {8.7600f,0.0000f} +}; + +static const GLUTStrokeVertex ch98st1[] = +{ + {8.7600f,52.3810f}, + {18.2838f,61.9048f}, + {27.8076f,66.6667f}, + {42.0933f,66.6667f}, + {51.6171f,61.9048f}, + {61.1410f,52.3810f}, + {65.9029f,38.0952f}, + {65.9029f,28.5714f}, + {61.1410f,14.2857f}, + {51.6171f,4.7619f}, + {42.0933f,0.0000f}, + {27.8076f,0.0000f}, + {18.2838f,4.7619f}, + {8.7600f,14.2857f} +}; + +static const GLUTStrokeStrip ch98st[] = +{ + {2,ch98st0}, + {14,ch98st1} +}; + +static const GLUTStrokeChar ch98 = {70.4629f,2,ch98st}; + +/* char: 0x63 */ + +static const GLUTStrokeVertex ch99st0[] = +{ + {62.6629f,52.3810f}, + {53.1390f,61.9048f}, + {43.6152f,66.6667f}, + {29.3295f,66.6667f}, + {19.8057f,61.9048f}, + {10.2819f,52.3810f}, + {5.5200f,38.0952f}, + {5.5200f,28.5714f}, + {10.2819f,14.2857f}, + {19.8057f,4.7619f}, + {29.3295f,0.0000f}, + {43.6152f,0.0000f}, + {53.1390f,4.7619f}, + {62.6629f,14.2857f} +}; + +static const GLUTStrokeStrip ch99st[] = +{ + {14,ch99st0} +}; + +static const GLUTStrokeChar ch99 = {68.9229f,1,ch99st}; + +/* char: 0x64 */ + +static const GLUTStrokeVertex ch100st0[] = +{ + {61.7829f,100.0000f}, + {61.7829f,0.0000f} +}; + +static const GLUTStrokeVertex ch100st1[] = +{ + {61.7829f,52.3810f}, + {52.2590f,61.9048f}, + {42.7352f,66.6667f}, + {28.4495f,66.6667f}, + {18.9257f,61.9048f}, + {9.4019f,52.3810f}, + {4.6400f,38.0952f}, + {4.6400f,28.5714f}, + {9.4019f,14.2857f}, + {18.9257f,4.7619f}, + {28.4495f,0.0000f}, + {42.7352f,0.0000f}, + {52.2590f,4.7619f}, + {61.7829f,14.2857f} +}; + +static const GLUTStrokeStrip ch100st[] = +{ + {2,ch100st0}, + {14,ch100st1} +}; + +static const GLUTStrokeChar ch100 = {70.2629f,2,ch100st}; + +/* char: 0x65 */ + +static const GLUTStrokeVertex ch101st0[] = +{ + {5.7200f,38.0952f}, + {62.8629f,38.0952f}, + {62.8629f,47.6190f}, + {58.1010f,57.1429f}, + {53.3390f,61.9048f}, + {43.8152f,66.6667f}, + {29.5295f,66.6667f}, + {20.0057f,61.9048f}, + {10.4819f,52.3810f}, + {5.7200f,38.0952f}, + {5.7200f,28.5714f}, + {10.4819f,14.2857f}, + {20.0057f,4.7619f}, + {29.5295f,0.0000f}, + {43.8152f,0.0000f}, + {53.3390f,4.7619f}, + {62.8629f,14.2857f} +}; + +static const GLUTStrokeStrip ch101st[] = +{ + {17,ch101st0} +}; + +static const GLUTStrokeChar ch101 = {68.5229f,1,ch101st}; + +/* char: 0x66 */ + +static const GLUTStrokeVertex ch102st0[] = +{ + {38.7752f,100.0000f}, + {29.2514f,100.0000f}, + {19.7276f,95.2381f}, + {14.9657f,80.9524f}, + {14.9657f,0.0000f} +}; + +static const GLUTStrokeVertex ch102st1[] = +{ + {0.6800f,66.6667f}, + {34.0133f,66.6667f} +}; + +static const GLUTStrokeStrip ch102st[] = +{ + {5,ch102st0}, + {2,ch102st1} +}; + +static const GLUTStrokeChar ch102 = {38.6552f,2,ch102st}; + +/* char: 0x67 */ + +static const GLUTStrokeVertex ch103st0[] = +{ + {62.5029f,66.6667f}, + {62.5029f,-9.5238f}, + {57.7410f,-23.8095f}, + {52.9790f,-28.5714f}, + {43.4552f,-33.3333f}, + {29.1695f,-33.3333f}, + {19.6457f,-28.5714f} +}; + +static const GLUTStrokeVertex ch103st1[] = +{ + {62.5029f,52.3810f}, + {52.9790f,61.9048f}, + {43.4552f,66.6667f}, + {29.1695f,66.6667f}, + {19.6457f,61.9048f}, + {10.1219f,52.3810f}, + {5.3600f,38.0952f}, + {5.3600f,28.5714f}, + {10.1219f,14.2857f}, + {19.6457f,4.7619f}, + {29.1695f,0.0000f}, + {43.4552f,0.0000f}, + {52.9790f,4.7619f}, + {62.5029f,14.2857f} +}; + +static const GLUTStrokeStrip ch103st[] = +{ + {7,ch103st0}, + {14,ch103st1} +}; + +static const GLUTStrokeChar ch103 = {70.9829f,2,ch103st}; + +/* char: 0x68 */ + +static const GLUTStrokeVertex ch104st0[] = +{ + {9.6000f,100.0000f}, + {9.6000f,0.0000f} +}; + +static const GLUTStrokeVertex ch104st1[] = +{ + {9.6000f,47.6190f}, + {23.8857f,61.9048f}, + {33.4095f,66.6667f}, + {47.6952f,66.6667f}, + {57.2190f,61.9048f}, + {61.9810f,47.6190f}, + {61.9810f,0.0000f} +}; + +static const GLUTStrokeStrip ch104st[] = +{ + {2,ch104st0}, + {7,ch104st1} +}; + +static const GLUTStrokeChar ch104 = {71.0210f,2,ch104st}; + +/* char: 0x69 */ + +static const GLUTStrokeVertex ch105st0[] = +{ + {10.0200f,100.0000f}, + {14.7819f,95.2381f}, + {19.5438f,100.0000f}, + {14.7819f,104.7619f}, + {10.0200f,100.0000f} +}; + +static const GLUTStrokeVertex ch105st1[] = +{ + {14.7819f,66.6667f}, + {14.7819f,0.0000f} +}; + +static const GLUTStrokeStrip ch105st[] = +{ + {5,ch105st0}, + {2,ch105st1} +}; + +static const GLUTStrokeChar ch105 = {28.8638f,2,ch105st}; + +/* char: 0x6a */ + +static const GLUTStrokeVertex ch106st0[] = +{ + {17.3876f,100.0000f}, + {22.1495f,95.2381f}, + {26.9114f,100.0000f}, + {22.1495f,104.7619f}, + {17.3876f,100.0000f} +}; + +static const GLUTStrokeVertex ch106st1[] = +{ + {22.1495f,66.6667f}, + {22.1495f,-14.2857f}, + {17.3876f,-28.5714f}, + {7.8638f,-33.3333f}, + {-1.6600f,-33.3333f} +}; + +static const GLUTStrokeStrip ch106st[] = +{ + {5,ch106st0}, + {5,ch106st1} +}; + +static const GLUTStrokeChar ch106 = {36.2314f,2,ch106st}; + +/* char: 0x6b */ + +static const GLUTStrokeVertex ch107st0[] = +{ + {9.6000f,100.0000f}, + {9.6000f,0.0000f} +}; + +static const GLUTStrokeVertex ch107st1[] = +{ + {57.2190f,66.6667f}, + {9.6000f,19.0476f} +}; + +static const GLUTStrokeVertex ch107st2[] = +{ + {28.6476f,38.0952f}, + {61.9810f,0.0000f} +}; + +static const GLUTStrokeStrip ch107st[] = +{ + {2,ch107st0}, + {2,ch107st1}, + {2,ch107st2} +}; + +static const GLUTStrokeChar ch107 = {62.5210f,3,ch107st}; + +/* char: 0x6c */ + +static const GLUTStrokeVertex ch108st0[] = +{ + {10.0200f,100.0000f}, + {10.0200f,0.0000f} +}; + +static const GLUTStrokeStrip ch108st[] = +{ + {2,ch108st0} +}; + +static const GLUTStrokeChar ch108 = {19.3400f,1,ch108st}; + +/* char: 0x6d */ + +static const GLUTStrokeVertex ch109st0[] = +{ + {9.6000f,66.6667f}, + {9.6000f,0.0000f} +}; + +static const GLUTStrokeVertex ch109st1[] = +{ + {9.6000f,47.6190f}, + {23.8857f,61.9048f}, + {33.4095f,66.6667f}, + {47.6952f,66.6667f}, + {57.2190f,61.9048f}, + {61.9810f,47.6190f}, + {61.9810f,0.0000f} +}; + +static const GLUTStrokeVertex ch109st2[] = +{ + {61.9810f,47.6190f}, + {76.2667f,61.9048f}, + {85.7905f,66.6667f}, + {100.0762f,66.6667f}, + {109.6000f,61.9048f}, + {114.3619f,47.6190f}, + {114.3619f,0.0000f} +}; + +static const GLUTStrokeStrip ch109st[] = +{ + {2,ch109st0}, + {7,ch109st1}, + {7,ch109st2} +}; + +static const GLUTStrokeChar ch109 = {123.9619f,3,ch109st}; + +/* char: 0x6e */ + +static const GLUTStrokeVertex ch110st0[] = +{ + {9.1800f,66.6667f}, + {9.1800f,0.0000f} +}; + +static const GLUTStrokeVertex ch110st1[] = +{ + {9.1800f,47.6190f}, + {23.4657f,61.9048f}, + {32.9895f,66.6667f}, + {47.2752f,66.6667f}, + {56.7990f,61.9048f}, + {61.5610f,47.6190f}, + {61.5610f,0.0000f} +}; + +static const GLUTStrokeStrip ch110st[] = +{ + {2,ch110st0}, + {7,ch110st1} +}; + +static const GLUTStrokeChar ch110 = {70.8810f,2,ch110st}; + +/* char: 0x6f */ + +static const GLUTStrokeVertex ch111st0[] = +{ + {28.7895f,66.6667f}, + {19.2657f,61.9048f}, + {9.7419f,52.3810f}, + {4.9800f,38.0952f}, + {4.9800f,28.5714f}, + {9.7419f,14.2857f}, + {19.2657f,4.7619f}, + {28.7895f,0.0000f}, + {43.0752f,0.0000f}, + {52.5990f,4.7619f}, + {62.1229f,14.2857f}, + {66.8848f,28.5714f}, + {66.8848f,38.0952f}, + {62.1229f,52.3810f}, + {52.5990f,61.9048f}, + {43.0752f,66.6667f}, + {28.7895f,66.6667f} +}; + +static const GLUTStrokeStrip ch111st[] = +{ + {17,ch111st0} +}; + +static const GLUTStrokeChar ch111 = {71.7448f,1,ch111st}; + +/* char: 0x70 */ + +static const GLUTStrokeVertex ch112st0[] = +{ + {9.4600f,66.6667f}, + {9.4600f,-33.3333f} +}; + +static const GLUTStrokeVertex ch112st1[] = +{ + {9.4600f,52.3810f}, + {18.9838f,61.9048f}, + {28.5076f,66.6667f}, + {42.7933f,66.6667f}, + {52.3171f,61.9048f}, + {61.8410f,52.3810f}, + {66.6029f,38.0952f}, + {66.6029f,28.5714f}, + {61.8410f,14.2857f}, + {52.3171f,4.7619f}, + {42.7933f,0.0000f}, + {28.5076f,0.0000f}, + {18.9838f,4.7619f}, + {9.4600f,14.2857f} +}; + +static const GLUTStrokeStrip ch112st[] = +{ + {2,ch112st0}, + {14,ch112st1} +}; + +static const GLUTStrokeChar ch112 = {70.8029f,2,ch112st}; + +/* char: 0x71 */ + +static const GLUTStrokeVertex ch113st0[] = +{ + {61.9829f,66.6667f}, + {61.9829f,-33.3333f} +}; + +static const GLUTStrokeVertex ch113st1[] = +{ + {61.9829f,52.3810f}, + {52.4590f,61.9048f}, + {42.9352f,66.6667f}, + {28.6495f,66.6667f}, + {19.1257f,61.9048f}, + {9.6019f,52.3810f}, + {4.8400f,38.0952f}, + {4.8400f,28.5714f}, + {9.6019f,14.2857f}, + {19.1257f,4.7619f}, + {28.6495f,0.0000f}, + {42.9352f,0.0000f}, + {52.4590f,4.7619f}, + {61.9829f,14.2857f} +}; + +static const GLUTStrokeStrip ch113st[] = +{ + {2,ch113st0}, + {14,ch113st1} +}; + +static const GLUTStrokeChar ch113 = {70.7429f,2,ch113st}; + +/* char: 0x72 */ + +static const GLUTStrokeVertex ch114st0[] = +{ + {9.4600f,66.6667f}, + {9.4600f,0.0000f} +}; + +static const GLUTStrokeVertex ch114st1[] = +{ + {9.4600f,38.0952f}, + {14.2219f,52.3810f}, + {23.7457f,61.9048f}, + {33.2695f,66.6667f}, + {47.5552f,66.6667f} +}; + +static const GLUTStrokeStrip ch114st[] = +{ + {2,ch114st0}, + {5,ch114st1} +}; + +static const GLUTStrokeChar ch114 = {49.4952f,2,ch114st}; + +/* char: 0x73 */ + +static const GLUTStrokeVertex ch115st0[] = +{ + {57.0810f,52.3810f}, + {52.3190f,61.9048f}, + {38.0333f,66.6667f}, + {23.7476f,66.6667f}, + {9.4619f,61.9048f}, + {4.7000f,52.3810f}, + {9.4619f,42.8571f}, + {18.9857f,38.0952f}, + {42.7952f,33.3333f}, + {52.3190f,28.5714f}, + {57.0810f,19.0476f}, + {57.0810f,14.2857f}, + {52.3190f,4.7619f}, + {38.0333f,0.0000f}, + {23.7476f,0.0000f}, + {9.4619f,4.7619f}, + {4.7000f,14.2857f} +}; + +static const GLUTStrokeStrip ch115st[] = +{ + {17,ch115st0} +}; + +static const GLUTStrokeChar ch115 = {62.3210f,1,ch115st}; + +/* char: 0x74 */ + +static const GLUTStrokeVertex ch116st0[] = +{ + {14.8257f,100.0000f}, + {14.8257f,19.0476f}, + {19.5876f,4.7619f}, + {29.1114f,0.0000f}, + {38.6352f,0.0000f} +}; + +static const GLUTStrokeVertex ch116st1[] = +{ + {0.5400f,66.6667f}, + {33.8733f,66.6667f} +}; + +static const GLUTStrokeStrip ch116st[] = +{ + {5,ch116st0}, + {2,ch116st1} +}; + +static const GLUTStrokeChar ch116 = {39.3152f,2,ch116st}; + +/* char: 0x75 */ + +static const GLUTStrokeVertex ch117st0[] = +{ + {9.4600f,66.6667f}, + {9.4600f,19.0476f}, + {14.2219f,4.7619f}, + {23.7457f,0.0000f}, + {38.0314f,0.0000f}, + {47.5552f,4.7619f}, + {61.8410f,19.0476f} +}; + +static const GLUTStrokeVertex ch117st1[] = +{ + {61.8410f,66.6667f}, + {61.8410f,0.0000f} +}; + +static const GLUTStrokeStrip ch117st[] = +{ + {7,ch117st0}, + {2,ch117st1} +}; + +static const GLUTStrokeChar ch117 = {71.1610f,2,ch117st}; + +/* char: 0x76 */ + +static const GLUTStrokeVertex ch118st0[] = +{ + {1.8000f,66.6667f}, + {30.3714f,0.0000f} +}; + +static const GLUTStrokeVertex ch118st1[] = +{ + {58.9429f,66.6667f}, + {30.3714f,0.0000f} +}; + +static const GLUTStrokeStrip ch118st[] = +{ + {2,ch118st0}, + {2,ch118st1} +}; + +static const GLUTStrokeChar ch118 = {60.6029f,2,ch118st}; + +/* char: 0x77 */ + +static const GLUTStrokeVertex ch119st0[] = +{ + {2.5000f,66.6667f}, + {21.5476f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st1[] = +{ + {40.5952f,66.6667f}, + {21.5476f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st2[] = +{ + {40.5952f,66.6667f}, + {59.6429f,0.0000f} +}; + +static const GLUTStrokeVertex ch119st3[] = +{ + {78.6905f,66.6667f}, + {59.6429f,0.0000f} +}; + +static const GLUTStrokeStrip ch119st[] = +{ + {2,ch119st0}, + {2,ch119st1}, + {2,ch119st2}, + {2,ch119st3} +}; + +static const GLUTStrokeChar ch119 = {80.4905f,4,ch119st}; + +/* char: 0x78 */ + +static const GLUTStrokeVertex ch120st0[] = +{ + {1.6600f,66.6667f}, + {54.0410f,0.0000f} +}; + +static const GLUTStrokeVertex ch120st1[] = +{ + {54.0410f,66.6667f}, + {1.6600f,0.0000f} +}; + +static const GLUTStrokeStrip ch120st[] = +{ + {2,ch120st0}, + {2,ch120st1} +}; + +static const GLUTStrokeChar ch120 = {56.4010f,2,ch120st}; + +/* char: 0x79 */ + +static const GLUTStrokeVertex ch121st0[] = +{ + {6.5619f,66.6667f}, + {35.1333f,0.0000f} +}; + +static const GLUTStrokeVertex ch121st1[] = +{ + {63.7048f,66.6667f}, + {35.1333f,0.0000f}, + {25.6095f,-19.0476f}, + {16.0857f,-28.5714f}, + {6.5619f,-33.3333f}, + {1.8000f,-33.3333f} +}; + +static const GLUTStrokeStrip ch121st[] = +{ + {2,ch121st0}, + {6,ch121st1} +}; + +static const GLUTStrokeChar ch121 = {66.0648f,2,ch121st}; + +/* char: 0x7a */ + +static const GLUTStrokeVertex ch122st0[] = +{ + {56.8210f,66.6667f}, + {4.4400f,0.0000f} +}; + +static const GLUTStrokeVertex ch122st1[] = +{ + {4.4400f,66.6667f}, + {56.8210f,66.6667f} +}; + +static const GLUTStrokeVertex ch122st2[] = +{ + {4.4400f,0.0000f}, + {56.8210f,0.0000f} +}; + +static const GLUTStrokeStrip ch122st[] = +{ + {2,ch122st0}, + {2,ch122st1}, + {2,ch122st2} +}; + +static const GLUTStrokeChar ch122 = {61.8210f,3,ch122st}; + +/* char: 0x7b */ + +static const GLUTStrokeVertex ch123st0[] = +{ + {31.1895f,119.0476f}, + {21.6657f,114.2857f}, + {16.9038f,109.5238f}, + {12.1419f,100.0000f}, + {12.1419f,90.4762f}, + {16.9038f,80.9524f}, + {21.6657f,76.1905f}, + {26.4276f,66.6667f}, + {26.4276f,57.1429f}, + {16.9038f,47.6190f} +}; + +static const GLUTStrokeVertex ch123st1[] = +{ + {21.6657f,114.2857f}, + {16.9038f,104.7619f}, + {16.9038f,95.2381f}, + {21.6657f,85.7143f}, + {26.4276f,80.9524f}, + {31.1895f,71.4286f}, + {31.1895f,61.9048f}, + {26.4276f,52.3810f}, + {7.3800f,42.8571f}, + {26.4276f,33.3333f}, + {31.1895f,23.8095f}, + {31.1895f,14.2857f}, + {26.4276f,4.7619f}, + {21.6657f,0.0000f}, + {16.9038f,-9.5238f}, + {16.9038f,-19.0476f}, + {21.6657f,-28.5714f} +}; + +static const GLUTStrokeVertex ch123st2[] = +{ + {16.9038f,38.0952f}, + {26.4276f,28.5714f}, + {26.4276f,19.0476f}, + {21.6657f,9.5238f}, + {16.9038f,4.7619f}, + {12.1419f,-4.7619f}, + {12.1419f,-14.2857f}, + {16.9038f,-23.8095f}, + {21.6657f,-28.5714f}, + {31.1895f,-33.3333f} +}; + +static const GLUTStrokeStrip ch123st[] = +{ + {10,ch123st0}, + {17,ch123st1}, + {10,ch123st2} +}; + +static const GLUTStrokeChar ch123 = {41.6295f,3,ch123st}; + +/* char: 0x7c */ + +static const GLUTStrokeVertex ch124st0[] = +{ + {11.5400f,119.0476f}, + {11.5400f,-33.3333f} +}; + +static const GLUTStrokeStrip ch124st[] = +{ + {2,ch124st0} +}; + +static const GLUTStrokeChar ch124 = {23.7800f,1,ch124st}; + +/* char: 0x7d */ + +static const GLUTStrokeVertex ch125st0[] = +{ + {9.1800f,119.0476f}, + {18.7038f,114.2857f}, + {23.4657f,109.5238f}, + {28.2276f,100.0000f}, + {28.2276f,90.4762f}, + {23.4657f,80.9524f}, + {18.7038f,76.1905f}, + {13.9419f,66.6667f}, + {13.9419f,57.1429f}, + {23.4657f,47.6190f} +}; + +static const GLUTStrokeVertex ch125st1[] = +{ + {18.7038f,114.2857f}, + {23.4657f,104.7619f}, + {23.4657f,95.2381f}, + {18.7038f,85.7143f}, + {13.9419f,80.9524f}, + {9.1800f,71.4286f}, + {9.1800f,61.9048f}, + {13.9419f,52.3810f}, + {32.9895f,42.8571f}, + {13.9419f,33.3333f}, + {9.1800f,23.8095f}, + {9.1800f,14.2857f}, + {13.9419f,4.7619f}, + {18.7038f,0.0000f}, + {23.4657f,-9.5238f}, + {23.4657f,-19.0476f}, + {18.7038f,-28.5714f} +}; + +static const GLUTStrokeVertex ch125st2[] = +{ + {23.4657f,38.0952f}, + {13.9419f,28.5714f}, + {13.9419f,19.0476f}, + {18.7038f,9.5238f}, + {23.4657f,4.7619f}, + {28.2276f,-4.7619f}, + {28.2276f,-14.2857f}, + {23.4657f,-23.8095f}, + {18.7038f,-28.5714f}, + {9.1800f,-33.3333f} +}; + +static const GLUTStrokeStrip ch125st[] = +{ + {10,ch125st0}, + {17,ch125st1}, + {10,ch125st2} +}; + +static const GLUTStrokeChar ch125 = {41.4695f,3,ch125st}; + +/* char: 0x7e */ + +static const GLUTStrokeVertex ch126st0[] = +{ + {2.9200f,28.5714f}, + {2.9200f,38.0952f}, + {7.6819f,52.3810f}, + {17.2057f,57.1429f}, + {26.7295f,57.1429f}, + {36.2533f,52.3810f}, + {55.3010f,38.0952f}, + {64.8248f,33.3333f}, + {74.3486f,33.3333f}, + {83.8724f,38.0952f}, + {88.6343f,47.6190f} +}; + +static const GLUTStrokeVertex ch126st1[] = +{ + {2.9200f,38.0952f}, + {7.6819f,47.6190f}, + {17.2057f,52.3810f}, + {26.7295f,52.3810f}, + {36.2533f,47.6190f}, + {55.3010f,33.3333f}, + {64.8248f,28.5714f}, + {74.3486f,28.5714f}, + {83.8724f,33.3333f}, + {88.6343f,47.6190f}, + {88.6343f,57.1429f} +}; + +static const GLUTStrokeStrip ch126st[] = +{ + {11,ch126st0}, + {11,ch126st1} +}; + +static const GLUTStrokeChar ch126 = {91.2743f,2,ch126st}; + +static const GLUTStrokeChar *chars[] = +{ + 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, + &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 +}; + +const GLUTStrokeFont glutStrokeRoman = {"Roman",128,chars,152.3809f,33.3333f}; diff --git a/src/glut/dos/shapes.c b/src/glut/dos/shapes.c new file mode 100644 index 00000000000..4edebe90ed0 --- /dev/null +++ b/src/glut/dos/shapes.c @@ -0,0 +1,1143 @@ +/* + * freeglut_geometry.c + * + * Freeglut geometry rendering methods. + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, <[email protected]> + * Creation date: Fri Dec 3 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <math.h> +#include "internal.h" + +/* + * TODO BEFORE THE STABLE RELEASE: + * + * Following functions have been contributed by Andreas Umbach. + * + * glutWireCube() -- looks OK + * glutSolidCube() -- OK + * + * Those functions have been implemented by John Fay. + * + * glutWireTorus() -- looks OK + * glutSolidTorus() -- looks OK + * glutWireDodecahedron() -- looks OK + * glutSolidDodecahedron() -- looks OK + * glutWireOctahedron() -- looks OK + * glutSolidOctahedron() -- looks OK + * glutWireTetrahedron() -- looks OK + * glutSolidTetrahedron() -- looks OK + * glutWireIcosahedron() -- looks OK + * glutSolidIcosahedron() -- looks OK + * + * The Following functions have been updated by Nigel Stewart, based + * on FreeGLUT 2.0.0 implementations: + * + * glutWireSphere() -- looks OK + * glutSolidSphere() -- looks OK + * glutWireCone() -- looks OK + * glutSolidCone() -- looks OK + */ + + +/* -- INTERFACE FUNCTIONS -------------------------------------------------- */ + +/* + * Draws a wireframed cube. Code contributed by Andreas Umbach <[email protected]> + */ +void GLUTAPIENTRY glutWireCube( GLdouble dSize ) +{ + double size = dSize * 0.5; + +# define V(a,b,c) glVertex3d( a size, b size, c size ); +# define N(a,b,c) glNormal3d( a, b, c ); + + /* + * PWO: I dared to convert the code to use macros... + */ + glBegin( GL_LINE_LOOP ); N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); glEnd(); + glBegin( GL_LINE_LOOP ); N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); glEnd(); + glBegin( GL_LINE_LOOP ); N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); glEnd(); + glBegin( GL_LINE_LOOP ); N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); glEnd(); + glBegin( GL_LINE_LOOP ); N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); glEnd(); + glBegin( GL_LINE_LOOP ); N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); glEnd(); + +# undef V +# undef N +} + +/* + * Draws a solid cube. Code contributed by Andreas Umbach <[email protected]> + */ +void GLUTAPIENTRY glutSolidCube( GLdouble dSize ) +{ + double size = dSize * 0.5; + +# define V(a,b,c) glVertex3d( a size, b size, c size ); +# define N(a,b,c) glNormal3d( a, b, c ); + + /* + * PWO: Again, I dared to convert the code to use macros... + */ + glBegin( GL_QUADS ); + N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); + N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); + N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); + N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); + N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); + N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); + glEnd(); + +# undef V +# undef N +} + +/* + * Compute lookup table of cos and sin values forming a cirle + * + * Notes: + * It is the responsibility of the caller to free these tables + * The size of the table is (n+1) to form a connected loop + * The last entry is exactly the same as the first + * The sign of n can be flipped to get the reverse loop + */ + +static void circleTable(double **sint,double **cost,const int n) +{ + int i; + + /* Table size, the sign of n flips the circle direction */ + + const int size = abs(n); + + /* Determine the angle between samples */ + + const double angle = 2*M_PI/(double)n; + + /* Allocate memory for n samples, plus duplicate of first entry at the end */ + + *sint = (double *) calloc(sizeof(double), size+1); + *cost = (double *) calloc(sizeof(double), size+1); + + /* Bail out if memory allocation fails, fgError never returns */ + + if (!(*sint) || !(*cost)) + { + free(*sint); + free(*cost); + _glut_fatal("Failed to allocate memory in circleTable"); + } + + /* Compute cos and sin around the circle */ + + for (i=0; i<size; i++) + { + (*sint)[i] = sin(angle*i); + (*cost)[i] = cos(angle*i); + } + + /* Last sample is duplicate of the first */ + + (*sint)[size] = (*sint)[0]; + (*cost)[size] = (*cost)[0]; +} + +/* + * Draws a solid sphere + */ +void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) +{ + int i,j; + + /* Adjust z and radius as stacks are drawn. */ + + double z0,z1; + double r0,r1; + + /* Pre-computed circle */ + + double *sint1,*cost1; + double *sint2,*cost2; + circleTable(&sint1,&cost1,-slices); + circleTable(&sint2,&cost2,stacks*2); + + /* The top stack is covered with a triangle fan */ + + z0 = 1.0; + z1 = cost2[1]; + r0 = 0.0; + r1 = sint2[1]; + + glBegin(GL_TRIANGLE_FAN); + + glNormal3d(0,0,1); + glVertex3d(0,0,radius); + + for (j=slices; j>=0; j--) + { + glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); + glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); + } + + glEnd(); + + /* Cover each stack with a quad strip, except the top and bottom stacks */ + + for( i=1; i<stacks-1; i++ ) + { + z0 = z1; z1 = cost2[i+1]; + r0 = r1; r1 = sint2[i+1]; + + glBegin(GL_QUAD_STRIP); + + for(j=0; j<=slices; j++) + { + glNormal3d(cost1[j]*r1, sint1[j]*r1, z1 ); + glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius); + glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); + glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); + } + + glEnd(); + } + + /* The bottom stack is covered with a triangle fan */ + + z0 = z1; + r0 = r1; + + glBegin(GL_TRIANGLE_FAN); + + glNormal3d(0,0,-1); + glVertex3d(0,0,-radius); + + for (j=0; j<=slices; j++) + { + glNormal3d(cost1[j]*r0, sint1[j]*r0, z0 ); + glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius); + } + + glEnd(); + + /* Release sin and cos tables */ + + free(sint1); + free(cost1); + free(sint2); + free(cost2); +} + +/* + * Draws a solid sphere + */ +void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks) +{ + int i,j; + + /* Adjust z and radius as stacks and slices are drawn. */ + + double r; + double x,y,z; + + /* Pre-computed circle */ + + double *sint1,*cost1; + double *sint2,*cost2; + circleTable(&sint1,&cost1,-slices ); + circleTable(&sint2,&cost2, stacks*2); + + /* Draw a line loop for each stack */ + + for (i=1; i<stacks; i++) + { + z = cost2[i]; + r = sint2[i]; + + glBegin(GL_LINE_LOOP); + + for(j=0; j<=slices; j++) + { + x = cost1[j]; + y = sint1[j]; + + glNormal3d(x,y,z); + glVertex3d(x*r*radius,y*r*radius,z*radius); + } + + glEnd(); + } + + /* Draw a line loop for each slice */ + + for (i=0; i<slices; i++) + { + glBegin(GL_LINE_STRIP); + + for(j=0; j<=stacks; j++) + { + x = cost1[i]*sint2[j]; + y = sint1[i]*sint2[j]; + z = cost2[j]; + + glNormal3d(x,y,z); + glVertex3d(x*radius,y*radius,z*radius); + } + + glEnd(); + } + + /* Release sin and cos tables */ + + free(sint1); + free(cost1); + free(sint2); + free(cost2); +} + +/* + * Draws a solid cone + */ +void GLUTAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ) +{ + int i,j; + + /* Step in z and radius as stacks are drawn. */ + + double z0,z1; + double r0,r1; + + const double zStep = height/stacks; + const double rStep = base/stacks; + + /* Scaling factors for vertex normals */ + + const double cosn = ( height / sqrt ( height * height + base * base )); + const double sinn = ( base / sqrt ( height * height + base * base )); + + /* Pre-computed circle */ + + double *sint,*cost; + circleTable(&sint,&cost,-slices); + + /* Cover the circular base with a triangle fan... */ + + z0 = 0.0; + z1 = zStep; + + r0 = base; + r1 = r0 - rStep; + + glBegin(GL_TRIANGLE_FAN); + + glNormal3d(0.0,0.0,-1.0); + glVertex3d(0.0,0.0, z0 ); + + for (j=0; j<=slices; j++) + glVertex3d(cost[j]*r0, sint[j]*r0, z0); + + glEnd(); + + /* Cover each stack with a quad strip, except the top stack */ + + for( i=0; i<stacks-1; i++ ) + { + glBegin(GL_QUAD_STRIP); + + for(j=0; j<=slices; j++) + { + glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn); + glVertex3d(cost[j]*r0, sint[j]*r0, z0 ); + glVertex3d(cost[j]*r1, sint[j]*r1, z1 ); + } + + z0 = z1; z1 += zStep; + r0 = r1; r1 -= rStep; + + glEnd(); + } + + /* The top stack is covered with individual triangles */ + + glBegin(GL_TRIANGLES); + + glNormal3d(cost[0]*sinn, sint[0]*sinn, cosn); + + for (j=0; j<slices; j++) + { + glVertex3d(cost[j+0]*r0, sint[j+0]*r0, z0 ); + glVertex3d(0, 0, height); + glNormal3d(cost[j+1]*sinn, sint[j+1]*sinn, cosn ); + glVertex3d(cost[j+1]*r0, sint[j+1]*r0, z0 ); + } + + glEnd(); + + /* Release sin and cos tables */ + + free(sint); + free(cost); +} + +/* + * Draws a wire cone + */ +void GLUTAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks) +{ + int i,j; + + /* Step in z and radius as stacks are drawn. */ + + double z = 0.0; + double r = base; + + const double zStep = height/stacks; + const double rStep = base/stacks; + + /* Scaling factors for vertex normals */ + + const double cosn = ( height / sqrt ( height * height + base * base )); + const double sinn = ( base / sqrt ( height * height + base * base )); + + /* Pre-computed circle */ + + double *sint,*cost; + circleTable(&sint,&cost,-slices); + + /* Draw the stacks... */ + + for (i=0; i<stacks; i++) + { + glBegin(GL_LINE_LOOP); + + for( j=0; j<slices; j++ ) + { + glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn); + glVertex3d(cost[j]*r, sint[j]*r, z ); + } + + glEnd(); + + z += zStep; + r -= rStep; + } + + /* Draw the slices */ + + r = base; + + glBegin(GL_LINES); + + for (j=0; j<slices; j++) + { + glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn ); + glVertex3d(cost[j]*r, sint[j]*r, 0.0 ); + glVertex3d(0.0, 0.0, height); + } + + glEnd(); + + /* Release sin and cos tables */ + + free(sint); + free(cost); +} + + +/* + * Draws a solid cylinder + */ +void GLUTAPIENTRY glutSolidCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks) +{ + int i,j; + + /* Step in z and radius as stacks are drawn. */ + + double z0,z1; + const double zStep = height/stacks; + + /* Pre-computed circle */ + + double *sint,*cost; + circleTable(&sint,&cost,-slices); + + /* Cover the base and top */ + + glBegin(GL_TRIANGLE_FAN); + glNormal3d(0.0, 0.0, -1.0 ); + glVertex3d(0.0, 0.0, 0.0 ); + for (j=0; j<=slices; j++) + glVertex3d(cost[j]*radius, sint[j]*radius, 0.0); + glEnd(); + + glBegin(GL_TRIANGLE_FAN); + glNormal3d(0.0, 0.0, 1.0 ); + glVertex3d(0.0, 0.0, height); + for (j=slices; j>=0; j--) + glVertex3d(cost[j]*radius, sint[j]*radius, height); + glEnd(); + + /* Do the stacks */ + + z0 = 0.0; + z1 = zStep; + + for (i=1; i<=stacks; i++) + { + if (i==stacks) + z1 = height; + + glBegin(GL_QUAD_STRIP); + for (j=0; j<=slices; j++ ) + { + glNormal3d(cost[j], sint[j], 0.0 ); + glVertex3d(cost[j]*radius, sint[j]*radius, z0 ); + glVertex3d(cost[j]*radius, sint[j]*radius, z1 ); + } + glEnd(); + + z0 = z1; z1 += zStep; + } + + /* Release sin and cos tables */ + + free(sint); + free(cost); +} + +/* + * Draws a wire cylinder + */ +void GLUTAPIENTRY glutWireCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks) +{ + int i,j; + + /* Step in z and radius as stacks are drawn. */ + + double z = 0.0; + const double zStep = height/stacks; + + /* Pre-computed circle */ + + double *sint,*cost; + circleTable(&sint,&cost,-slices); + + /* Draw the stacks... */ + + for (i=0; i<=stacks; i++) + { + if (i==stacks) + z = height; + + glBegin(GL_LINE_LOOP); + + for( j=0; j<slices; j++ ) + { + glNormal3d(cost[j], sint[j], 0.0); + glVertex3d(cost[j]*radius, sint[j]*radius, z ); + } + + glEnd(); + + z += zStep; + } + + /* Draw the slices */ + + glBegin(GL_LINES); + + for (j=0; j<slices; j++) + { + glNormal3d(cost[j], sint[j], 0.0 ); + glVertex3d(cost[j]*radius, sint[j]*radius, 0.0 ); + glVertex3d(cost[j]*radius, sint[j]*radius, height); + } + + glEnd(); + + /* Release sin and cos tables */ + + free(sint); + free(cost); +} + +/* + * + */ +void GLUTAPIENTRY glutWireTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings ) +{ + double iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi; + double *vertex, *normal; + int i, j; + double spsi, cpsi, sphi, cphi ; + + /* + * Allocate the vertices array + */ + vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings ); + normal = (double *)calloc( sizeof(double), 3 * nSides * nRings ); + + glPushMatrix(); + + dpsi = 2.0 * M_PI / (double)nRings ; + dphi = -2.0 * M_PI / (double)nSides ; + psi = 0.0; + + for( j=0; j<nRings; j++ ) + { + cpsi = cos ( psi ) ; + spsi = sin ( psi ) ; + phi = 0.0; + + for( i=0; i<nSides; i++ ) + { + int offset = 3 * ( j * nSides + i ) ; + cphi = cos ( phi ) ; + sphi = sin ( phi ) ; + *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ; + *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ; + *(vertex + offset + 2) = sphi * iradius ; + *(normal + offset + 0) = cpsi * cphi ; + *(normal + offset + 1) = spsi * cphi ; + *(normal + offset + 2) = sphi ; + phi += dphi; + } + + psi += dpsi; + } + + for( i=0; i<nSides; i++ ) + { + glBegin( GL_LINE_LOOP ); + + for( j=0; j<nRings; j++ ) + { + int offset = 3 * ( j * nSides + i ) ; + glNormal3dv( normal + offset ); + glVertex3dv( vertex + offset ); + } + + glEnd(); + } + + for( j=0; j<nRings; j++ ) + { + glBegin(GL_LINE_LOOP); + + for( i=0; i<nSides; i++ ) + { + int offset = 3 * ( j * nSides + i ) ; + glNormal3dv( normal + offset ); + glVertex3dv( vertex + offset ); + } + + glEnd(); + } + + free ( vertex ) ; + free ( normal ) ; + glPopMatrix(); +} + +/* + * + */ +void GLUTAPIENTRY glutSolidTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings ) +{ + double iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi; + double *vertex, *normal; + int i, j; + double spsi, cpsi, sphi, cphi ; + + /* + * Increment the number of sides and rings to allow for one more point than surface + */ + nSides ++ ; + nRings ++ ; + + /* + * Allocate the vertices array + */ + vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings ); + normal = (double *)calloc( sizeof(double), 3 * nSides * nRings ); + + glPushMatrix(); + + dpsi = 2.0 * M_PI / (double)(nRings - 1) ; + dphi = -2.0 * M_PI / (double)(nSides - 1) ; + psi = 0.0; + + for( j=0; j<nRings; j++ ) + { + cpsi = cos ( psi ) ; + spsi = sin ( psi ) ; + phi = 0.0; + + for( i=0; i<nSides; i++ ) + { + int offset = 3 * ( j * nSides + i ) ; + cphi = cos ( phi ) ; + sphi = sin ( phi ) ; + *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ; + *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ; + *(vertex + offset + 2) = sphi * iradius ; + *(normal + offset + 0) = cpsi * cphi ; + *(normal + offset + 1) = spsi * cphi ; + *(normal + offset + 2) = sphi ; + phi += dphi; + } + + psi += dpsi; + } + + glBegin( GL_QUADS ); + for( i=0; i<nSides-1; i++ ) + { + for( j=0; j<nRings-1; j++ ) + { + int offset = 3 * ( j * nSides + i ) ; + glNormal3dv( normal + offset ); + glVertex3dv( vertex + offset ); + glNormal3dv( normal + offset + 3 ); + glVertex3dv( vertex + offset + 3 ); + glNormal3dv( normal + offset + 3 * nSides + 3 ); + glVertex3dv( vertex + offset + 3 * nSides + 3 ); + glNormal3dv( normal + offset + 3 * nSides ); + glVertex3dv( vertex + offset + 3 * nSides ); + } + } + + glEnd(); + + free ( vertex ) ; + free ( normal ) ; + glPopMatrix(); +} + +/* + * + */ +void GLUTAPIENTRY glutWireDodecahedron( void ) +{ + /* Magic Numbers: It is possible to create a dodecahedron by attaching two pentagons to each face of + * of a cube. The coordinates of the points are: + * (+-x,0, z); (+-1, 1, 1); (0, z, x ) + * where x = 0.61803398875 and z = 1.61803398875. + */ + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.0, 0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.0, 0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.0, -0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( -0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( -0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( 0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( -0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3d ( -0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; +} + +/* + * + */ +void GLUTAPIENTRY glutSolidDodecahedron( void ) +{ + /* Magic Numbers: It is possible to create a dodecahedron by attaching two pentagons to each face of + * of a cube. The coordinates of the points are: + * (+-x,0, z); (+-1, 1, 1); (0, z, x ) + * where x = 0.61803398875 and z = 1.61803398875. + */ + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.0, 0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.0, 0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.0, -0.525731112119, 0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( -0.850650808354, 0.0, 0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, 1.61803398875 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( 0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( -0.850650808354, 0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( 1.0, 1.0, -1.0 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 1.0, 1.0, 1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( 0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( 1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( 1.0, -1.0, 1.0 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 1.0, -1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( -0.525731112119, 0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, 0.61803398875, 0.0 ) ; glVertex3d ( -1.0, 1.0, 1.0 ) ; glVertex3d ( 0.0, 1.61803398875, 0.61803398875 ) ; glVertex3d ( 0.0, 1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, 1.0, -1.0 ) ; + glEnd () ; + glBegin ( GL_POLYGON ) ; + glNormal3d ( -0.525731112119, -0.850650808354, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, 0.61803398875 ) ; glVertex3d ( -1.0, -1.0, 1.0 ) ; + glEnd () ; +} + +/* + * + */ +void GLUTAPIENTRY glutWireOctahedron( void ) +{ +#define RADIUS 1.0f + glBegin( GL_LINE_LOOP ); + glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glEnd(); +#undef RADIUS +} + +/* + * + */ +void GLUTAPIENTRY glutSolidOctahedron( void ) +{ +#define RADIUS 1.0f + glBegin( GL_TRIANGLES ); + glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); + glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); + glEnd(); +#undef RADIUS +} + +/* + * + */ +void GLUTAPIENTRY glutWireTetrahedron( void ) +{ + /* Magic Numbers: r0 = ( 1, 0, 0 ) + * r1 = ( -1/3, 2 sqrt(2) / 3, 0 ) + * r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 ) + * r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 ) + * |r0| = |r1| = |r2| = |r3| = 1 + * Distance between any two points is 2 sqrt(6) / 3 + * + * Normals: The unit normals are simply the negative of the coordinates of the point not on the surface. + */ + + double r0[3] = { 1.0, 0.0, 0.0 } ; + double r1[3] = { -0.333333333333, 0.942809041582, 0.0 } ; + double r2[3] = { -0.333333333333, -0.471404520791, 0.816496580928 } ; + double r3[3] = { -0.333333333333, -0.471404520791, -0.816496580928 } ; + + glBegin( GL_LINE_LOOP ) ; + glNormal3d ( -1.0, 0.0, 0.0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r2 ) ; + glNormal3d ( 0.333333333333, -0.942809041582, 0.0 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r2 ) ; glVertex3dv ( r3 ) ; + glNormal3d ( 0.333333333333, 0.471404520791, -0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r1 ) ; + glNormal3d ( 0.333333333333, 0.471404520791, 0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r2 ) ; + glEnd() ; +} + +/* + * + */ +void GLUTAPIENTRY glutSolidTetrahedron( void ) +{ + /* Magic Numbers: r0 = ( 1, 0, 0 ) + * r1 = ( -1/3, 2 sqrt(2) / 3, 0 ) + * r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 ) + * r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 ) + * |r0| = |r1| = |r2| = |r3| = 1 + * Distance between any two points is 2 sqrt(6) / 3 + * + * Normals: The unit normals are simply the negative of the coordinates of the point not on the surface. + */ + + double r0[3] = { 1.0, 0.0, 0.0 } ; + double r1[3] = { -0.333333333333, 0.942809041582, 0.0 } ; + double r2[3] = { -0.333333333333, -0.471404520791, 0.816496580928 } ; + double r3[3] = { -0.333333333333, -0.471404520791, -0.816496580928 } ; + + glBegin( GL_TRIANGLES ) ; + glNormal3d ( -1.0, 0.0, 0.0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r2 ) ; + glNormal3d ( 0.333333333333, -0.942809041582, 0.0 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r2 ) ; glVertex3dv ( r3 ) ; + glNormal3d ( 0.333333333333, 0.471404520791, -0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r3 ) ; glVertex3dv ( r1 ) ; + glNormal3d ( 0.333333333333, 0.471404520791, 0.816496580928 ) ; glVertex3dv ( r0 ) ; glVertex3dv ( r1 ) ; glVertex3dv ( r2 ) ; + glEnd() ; +} + +/* + * + */ +double icos_r[12][3] = { { 1.0, 0.0, 0.0 }, + { 0.447213595500, 0.894427191000, 0.0 }, { 0.447213595500, 0.276393202252, 0.850650808354 }, { 0.447213595500, -0.723606797748, 0.525731112119 }, { 0.447213595500, -0.723606797748, -0.525731112119 }, { 0.447213595500, 0.276393202252, -0.850650808354 }, + { -0.447213595500, -0.894427191000, 0.0 }, { -0.447213595500, -0.276393202252, 0.850650808354 }, { -0.447213595500, 0.723606797748, 0.525731112119 }, { -0.447213595500, 0.723606797748, -0.525731112119 }, { -0.447213595500, -0.276393202252, -0.850650808354 }, + { -1.0, 0.0, 0.0 } } ; +int icos_v [20][3] = { { 0, 1, 2 }, { 0, 2, 3 }, { 0, 3, 4 }, { 0, 4, 5 }, { 0, 5, 1 }, + { 1, 8, 2 }, { 2, 7, 3 }, { 3, 6, 4 }, { 4, 10, 5 }, { 5, 9, 1 }, + { 1, 9, 8 }, { 2, 8, 7 }, { 3, 7, 6 }, { 4, 6, 10 }, { 5, 10, 9 }, + { 11, 9, 10 }, { 11, 8, 9 }, { 11, 7, 8 }, { 11, 6, 7 }, { 11, 10, 6 } } ; + +void GLUTAPIENTRY glutWireIcosahedron( void ) +{ + int i ; + for ( i = 0; i < 20; i++ ) + { + double normal[3] ; + normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ; + normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ; + normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ; + glBegin ( GL_LINE_LOOP ) ; + glNormal3dv ( normal ) ; + glVertex3dv ( icos_r[icos_v[i][0]] ) ; + glVertex3dv ( icos_r[icos_v[i][1]] ) ; + glVertex3dv ( icos_r[icos_v[i][2]] ) ; + glEnd () ; + } +} + +/* + * + */ +void GLUTAPIENTRY glutSolidIcosahedron( void ) +{ + int i ; + + glBegin ( GL_TRIANGLES ) ; + for ( i = 0; i < 20; i++ ) + { + double normal[3] ; + normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ; + normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ; + normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ; + glNormal3dv ( normal ) ; + glVertex3dv ( icos_r[icos_v[i][0]] ) ; + glVertex3dv ( icos_r[icos_v[i][1]] ) ; + glVertex3dv ( icos_r[icos_v[i][2]] ) ; + } + + glEnd () ; +} + +/* + * + */ +double rdod_r[14][3] = { { 0.0, 0.0, 1.0 }, + { 0.707106781187, 0.000000000000, 0.5 }, { 0.000000000000, 0.707106781187, 0.5 }, { -0.707106781187, 0.000000000000, 0.5 }, { 0.000000000000, -0.707106781187, 0.5 }, + { 0.707106781187, 0.707106781187, 0.0 }, { -0.707106781187, 0.707106781187, 0.0 }, { -0.707106781187, -0.707106781187, 0.0 }, { 0.707106781187, -0.707106781187, 0.0 }, + { 0.707106781187, 0.000000000000, -0.5 }, { 0.000000000000, 0.707106781187, -0.5 }, { -0.707106781187, 0.000000000000, -0.5 }, { 0.000000000000, -0.707106781187, -0.5 }, + { 0.0, 0.0, -1.0 } } ; +int rdod_v [12][4] = { { 0, 1, 5, 2 }, { 0, 2, 6, 3 }, { 0, 3, 7, 4 }, { 0, 4, 8, 1 }, + { 5, 10, 6, 2 }, { 6, 11, 7, 3 }, { 7, 12, 8, 4 }, { 8, 9, 5, 1 }, + { 5, 9, 13, 10 }, { 6, 10, 13, 11 }, { 7, 11, 13, 12 }, { 8, 12, 13, 9 } } ; +double rdod_n[12][3] = { + { 0.353553390594, 0.353553390594, 0.5 }, { -0.353553390594, 0.353553390594, 0.5 }, { -0.353553390594, -0.353553390594, 0.5 }, { 0.353553390594, -0.353553390594, 0.5 }, + { 0.000000000000, 1.000000000000, 0.0 }, { -1.000000000000, 0.000000000000, 0.0 }, { 0.000000000000, -1.000000000000, 0.0 }, { 1.000000000000, 0.000000000000, 0.0 }, + { 0.353553390594, 0.353553390594, -0.5 }, { -0.353553390594, 0.353553390594, -0.5 }, { -0.353553390594, -0.353553390594, -0.5 }, { 0.353553390594, -0.353553390594, -0.5 } + } ; + +void GLUTAPIENTRY glutWireRhombicDodecahedron( void ) +{ + int i ; + for ( i = 0; i < 12; i++ ) + { + glBegin ( GL_LINE_LOOP ) ; + glNormal3dv ( rdod_n[i] ) ; + glVertex3dv ( rdod_r[rdod_v[i][0]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][1]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][2]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][3]] ) ; + glEnd () ; + } +} + +/* + * + */ +void GLUTAPIENTRY glutSolidRhombicDodecahedron( void ) +{ + int i ; + + glBegin ( GL_QUADS ) ; + for ( i = 0; i < 12; i++ ) + { + glNormal3dv ( rdod_n[i] ) ; + glVertex3dv ( rdod_r[rdod_v[i][0]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][1]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][2]] ) ; + glVertex3dv ( rdod_r[rdod_v[i][3]] ) ; + } + + glEnd () ; +} + +#define NUM_FACES 4 + +static GLdouble tetrahedron_v[4][3] = /* Vertices */ +{ + { -0.5, -0.288675134595, -0.144337567297 }, + { 0.5, -0.288675134595, -0.144337567297 }, + { 0.0, 0.577350269189, -0.144337567297 }, + { 0.0, 0.0, 0.672159013631 } +} ; + +static GLint tetrahedron_i[4][3] = /* Vertex indices */ +{ + { 0, 1, 2 }, { 0, 2, 3 }, { 0, 3, 1 }, { 1, 3, 2 } +} ; + +static GLdouble tetrahedron_n[4][3] = /* Normals */ +{ + { 0.0, 0.0, -1.0 }, + { -0.816496580928, 0.471404520791, 0.333333333333 }, + { 0.0, -0.942809041582, 0.333333333333 }, + { 0.816496580928, 0.471404520791, 0.333333333333 } +} ; + +void GLUTAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) +{ + int i, j ; + + if ( num_levels == 0 ) + { + + for ( i = 0 ; i < NUM_FACES ; i++ ) + { + glBegin ( GL_LINE_LOOP ) ; + glNormal3dv ( tetrahedron_n[i] ) ; + for ( j = 0; j < 3; j++ ) + { + double x = offset[0] + scale * tetrahedron_v[tetrahedron_i[i][j]][0] ; + double y = offset[1] + scale * tetrahedron_v[tetrahedron_i[i][j]][1] ; + double z = offset[2] + scale * tetrahedron_v[tetrahedron_i[i][j]][2] ; + glVertex3d ( x, y, z ) ; + } + + glEnd () ; + } + } + else + { + GLdouble local_offset[3] ; /* Use a local variable to avoid buildup of roundoff errors */ + num_levels -- ; + scale /= 2.0 ; + local_offset[0] = offset[0] + scale * tetrahedron_v[0][0] ; + local_offset[1] = offset[1] + scale * tetrahedron_v[0][1] ; + local_offset[2] = offset[2] + scale * tetrahedron_v[0][2] ; + glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[0] += scale ; + glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[0] -= 0.5 * scale ; + local_offset[1] += 0.866025403784 * scale ; + glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[1] -= 0.577350269189 * scale ; + local_offset[2] += 0.816496580928 * scale ; + glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ; + } +} + +void GLUTAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) +{ + int i, j ; + + if ( num_levels == 0 ) + { + glBegin ( GL_TRIANGLES ) ; + + for ( i = 0 ; i < NUM_FACES ; i++ ) + { + glNormal3dv ( tetrahedron_n[i] ) ; + for ( j = 0; j < 3; j++ ) + { + double x = offset[0] + scale * tetrahedron_v[tetrahedron_i[i][j]][0] ; + double y = offset[1] + scale * tetrahedron_v[tetrahedron_i[i][j]][1] ; + double z = offset[2] + scale * tetrahedron_v[tetrahedron_i[i][j]][2] ; + glVertex3d ( x, y, z ) ; + } + } + + glEnd () ; + } + else + { + GLdouble local_offset[3] ; /* Use a local variable to avoid buildup of roundoff errors */ + num_levels -- ; + scale /= 2.0 ; + local_offset[0] = offset[0] + scale * tetrahedron_v[0][0] ; + local_offset[1] = offset[1] + scale * tetrahedron_v[0][1] ; + local_offset[2] = offset[2] + scale * tetrahedron_v[0][2] ; + glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[0] += scale ; + glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[0] -= 0.5 * scale ; + local_offset[1] += 0.866025403784 * scale ; + glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; + local_offset[1] -= 0.577350269189 * scale ; + local_offset[2] += 0.816496580928 * scale ; + glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ; + } +} + +#undef NUM_FACES + +/*** END OF FILE ***/ diff --git a/src/glut/dos/state.c b/src/glut/dos/state.c new file mode 100644 index 00000000000..b0d5d8ae923 --- /dev/null +++ b/src/glut/dos/state.c @@ -0,0 +1,238 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include <stdio.h> + +#include "internal.h" + + +#define FREQUENCY 100 /* set this to zero to use the default timer */ + + +static int timer_installed; +#if FREQUENCY +static volatile int ticks; + + +static void +ticks_timer (void *p) +{ + (void)p; + ticks++; +} ENDOFUNC(ticks_timer) +#else +#include <time.h> + +static struct timeval then; +#endif + + +int APIENTRY +glutGet (GLenum type) +{ + switch (type) { + case GLUT_WINDOW_X: + return _glut_current->xpos; + case GLUT_WINDOW_Y: + return _glut_current->ypos; + case GLUT_WINDOW_WIDTH: + return _glut_current->width; + case GLUT_WINDOW_HEIGHT: + return _glut_current->height; + case GLUT_WINDOW_STENCIL_SIZE: + return _glut_visual.stencil; + case GLUT_WINDOW_DEPTH_SIZE: + return _glut_visual.depth; + case GLUT_WINDOW_RGBA: + return !(_glut_default.mode & GLUT_INDEX); + case GLUT_WINDOW_COLORMAP_SIZE: + return (_glut_default.mode & GLUT_INDEX) ? (256 - RESERVED_COLORS) : 0; + case GLUT_SCREEN_WIDTH: + return _glut_visual.geometry[0]; + case GLUT_SCREEN_HEIGHT: + return _glut_visual.geometry[1]; + case GLUT_INIT_WINDOW_X: + return _glut_default.x; + case GLUT_INIT_WINDOW_Y: + return _glut_default.y; + case GLUT_INIT_WINDOW_WIDTH: + return _glut_default.width; + case GLUT_INIT_WINDOW_HEIGHT: + return _glut_default.height; + case GLUT_INIT_DISPLAY_MODE: + return _glut_default.mode; + case GLUT_ELAPSED_TIME: +#if FREQUENCY + if (!timer_installed) { + timer_installed = GL_TRUE; + LOCKDATA(ticks); + LOCKFUNC(ticks_timer); + pc_install_int(ticks_timer, NULL, FREQUENCY); + } + return ticks * 1000 / FREQUENCY; +#else + if (!timer_installed) { + timer_installed = GL_TRUE; + gettimeofday(&then, NULL); + return 0; + } else { + struct timeval now; + gettimeofday(&now, NULL); + return (now.tv_usec - then.tv_usec) / 1000 + + (now.tv_sec - then.tv_sec) * 1000; + } +#endif + default: + return -1; + } +} + + +int APIENTRY +glutDeviceGet (GLenum type) +{ + switch (type) { + case GLUT_HAS_KEYBOARD: + return GL_TRUE; + case GLUT_HAS_MOUSE: + return (_glut_mouse != 0); + case GLUT_NUM_MOUSE_BUTTONS: + return _glut_mouse; + case GLUT_HAS_SPACEBALL: + case GLUT_HAS_DIAL_AND_BUTTON_BOX: + case GLUT_HAS_TABLET: + return GL_FALSE; + case GLUT_NUM_SPACEBALL_BUTTONS: + case GLUT_NUM_BUTTON_BOX_BUTTONS: + case GLUT_NUM_DIALS: + case GLUT_NUM_TABLET_BUTTONS: + return 0; + default: + return -1; + } +} + + +int APIENTRY +glutGetModifiers (void) +{ + int mod = 0; + int shifts = pc_keyshifts(); + + if (shifts & (KB_SHIFT_FLAG | KB_CAPSLOCK_FLAG)) { + mod |= GLUT_ACTIVE_SHIFT; + } + + if (shifts & KB_ALT_FLAG) { + mod |= GLUT_ACTIVE_ALT; + } + + if (shifts & KB_CTRL_FLAG) { + mod |= GLUT_ACTIVE_CTRL; + } + + return mod; +} + + +void APIENTRY +glutReportErrors (void) +{ + /* reports all the OpenGL errors that happened till now */ +} + + +/* GAME MODE + * Hack alert: incomplete... what is GameMode, anyway? + */ +static GLint game; +static GLboolean game_possible; +static GLboolean game_active; +static GLuint game_width; +static GLuint game_height; +static GLuint game_bpp; +static GLuint game_refresh; + + +void APIENTRY +glutGameModeString (const char *string) +{ + if (sscanf(string, "%ux%u:%u@%u", &game_width, &game_height, &game_bpp, &game_refresh) == 4) { + game_possible = GL_TRUE; + } +} + + +int APIENTRY +glutGameModeGet (GLenum mode) +{ + switch (mode) { + case GLUT_GAME_MODE_ACTIVE: + return game_active; + case GLUT_GAME_MODE_POSSIBLE: + return game_possible && !_glut_current; + case GLUT_GAME_MODE_WIDTH: + return game_active ? (int)game_width : -1; + case GLUT_GAME_MODE_HEIGHT: + return game_active ? (int)game_height : -1; + case GLUT_GAME_MODE_PIXEL_DEPTH: + return game_active ? (int)game_bpp : -1; + case GLUT_GAME_MODE_REFRESH_RATE: + return game_active ? (int)game_refresh : -1; + default: + return -1; + } +} + + +int APIENTRY +glutEnterGameMode (void) +{ + if (glutGameModeGet(GLUT_GAME_MODE_POSSIBLE)) { + _glut_visual.bpp = game_bpp; + _glut_visual.refresh = game_refresh; + + glutInitWindowSize(game_width, game_height); + + if ((game = glutCreateWindow("<game>")) > 0) { + game_active = GL_TRUE; + } + + return game; + } else { + return 0; + } +} + + +void GLUTAPIENTRY +glutLeaveGameMode (void) +{ + if (glutGameModeGet(GLUT_GAME_MODE_ACTIVE)) { + game_active = GL_FALSE; + + glutDestroyWindow(game); + } +} diff --git a/src/glut/dos/stroke.c b/src/glut/dos/stroke.c new file mode 100644 index 00000000000..aa2c06a7db2 --- /dev/null +++ b/src/glut/dos/stroke.c @@ -0,0 +1,118 @@ +/* + * FxGLUT version 0.12 - GLUT for Voodoo 1 and 2 under Linux + * Copyright (C) 1999 Christopher John Purnell + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "internal.h" + + +void +glutStrokeCharacter (void *font, int c) +{ + const GLUTStrokeFont *sfp = _glut_font(font); + const GLUTStrokeChar *scp; + const GLUTStrokeStrip *ssp; + const GLUTStrokeVertex *svp; + unsigned i, j; + + if (((unsigned)c) >= sfp->num || !(scp = sfp->table[c])) + return; + + ssp = scp->strip; + + for (i = 0; i < scp->num; i++, ssp++) { + svp = ssp->vertex; + + glBegin(GL_LINE_STRIP); + for (j = 0; j < ssp->num; j++, svp++) { + glVertex2f(svp->x, svp->y); + } + glEnd(); + } + + glTranslatef(scp->right, 0.0, 0.0); +} + + +void +glutStrokeString (void *font, const unsigned char *string) +{ + const GLUTStrokeFont *sfp = _glut_font(font); + const GLUTStrokeChar *scp; + const GLUTStrokeStrip *ssp; + const GLUTStrokeVertex *svp; + unsigned char c; + unsigned i, j; + + while ((c = *(string++))) { + if (c < sfp->num && (scp = sfp->table[c])) { + ssp = scp->strip; + + for (i = 0; i < scp->num; i++, ssp++) { + svp = ssp->vertex; + + glBegin(GL_LINE_STRIP); + for (j = 0; j < ssp->num; j++, svp++) { + glVertex2f(svp->x, svp->y); + } + glEnd(); + } + + glTranslatef(scp->right, 0.0, 0.0); + } + } +} + + +int +glutStrokeWidth (void *font, int c) +{ + const GLUTStrokeFont *sfp = _glut_font(font); + const GLUTStrokeChar *scp; + + if (((unsigned)c) >= sfp->num || !(scp = sfp->table[c])) + return 0; + + return scp->right; +} + + +int +glutStrokeLength (void *font, const unsigned char *string) +{ + const GLUTStrokeFont *sfp = _glut_font(font); + const GLUTStrokeChar *scp; + unsigned char c; + int length = 0; + + while ((c = *(string++))) { + if (c < sfp->num && (scp = sfp->table[c])) + length += scp->right; + } + + return length; +} + + +GLfloat +glutStrokeHeight (void *font) +{ + const GLUTStrokeFont *sfp = _glut_font(font); + + return sfp->height; +} diff --git a/src/glut/dos/teapot.c b/src/glut/dos/teapot.c new file mode 100644 index 00000000000..8d02eb49f32 --- /dev/null +++ b/src/glut/dos/teapot.c @@ -0,0 +1,201 @@ +/* + * (c) Copyright 1993, Silicon Graphics, Inc. + * + * ALL RIGHTS RESERVED + * + * Permission to use, copy, modify, and distribute this software + * for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that + * both the copyright notice and this permission notice appear in + * supporting documentation, and that the name of Silicon + * Graphics, Inc. not be used in advertising or publicity + * pertaining to distribution of the software without specific, + * written prior permission. + * + * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU + * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR + * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO + * EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE + * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER, + * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE, + * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR + * NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF THE POSSIBILITY + * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + * US Government Users Restricted Rights + * + * Use, duplication, or disclosure by the Government is subject to + * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph + * (c)(1)(ii) of the Rights in Technical Data and Computer + * Software clause at DFARS 252.227-7013 and/or in similar or + * successor clauses in the FAR or the DOD or NASA FAR + * Supplement. Unpublished-- rights reserved under the copyright + * laws of the United States. Contractor/manufacturer is Silicon + * Graphics, Inc., 2011 N. Shoreline Blvd., Mountain View, CA + * 94039-7311. + * + * OpenGL(TM) is a trademark of Silicon Graphics, Inc. + */ + +#include "internal.h" + +/* + * Rim, body, lid, and bottom data must be reflected in x and y; + * handle and spout data across the y axis only. + */ +static int patchdata[][16] = +{ + { 102, 103, 104, 105, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15 }, /* rim */ + { 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27 }, /* body */ + { 24, 25, 26, 27, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40 }, + { 96, 96, 96, 96, 97, 98, 99, 100, + 101, 101, 101, 101, 0, 1, 2, 3 }, /* lid */ + { 0, 1, 2, 3, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117 }, + { 118, 118, 118, 118, 124, 122, 119, 121, + 123, 126, 125, 120, 40, 39, 38, 37 }, /* bottom */ + { 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56 }, /* handle */ + { 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 28, 65, 66, 67 }, + { 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83 }, /* spout */ + { 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95 } +}; + +static float cpdata[][3] = +{ + {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, + {0,-0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125}, + {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, + {1.4375, 0, 2.53125}, {1.4375, -0.805, 2.53125}, + {0.805, -1.4375, 2.53125}, {0, -1.4375, 2.53125}, + {1.5, 0, 2.4}, {1.5, -0.84, 2.4}, {0.84, -1.5, 2.4}, + {0, -1.5, 2.4}, {1.75, 0, 1.875}, {1.75, -0.98, 1.875}, + {0.98, -1.75, 1.875}, {0, -1.75, 1.875}, {2, 0, 1.35}, + {2, -1.12, 1.35}, {1.12, -2, 1.35}, {0, -2, 1.35}, {2, 0, 0.9}, + {2, -1.12, 0.9}, {1.12, -2, 0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, + {2, 0, 0.45}, {2, -1.12, 0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, + {1.5, 0, 0.225}, {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, + {0, -1.5, 0.225}, {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, + {0.84, -1.5, 0.15}, {0, -1.5, 0.15}, {-1.6, 0, 2.025}, + {-1.6, -0.3, 2.025}, {-1.5, -0.3, 2.25}, {-1.5, 0, 2.25}, + {-2.3, 0, 2.025}, {-2.3, -0.3, 2.025}, {-2.5, -0.3, 2.25}, + {-2.5, 0, 2.25}, {-2.7, 0, 2.025}, {-2.7, -0.3, 2.025}, + {-3, -0.3, 2.25}, {-3, 0, 2.25}, {-2.7, 0, 1.8}, + {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8}, {-3, 0, 1.8}, + {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3, -0.3, 1.35}, + {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3, 1.125}, + {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2, -0.3, 0.9}, + {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0, 1.425}, + {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0, 0.6}, + {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66, 0.825}, + {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1}, + {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, + {2.7, -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, + {2.8, 0, 2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375}, + {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475}, + {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4}, + {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, + {0, 0, 3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, + {0.45, -0.8, 3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, + {1.4, -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, + {0.4, 0, 2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, + {0, -0.4, 2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, + {0.728, -1.3, 2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, + {1.3, -0.728, 2.4}, {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, + {0, 0, 0}, {1.425, -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, + {0.798, -1.425, 0}, {0, -1.5, 0.075}, {0, -1.425, 0}, + {1.5, -0.84, 0.075}, {0.84, -1.5, 0.075} +}; + +static float tex[2][2][2] = +{ + { {0, 0}, {1, 0} }, + { {0, 1}, {1, 1} } +}; + +static void teapot( GLint grid, GLdouble scale, GLenum type ) +{ + float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3]; + long i, j, k, l; + + glPushAttrib( GL_ENABLE_BIT | GL_EVAL_BIT ); + glEnable( GL_AUTO_NORMAL ); + glEnable( GL_NORMALIZE ); + glEnable( GL_MAP2_VERTEX_3 ); + glEnable( GL_MAP2_TEXTURE_COORD_2 ); + + glPushMatrix(); + glRotatef(270.0, 1.0, 0.0, 0.0); + glScalef(0.5 * scale, 0.5 * scale, 0.5 * scale); + glTranslatef(0.0, 0.0, -1.5); + + for (i = 0; i < 10; i++) + { + for (j = 0; j < 4; j++) + { + for (k = 0; k < 4; k++) + { + for (l = 0; l < 3; l++) + { + p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; + q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l]; + if (l == 1) + q[j][k][l] *= -1.0; + if (i < 6) + { + r[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l]; + if (l == 0) + r[j][k][l] *= -1.0; + s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l]; + if (l == 0) + s[j][k][l] *= -1.0; + if (l == 1) + s[j][k][l] *= -1.0; + } + } + } + } + + glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2, + &tex[0][0][0]); + glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, + &p[0][0][0]); + glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0); + glEvalMesh2(type, 0, grid, 0, grid); + glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, + &q[0][0][0]); + glEvalMesh2(type, 0, grid, 0, grid); + if (i < 6) + { + glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, + &r[0][0][0]); + glEvalMesh2(type, 0, grid, 0, grid); + glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, + &s[0][0][0]); + glEvalMesh2(type, 0, grid, 0, grid); + } + } + + glPopMatrix(); + glPopAttrib(); +} + +void glutWireTeapot(GLdouble size) +{ + teapot(10, size, GL_LINE); +} + +void glutSolidTeapot(GLdouble size) +{ + teapot(7, size, GL_FILL); +} diff --git a/src/glut/dos/tr10.c b/src/glut/dos/tr10.c new file mode 100644 index 00000000000..a1e03f3e1bf --- /dev/null +++ b/src/glut/dos/tr10.c @@ -0,0 +1,1018 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch32data[] = { + 0x0 +}; +static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 2, ch32data }; + +static const unsigned char ch33data[] = { + 0x80,0x0,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch33 = { 1, 7, -1, 0, 3, ch33data }; + +static const unsigned char ch34data[] = { + 0xa0,0xa0 +}; +static const GLUTBitmapChar ch34 = { 3, 2, 0, -5, 4, ch34data }; + +static const unsigned char ch35data[] = { + 0x50,0x50,0xf8,0x50,0xf8,0x50,0x50 +}; +static const GLUTBitmapChar ch35 = { 5, 7, 0, 0, 5, ch35data }; + +static const unsigned char ch36data[] = { + 0x20,0xe0,0x90,0x10,0x60,0x80,0x90,0x70,0x20 +}; +static const GLUTBitmapChar ch36 = { 4, 9, 0, 1, 5, ch36data }; + +static const unsigned char ch37data[] = { + 0x44,0x2a,0x2a,0x56,0xa8,0xa4,0x7e +}; +static const GLUTBitmapChar ch37 = { 7, 7, 0, 0, 8, ch37data }; + +static const unsigned char ch38data[] = { + 0x76,0x8d,0x98,0x74,0x6e,0x50,0x30 +}; +static const GLUTBitmapChar ch38 = { 8, 7, 0, 0, 8, ch38data }; + +static const unsigned char ch39data[] = { + 0x40,0xc0 +}; +static const GLUTBitmapChar ch39 = { 2, 2, 0, -5, 3, ch39data }; + +static const unsigned char ch40data[] = { + 0x20,0x40,0x40,0x80,0x80,0x80,0x40,0x40,0x20 +}; +static const GLUTBitmapChar ch40 = { 3, 9, 0, 2, 4, ch40data }; + +static const unsigned char ch41data[] = { + 0x80,0x40,0x40,0x20,0x20,0x20,0x40,0x40,0x80 +}; +static const GLUTBitmapChar ch41 = { 3, 9, 0, 2, 4, ch41data }; + +static const unsigned char ch42data[] = { + 0xa0,0x40,0xa0 +}; +static const GLUTBitmapChar ch42 = { 3, 3, 0, -4, 5, ch42data }; + +static const unsigned char ch43data[] = { + 0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch43 = { 5, 5, 0, 0, 6, ch43data }; + +static const unsigned char ch44data[] = { + 0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch44 = { 1, 3, -1, 2, 3, ch44data }; + +static const unsigned char ch45data[] = { + 0xf0 +}; +static const GLUTBitmapChar ch45 = { 4, 1, -1, -2, 7, ch45data }; + +static const unsigned char ch46data[] = { + 0x80 +}; +static const GLUTBitmapChar ch46 = { 1, 1, -1, 0, 3, ch46data }; + +static const unsigned char ch47data[] = { + 0x80,0x80,0x40,0x40,0x40,0x20,0x20 +}; +static const GLUTBitmapChar ch47 = { 3, 7, 0, 0, 3, ch47data }; + +static const unsigned char ch48data[] = { + 0x60,0x90,0x90,0x90,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch48 = { 4, 7, 0, 0, 5, ch48data }; + +static const unsigned char ch49data[] = { + 0xe0,0x40,0x40,0x40,0x40,0xc0,0x40 +}; +static const GLUTBitmapChar ch49 = { 3, 7, -1, 0, 5, ch49data }; + +static const unsigned char ch50data[] = { + 0xf0,0x40,0x20,0x20,0x10,0x90,0x60 +}; +static const GLUTBitmapChar ch50 = { 4, 7, 0, 0, 5, ch50data }; + +static const unsigned char ch51data[] = { + 0xe0,0x10,0x10,0x60,0x10,0x90,0x60 +}; +static const GLUTBitmapChar ch51 = { 4, 7, 0, 0, 5, ch51data }; + +static const unsigned char ch52data[] = { + 0x10,0x10,0xf8,0x90,0x50,0x30,0x10 +}; +static const GLUTBitmapChar ch52 = { 5, 7, 0, 0, 5, ch52data }; + +static const unsigned char ch53data[] = { + 0xe0,0x90,0x10,0x10,0xe0,0x40,0x70 +}; +static const GLUTBitmapChar ch53 = { 4, 7, 0, 0, 5, ch53data }; + +static const unsigned char ch54data[] = { + 0x60,0x90,0x90,0x90,0xe0,0x40,0x30 +}; +static const GLUTBitmapChar ch54 = { 4, 7, 0, 0, 5, ch54data }; + +static const unsigned char ch55data[] = { + 0x40,0x40,0x40,0x20,0x20,0x90,0xf0 +}; +static const GLUTBitmapChar ch55 = { 4, 7, 0, 0, 5, ch55data }; + +static const unsigned char ch56data[] = { + 0x60,0x90,0x90,0x60,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch56 = { 4, 7, 0, 0, 5, ch56data }; + +static const unsigned char ch57data[] = { + 0xc0,0x20,0x70,0x90,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch57 = { 4, 7, 0, 0, 5, ch57data }; + +static const unsigned char ch58data[] = { + 0x80,0x0,0x0,0x0,0x80 +}; +static const GLUTBitmapChar ch58 = { 1, 5, -1, 0, 3, ch58data }; + +static const unsigned char ch59data[] = { + 0x80,0x80,0x80,0x0,0x0,0x0,0x80 +}; +static const GLUTBitmapChar ch59 = { 1, 7, -1, 2, 3, ch59data }; + +static const unsigned char ch60data[] = { + 0x20,0x40,0x80,0x40,0x20 +}; +static const GLUTBitmapChar ch60 = { 3, 5, -1, 0, 5, ch60data }; + +static const unsigned char ch61data[] = { + 0xf8,0x0,0xf8 +}; +static const GLUTBitmapChar ch61 = { 5, 3, 0, -1, 6, ch61data }; + +static const unsigned char ch62data[] = { + 0x80,0x40,0x20,0x40,0x80 +}; +static const GLUTBitmapChar ch62 = { 3, 5, 0, 0, 5, ch62data }; + +static const unsigned char ch63data[] = { + 0x40,0x0,0x40,0x40,0x20,0xa0,0xe0 +}; +static const GLUTBitmapChar ch63 = { 3, 7, 0, 0, 4, ch63data }; + +static const unsigned char ch64data[] = { + 0x3e,0x40,0x92,0xad,0xa5,0xa5,0x9d,0x42,0x3c +}; +static const GLUTBitmapChar ch64 = { 8, 9, 0, 2, 9, ch64data }; + +static const unsigned char ch65data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10 +}; +static const GLUTBitmapChar ch65 = { 7, 7, 0, 0, 8, ch65data }; + +static const unsigned char ch66data[] = { + 0xf0,0x48,0x48,0x70,0x48,0x48,0xf0 +}; +static const GLUTBitmapChar ch66 = { 5, 7, 0, 0, 6, ch66data }; + +static const unsigned char ch67data[] = { + 0x78,0xc4,0x80,0x80,0x80,0xc4,0x7c +}; +static const GLUTBitmapChar ch67 = { 6, 7, 0, 0, 7, ch67data }; + +static const unsigned char ch68data[] = { + 0xf8,0x4c,0x44,0x44,0x44,0x4c,0xf8 +}; +static const GLUTBitmapChar ch68 = { 6, 7, 0, 0, 7, ch68data }; + +static const unsigned char ch69data[] = { + 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8 +}; +static const GLUTBitmapChar ch69 = { 5, 7, 0, 0, 6, ch69data }; + +static const unsigned char ch70data[] = { + 0xe0,0x40,0x40,0x70,0x40,0x48,0xf8 +}; +static const GLUTBitmapChar ch70 = { 5, 7, 0, 0, 6, ch70data }; + +static const unsigned char ch71data[] = { + 0x78,0xc4,0x84,0x9c,0x80,0xc4,0x7c +}; +static const GLUTBitmapChar ch71 = { 6, 7, 0, 0, 7, ch71data }; + +static const unsigned char ch72data[] = { + 0xee,0x44,0x44,0x7c,0x44,0x44,0xee +}; +static const GLUTBitmapChar ch72 = { 7, 7, 0, 0, 8, ch72data }; + +static const unsigned char ch73data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0 +}; +static const GLUTBitmapChar ch73 = { 3, 7, 0, 0, 4, ch73data }; + +static const unsigned char ch74data[] = { + 0xc0,0xa0,0x20,0x20,0x20,0x20,0x70 +}; +static const GLUTBitmapChar ch74 = { 4, 7, 0, 0, 4, ch74data }; + +static const unsigned char ch75data[] = { + 0xec,0x48,0x50,0x60,0x50,0x48,0xec +}; +static const GLUTBitmapChar ch75 = { 6, 7, 0, 0, 7, ch75data }; + +static const unsigned char ch76data[] = { + 0xf8,0x48,0x40,0x40,0x40,0x40,0xe0 +}; +static const GLUTBitmapChar ch76 = { 5, 7, 0, 0, 6, ch76data }; + +static const unsigned char ch77data[] = { + 0xeb,0x80,0x49,0x0,0x55,0x0,0x55,0x0,0x63,0x0,0x63,0x0,0xe3,0x80 +}; +static const GLUTBitmapChar ch77 = { 9, 7, 0, 0, 10, ch77data }; + +static const unsigned char ch78data[] = { + 0xe4,0x4c,0x4c,0x54,0x54,0x64,0xee +}; +static const GLUTBitmapChar ch78 = { 7, 7, 0, 0, 8, ch78data }; + +static const unsigned char ch79data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78 +}; +static const GLUTBitmapChar ch79 = { 6, 7, 0, 0, 7, ch79data }; + +static const unsigned char ch80data[] = { + 0xe0,0x40,0x40,0x70,0x48,0x48,0xf0 +}; +static const GLUTBitmapChar ch80 = { 5, 7, 0, 0, 6, ch80data }; + +static const unsigned char ch81data[] = { + 0xc,0x18,0x70,0xcc,0x84,0x84,0x84,0xcc,0x78 +}; +static const GLUTBitmapChar ch81 = { 6, 9, 0, 2, 7, ch81data }; + +static const unsigned char ch82data[] = { + 0xec,0x48,0x50,0x70,0x48,0x48,0xf0 +}; +static const GLUTBitmapChar ch82 = { 6, 7, 0, 0, 7, ch82data }; + +static const unsigned char ch83data[] = { + 0xe0,0x90,0x10,0x60,0xc0,0x90,0x70 +}; +static const GLUTBitmapChar ch83 = { 4, 7, 0, 0, 5, ch83data }; + +static const unsigned char ch84data[] = { + 0x70,0x20,0x20,0x20,0x20,0xa8,0xf8 +}; +static const GLUTBitmapChar ch84 = { 5, 7, 0, 0, 6, ch84data }; + +static const unsigned char ch85data[] = { + 0x38,0x6c,0x44,0x44,0x44,0x44,0xee +}; +static const GLUTBitmapChar ch85 = { 7, 7, 0, 0, 8, ch85data }; + +static const unsigned char ch86data[] = { + 0x10,0x10,0x28,0x28,0x6c,0x44,0xee +}; +static const GLUTBitmapChar ch86 = { 7, 7, 0, 0, 8, ch86data }; + +static const unsigned char ch87data[] = { + 0x22,0x0,0x22,0x0,0x55,0x0,0x55,0x0,0xc9,0x80,0x88,0x80,0xdd,0xc0 +}; +static const GLUTBitmapChar ch87 = { 10, 7, 0, 0, 10, ch87data }; + +static const unsigned char ch88data[] = { + 0xee,0x44,0x28,0x10,0x28,0x44,0xee +}; +static const GLUTBitmapChar ch88 = { 7, 7, 0, 0, 8, ch88data }; + +static const unsigned char ch89data[] = { + 0x38,0x10,0x10,0x28,0x28,0x44,0xee +}; +static const GLUTBitmapChar ch89 = { 7, 7, 0, 0, 8, ch89data }; + +static const unsigned char ch90data[] = { + 0xf8,0x88,0x40,0x20,0x10,0x88,0xf8 +}; +static const GLUTBitmapChar ch90 = { 5, 7, 0, 0, 6, ch90data }; + +static const unsigned char ch91data[] = { + 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0 +}; +static const GLUTBitmapChar ch91 = { 2, 9, 0, 2, 3, ch91data }; + +static const unsigned char ch92data[] = { + 0x20,0x20,0x40,0x40,0x40,0x80,0x80 +}; +static const GLUTBitmapChar ch92 = { 3, 7, 0, 0, 3, ch92data }; + +static const unsigned char ch93data[] = { + 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0 +}; +static const GLUTBitmapChar ch93 = { 2, 9, 0, 2, 3, ch93data }; + +static const unsigned char ch94data[] = { + 0xa0,0xa0,0x40 +}; +static const GLUTBitmapChar ch94 = { 3, 3, -1, -4, 5, ch94data }; + +static const unsigned char ch95data[] = { + 0xf8 +}; +static const GLUTBitmapChar ch95 = { 5, 1, 0, 3, 5, ch95data }; + +static const unsigned char ch96data[] = { + 0xc0,0x80 +}; +static const GLUTBitmapChar ch96 = { 2, 2, 0, -5, 3, ch96data }; + +static const unsigned char ch97data[] = { + 0xe0,0xa0,0x60,0x20,0xc0 +}; +static const GLUTBitmapChar ch97 = { 3, 5, 0, 0, 4, ch97data }; + +static const unsigned char ch98data[] = { + 0xe0,0x90,0x90,0x90,0xe0,0x80,0x80 +}; +static const GLUTBitmapChar ch98 = { 4, 7, 0, 0, 5, ch98data }; + +static const unsigned char ch99data[] = { + 0x60,0x80,0x80,0x80,0x60 +}; +static const GLUTBitmapChar ch99 = { 3, 5, 0, 0, 4, ch99data }; + +static const unsigned char ch100data[] = { + 0x68,0x90,0x90,0x90,0x70,0x10,0x30 +}; +static const GLUTBitmapChar ch100 = { 5, 7, 0, 0, 5, ch100data }; + +static const unsigned char ch101data[] = { + 0x60,0x80,0xc0,0xa0,0x60 +}; +static const GLUTBitmapChar ch101 = { 3, 5, 0, 0, 4, ch101data }; + +static const unsigned char ch102data[] = { + 0xe0,0x40,0x40,0x40,0xe0,0x40,0x30 +}; +static const GLUTBitmapChar ch102 = { 4, 7, 0, 0, 4, ch102data }; + +static const unsigned char ch103data[] = { + 0xe0,0x90,0x60,0x40,0xa0,0xa0,0x70 +}; +static const GLUTBitmapChar ch103 = { 4, 7, 0, 2, 5, ch103data }; + +static const unsigned char ch104data[] = { + 0xd8,0x90,0x90,0x90,0xe0,0x80,0x80 +}; +static const GLUTBitmapChar ch104 = { 5, 7, 0, 0, 5, ch104data }; + +static const unsigned char ch105data[] = { + 0x40,0x40,0x40,0x40,0xc0,0x0,0x40 +}; +static const GLUTBitmapChar ch105 = { 2, 7, 0, 0, 3, ch105data }; + +static const unsigned char ch106data[] = { + 0x80,0x40,0x40,0x40,0x40,0x40,0xc0,0x0,0x40 +}; +static const GLUTBitmapChar ch106 = { 2, 9, 0, 2, 3, ch106data }; + +static const unsigned char ch107data[] = { + 0x98,0x90,0xe0,0xa0,0x90,0x80,0x80 +}; +static const GLUTBitmapChar ch107 = { 5, 7, 0, 0, 5, ch107data }; + +static const unsigned char ch108data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xc0 +}; +static const GLUTBitmapChar ch108 = { 3, 7, 0, 0, 4, ch108data }; + +static const unsigned char ch109data[] = { + 0xdb,0x92,0x92,0x92,0xec +}; +static const GLUTBitmapChar ch109 = { 8, 5, 0, 0, 8, ch109data }; + +static const unsigned char ch110data[] = { + 0xd8,0x90,0x90,0x90,0xe0 +}; +static const GLUTBitmapChar ch110 = { 5, 5, 0, 0, 5, ch110data }; + +static const unsigned char ch111data[] = { + 0x60,0x90,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch111 = { 4, 5, 0, 0, 5, ch111data }; + +static const unsigned char ch112data[] = { + 0xc0,0x80,0xe0,0x90,0x90,0x90,0xe0 +}; +static const GLUTBitmapChar ch112 = { 4, 7, 0, 2, 5, ch112data }; + +static const unsigned char ch113data[] = { + 0x38,0x10,0x70,0x90,0x90,0x90,0x70 +}; +static const GLUTBitmapChar ch113 = { 5, 7, 0, 2, 5, ch113data }; + +static const unsigned char ch114data[] = { + 0xe0,0x40,0x40,0x60,0xa0 +}; +static const GLUTBitmapChar ch114 = { 3, 5, 0, 0, 4, ch114data }; + +static const unsigned char ch115data[] = { + 0xe0,0x20,0x60,0x80,0xe0 +}; +static const GLUTBitmapChar ch115 = { 3, 5, 0, 0, 4, ch115data }; + +static const unsigned char ch116data[] = { + 0x30,0x40,0x40,0x40,0xe0,0x40 +}; +static const GLUTBitmapChar ch116 = { 4, 6, 0, 0, 4, ch116data }; + +static const unsigned char ch117data[] = { + 0x68,0x90,0x90,0x90,0x90 +}; +static const GLUTBitmapChar ch117 = { 5, 5, 0, 0, 5, ch117data }; + +static const unsigned char ch118data[] = { + 0x20,0x60,0x50,0x90,0xd8 +}; +static const GLUTBitmapChar ch118 = { 5, 5, 0, 0, 5, ch118data }; + +static const unsigned char ch119data[] = { + 0x28,0x6c,0x54,0x92,0xdb +}; +static const GLUTBitmapChar ch119 = { 8, 5, 0, 0, 8, ch119data }; + +static const unsigned char ch120data[] = { + 0xd8,0x50,0x20,0x50,0xd8 +}; +static const GLUTBitmapChar ch120 = { 5, 5, 0, 0, 6, ch120data }; + +static const unsigned char ch121data[] = { + 0x40,0x40,0x20,0x30,0x50,0x48,0xdc +}; +static const GLUTBitmapChar ch121 = { 6, 7, 1, 2, 5, ch121data }; + +static const unsigned char ch122data[] = { + 0xf0,0x90,0x40,0x20,0xf0 +}; +static const GLUTBitmapChar ch122 = { 4, 5, 0, 0, 5, ch122data }; + +static const unsigned char ch123data[] = { + 0x20,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x20 +}; +static const GLUTBitmapChar ch123 = { 3, 9, 0, 2, 4, ch123data }; + +static const unsigned char ch124data[] = { + 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch124 = { 1, 9, 0, 2, 2, ch124data }; + +static const unsigned char ch125data[] = { + 0x80,0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80 +}; +static const GLUTBitmapChar ch125 = { 3, 9, 0, 2, 4, ch125data }; + +static const unsigned char ch126data[] = { + 0x98,0x64 +}; +static const GLUTBitmapChar ch126 = { 6, 2, 0, -2, 7, ch126data }; + +static const unsigned char ch160data[] = { + 0x0 +}; +static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 2, ch160data }; + +static const unsigned char ch161data[] = { + 0x80,0x80,0x80,0x80,0x80,0x0,0x80 +}; +static const GLUTBitmapChar ch161 = { 1, 7, -1, 2, 3, ch161data }; + +static const unsigned char ch162data[] = { + 0x80,0xe0,0x90,0x80,0x90,0x70,0x10 +}; +static const GLUTBitmapChar ch162 = { 4, 7, 0, 1, 5, ch162data }; + +static const unsigned char ch163data[] = { + 0xf0,0xc8,0x40,0xe0,0x40,0x50,0x30 +}; +static const GLUTBitmapChar ch163 = { 5, 7, 0, 0, 5, ch163data }; + +static const unsigned char ch164data[] = { + 0x88,0x70,0x50,0x50,0x70,0x88 +}; +static const GLUTBitmapChar ch164 = { 5, 6, 0, -1, 5, ch164data }; + +static const unsigned char ch165data[] = { + 0x70,0x20,0xf8,0x20,0xd8,0x50,0x88 +}; +static const GLUTBitmapChar ch165 = { 5, 7, 0, 0, 5, ch165data }; + +static const unsigned char ch166data[] = { + 0x80,0x80,0x80,0x0,0x80,0x80,0x80 +}; +static const GLUTBitmapChar ch166 = { 1, 7, 0, 0, 2, ch166data }; + +static const unsigned char ch167data[] = { + 0xe0,0x90,0x20,0x50,0x90,0xa0,0x40,0x90,0x70 +}; +static const GLUTBitmapChar ch167 = { 4, 9, 0, 1, 5, ch167data }; + +static const unsigned char ch168data[] = { + 0xa0 +}; +static const GLUTBitmapChar ch168 = { 3, 1, -1, -6, 5, ch168data }; + +static const unsigned char ch169data[] = { + 0x38,0x44,0x9a,0xa2,0x9a,0x44,0x38 +}; +static const GLUTBitmapChar ch169 = { 7, 7, -1, 0, 9, ch169data }; + +static const unsigned char ch170data[] = { + 0xe0,0x0,0xa0,0x20,0xc0 +}; +static const GLUTBitmapChar ch170 = { 3, 5, 0, -2, 4, ch170data }; + +static const unsigned char ch171data[] = { + 0x50,0xa0,0xa0,0x50 +}; +static const GLUTBitmapChar ch171 = { 4, 4, 0, -1, 5, ch171data }; + +static const unsigned char ch172data[] = { + 0x8,0x8,0xf8 +}; +static const GLUTBitmapChar ch172 = { 5, 3, -1, -1, 7, ch172data }; + +static const unsigned char ch173data[] = { + 0xe0 +}; +static const GLUTBitmapChar ch173 = { 3, 1, 0, -2, 4, ch173data }; + +static const unsigned char ch174data[] = { + 0x38,0x44,0xaa,0xb2,0xba,0x44,0x38 +}; +static const GLUTBitmapChar ch174 = { 7, 7, -1, 0, 9, ch174data }; + +static const unsigned char ch175data[] = { + 0xe0 +}; +static const GLUTBitmapChar ch175 = { 3, 1, 0, -6, 4, ch175data }; + +static const unsigned char ch176data[] = { + 0x60,0x90,0x90,0x60 +}; +static const GLUTBitmapChar ch176 = { 4, 4, 0, -3, 4, ch176data }; + +static const unsigned char ch177data[] = { + 0xf8,0x0,0x20,0x20,0xf8,0x20,0x20 +}; +static const GLUTBitmapChar ch177 = { 5, 7, 0, 0, 6, ch177data }; + +static const unsigned char ch178data[] = { + 0xe0,0x40,0xa0,0x60 +}; +static const GLUTBitmapChar ch178 = { 3, 4, 0, -3, 3, ch178data }; + +static const unsigned char ch179data[] = { + 0xc0,0x20,0x40,0xe0 +}; +static const GLUTBitmapChar ch179 = { 3, 4, 0, -3, 3, ch179data }; + +static const unsigned char ch180data[] = { + 0x80,0x40 +}; +static const GLUTBitmapChar ch180 = { 2, 2, 0, -5, 3, ch180data }; + +static const unsigned char ch181data[] = { + 0x80,0x80,0xe8,0x90,0x90,0x90,0x90 +}; +static const GLUTBitmapChar ch181 = { 5, 7, 0, 2, 5, ch181data }; + +static const unsigned char ch182data[] = { + 0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,0x7c +}; +static const GLUTBitmapChar ch182 = { 6, 9, 0, 2, 6, ch182data }; + +static const unsigned char ch183data[] = { + 0x80 +}; +static const GLUTBitmapChar ch183 = { 1, 1, 0, -2, 2, ch183data }; + +static const unsigned char ch184data[] = { + 0xc0,0x20,0x40 +}; +static const GLUTBitmapChar ch184 = { 3, 3, 0, 3, 4, ch184data }; + +static const unsigned char ch185data[] = { + 0xe0,0x40,0xc0,0x40 +}; +static const GLUTBitmapChar ch185 = { 3, 4, 0, -3, 3, ch185data }; + +static const unsigned char ch186data[] = { + 0xe0,0x0,0x40,0xa0,0x40 +}; +static const GLUTBitmapChar ch186 = { 3, 5, 0, -2, 4, ch186data }; + +static const unsigned char ch187data[] = { + 0xa0,0x50,0x50,0xa0 +}; +static const GLUTBitmapChar ch187 = { 4, 4, 0, -1, 5, ch187data }; + +static const unsigned char ch188data[] = { + 0x44,0x3e,0x2c,0xf4,0x48,0xc8,0x44 +}; +static const GLUTBitmapChar ch188 = { 7, 7, 0, 0, 8, ch188data }; + +static const unsigned char ch189data[] = { + 0x4e,0x24,0x2a,0xf6,0x48,0xc8,0x44 +}; +static const GLUTBitmapChar ch189 = { 7, 7, 0, 0, 8, ch189data }; + +static const unsigned char ch190data[] = { + 0x44,0x3e,0x2c,0xd4,0x28,0x48,0xe4 +}; +static const GLUTBitmapChar ch190 = { 7, 7, 0, 0, 8, ch190data }; + +static const unsigned char ch191data[] = { + 0xe0,0xa0,0x80,0x40,0x40,0x0,0x40 +}; +static const GLUTBitmapChar ch191 = { 3, 7, 0, 2, 4, ch191data }; + +static const unsigned char ch192data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch192 = { 7, 10, 0, 0, 8, ch192data }; + +static const unsigned char ch193data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch193 = { 7, 10, 0, 0, 8, ch193data }; + +static const unsigned char ch194data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch194 = { 7, 10, 0, 0, 8, ch194data }; + +static const unsigned char ch195data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28,0x14 +}; +static const GLUTBitmapChar ch195 = { 7, 10, 0, 0, 8, ch195data }; + +static const unsigned char ch196data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x0,0x28 +}; +static const GLUTBitmapChar ch196 = { 7, 9, 0, 0, 8, ch196data }; + +static const unsigned char ch197data[] = { + 0xee,0x44,0x7c,0x28,0x28,0x38,0x10,0x10,0x28,0x10 +}; +static const GLUTBitmapChar ch197 = { 7, 10, 0, 0, 8, ch197data }; + +static const unsigned char ch198data[] = { + 0xef,0x49,0x78,0x2e,0x28,0x39,0x1f +}; +static const GLUTBitmapChar ch198 = { 8, 7, 0, 0, 9, ch198data }; + +static const unsigned char ch199data[] = { + 0x60,0x10,0x20,0x78,0xc4,0x80,0x80,0x80,0xc4,0x7c +}; +static const GLUTBitmapChar ch199 = { 6, 10, 0, 3, 7, ch199data }; + +static const unsigned char ch200data[] = { + 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch200 = { 5, 10, 0, 0, 6, ch200data }; + +static const unsigned char ch201data[] = { + 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch201 = { 5, 10, 0, 0, 6, ch201data }; + +static const unsigned char ch202data[] = { + 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch202 = { 5, 10, 0, 0, 6, ch202data }; + +static const unsigned char ch203data[] = { + 0xf8,0x48,0x40,0x70,0x40,0x48,0xf8,0x0,0x50 +}; +static const GLUTBitmapChar ch203 = { 5, 9, 0, 0, 6, ch203data }; + +static const unsigned char ch204data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch204 = { 3, 10, 0, 0, 4, ch204data }; + +static const unsigned char ch205data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch205 = { 3, 10, 0, 0, 4, ch205data }; + +static const unsigned char ch206data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch206 = { 3, 10, 0, 0, 4, ch206data }; + +static const unsigned char ch207data[] = { + 0xe0,0x40,0x40,0x40,0x40,0x40,0xe0,0x0,0xa0 +}; +static const GLUTBitmapChar ch207 = { 3, 9, 0, 0, 4, ch207data }; + +static const unsigned char ch208data[] = { + 0xf8,0x4c,0x44,0xe4,0x44,0x4c,0xf8 +}; +static const GLUTBitmapChar ch208 = { 6, 7, 0, 0, 7, ch208data }; + +static const unsigned char ch209data[] = { + 0xe4,0x4c,0x4c,0x54,0x54,0x64,0xee,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch209 = { 7, 10, 0, 0, 8, ch209data }; + +static const unsigned char ch210data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch210 = { 6, 10, 0, 0, 7, ch210data }; + +static const unsigned char ch211data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch211 = { 6, 10, 0, 0, 7, ch211data }; + +static const unsigned char ch212data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch212 = { 6, 10, 0, 0, 7, ch212data }; + +static const unsigned char ch213data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50,0x28 +}; +static const GLUTBitmapChar ch213 = { 6, 10, 0, 0, 7, ch213data }; + +static const unsigned char ch214data[] = { + 0x78,0xcc,0x84,0x84,0x84,0xcc,0x78,0x0,0x50 +}; +static const GLUTBitmapChar ch214 = { 6, 9, 0, 0, 7, ch214data }; + +static const unsigned char ch215data[] = { + 0x88,0x50,0x20,0x50,0x88 +}; +static const GLUTBitmapChar ch215 = { 5, 5, 0, 0, 6, ch215data }; + +static const unsigned char ch216data[] = { + 0x80,0x7c,0x66,0x52,0x52,0x4a,0x66,0x3e,0x1 +}; +static const GLUTBitmapChar ch216 = { 8, 9, 0, 1, 8, ch216data }; + +static const unsigned char ch217data[] = { + 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x10,0x20 +}; +static const GLUTBitmapChar ch217 = { 7, 10, 0, 0, 8, ch217data }; + +static const unsigned char ch218data[] = { + 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch218 = { 7, 10, 0, 0, 8, ch218data }; + +static const unsigned char ch219data[] = { + 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x28,0x10 +}; +static const GLUTBitmapChar ch219 = { 7, 10, 0, 0, 8, ch219data }; + +static const unsigned char ch220data[] = { + 0x38,0x6c,0x44,0x44,0x44,0x44,0xee,0x0,0x28 +}; +static const GLUTBitmapChar ch220 = { 7, 9, 0, 0, 8, ch220data }; + +static const unsigned char ch221data[] = { + 0x38,0x10,0x10,0x28,0x28,0x44,0xee,0x0,0x10,0x8 +}; +static const GLUTBitmapChar ch221 = { 7, 10, 0, 0, 8, ch221data }; + +static const unsigned char ch222data[] = { + 0xe0,0x40,0x70,0x48,0x70,0x40,0xe0 +}; +static const GLUTBitmapChar ch222 = { 5, 7, 0, 0, 6, ch222data }; + +static const unsigned char ch223data[] = { + 0xe0,0x50,0x50,0x60,0x50,0x50,0x20 +}; +static const GLUTBitmapChar ch223 = { 4, 7, 0, 0, 5, ch223data }; + +static const unsigned char ch224data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch224 = { 3, 8, 0, 0, 4, ch224data }; + +static const unsigned char ch225data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch225 = { 3, 8, 0, 0, 4, ch225data }; + +static const unsigned char ch226data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch226 = { 3, 8, 0, 0, 4, ch226data }; + +static const unsigned char ch227data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0,0x50 +}; +static const GLUTBitmapChar ch227 = { 4, 8, 0, 0, 4, ch227data }; + +static const unsigned char ch228data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x0,0xa0 +}; +static const GLUTBitmapChar ch228 = { 3, 7, 0, 0, 4, ch228data }; + +static const unsigned char ch229data[] = { + 0xe0,0xa0,0x60,0x20,0xc0,0x40,0xa0,0x40 +}; +static const GLUTBitmapChar ch229 = { 3, 8, 0, 0, 4, ch229data }; + +static const unsigned char ch230data[] = { + 0xd8,0xa0,0x70,0x28,0xd8 +}; +static const GLUTBitmapChar ch230 = { 5, 5, 0, 0, 6, ch230data }; + +static const unsigned char ch231data[] = { + 0xc0,0x20,0x40,0x60,0x80,0x80,0x80,0x60 +}; +static const GLUTBitmapChar ch231 = { 3, 8, 0, 3, 4, ch231data }; + +static const unsigned char ch232data[] = { + 0x60,0x80,0xc0,0xa0,0x60,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch232 = { 3, 8, 0, 0, 4, ch232data }; + +static const unsigned char ch233data[] = { + 0x60,0x80,0xc0,0xa0,0x60,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch233 = { 3, 8, 0, 0, 4, ch233data }; + +static const unsigned char ch234data[] = { + 0x60,0x80,0xc0,0xa0,0x60,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch234 = { 3, 8, 0, 0, 4, ch234data }; + +static const unsigned char ch235data[] = { + 0x60,0x80,0xc0,0xa0,0x60,0x0,0xa0 +}; +static const GLUTBitmapChar ch235 = { 3, 7, 0, 0, 4, ch235data }; + +static const unsigned char ch236data[] = { + 0xe0,0x40,0x40,0x40,0xc0,0x0,0x40,0x80 +}; +static const GLUTBitmapChar ch236 = { 3, 8, 0, 0, 4, ch236data }; + +static const unsigned char ch237data[] = { + 0xe0,0x40,0x40,0x40,0xc0,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch237 = { 3, 8, 0, 0, 4, ch237data }; + +static const unsigned char ch238data[] = { + 0xe0,0x40,0x40,0x40,0xc0,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch238 = { 3, 8, 0, 0, 4, ch238data }; + +static const unsigned char ch239data[] = { + 0xe0,0x40,0x40,0x40,0xc0,0x0,0xa0 +}; +static const GLUTBitmapChar ch239 = { 3, 7, 0, 0, 4, ch239data }; + +static const unsigned char ch240data[] = { + 0x60,0x90,0x90,0x90,0x70,0xa0,0x70,0x40 +}; +static const GLUTBitmapChar ch240 = { 4, 8, 0, 0, 5, ch240data }; + +static const unsigned char ch241data[] = { + 0xd8,0x90,0x90,0x90,0xe0,0x0,0xa0,0x50 +}; +static const GLUTBitmapChar ch241 = { 5, 8, 0, 0, 5, ch241data }; + +static const unsigned char ch242data[] = { + 0x60,0x90,0x90,0x90,0x60,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch242 = { 4, 8, 0, 0, 5, ch242data }; + +static const unsigned char ch243data[] = { + 0x60,0x90,0x90,0x90,0x60,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch243 = { 4, 8, 0, 0, 5, ch243data }; + +static const unsigned char ch244data[] = { + 0x60,0x90,0x90,0x90,0x60,0x0,0xa0,0x40 +}; +static const GLUTBitmapChar ch244 = { 4, 8, 0, 0, 5, ch244data }; + +static const unsigned char ch245data[] = { + 0x60,0x90,0x90,0x90,0x60,0x0,0xa0,0x50 +}; +static const GLUTBitmapChar ch245 = { 4, 8, 0, 0, 5, ch245data }; + +static const unsigned char ch246data[] = { + 0x60,0x90,0x90,0x90,0x60,0x0,0xa0 +}; +static const GLUTBitmapChar ch246 = { 4, 7, 0, 0, 5, ch246data }; + +static const unsigned char ch247data[] = { + 0x20,0x0,0xf8,0x0,0x20 +}; +static const GLUTBitmapChar ch247 = { 5, 5, 0, 0, 6, ch247data }; + +static const unsigned char ch248data[] = { + 0x80,0x70,0x48,0x48,0x48,0x38,0x4 +}; +static const GLUTBitmapChar ch248 = { 6, 7, 1, 1, 5, ch248data }; + +static const unsigned char ch249data[] = { + 0x68,0x90,0x90,0x90,0x90,0x0,0x20,0x40 +}; +static const GLUTBitmapChar ch249 = { 5, 8, 0, 0, 5, ch249data }; + +static const unsigned char ch250data[] = { + 0x68,0x90,0x90,0x90,0x90,0x0,0x40,0x20 +}; +static const GLUTBitmapChar ch250 = { 5, 8, 0, 0, 5, ch250data }; + +static const unsigned char ch251data[] = { + 0x68,0x90,0x90,0x90,0x90,0x0,0x50,0x20 +}; +static const GLUTBitmapChar ch251 = { 5, 8, 0, 0, 5, ch251data }; + +static const unsigned char ch252data[] = { + 0x68,0x90,0x90,0x90,0x90,0x0,0x50 +}; +static const GLUTBitmapChar ch252 = { 5, 7, 0, 0, 5, ch252data }; + +static const unsigned char ch253data[] = { + 0x80,0xc0,0x40,0x60,0xa0,0x90,0xb8,0x0,0x20,0x10 +}; +static const GLUTBitmapChar ch253 = { 5, 10, 0, 2, 5, ch253data }; + +static const unsigned char ch254data[] = { + 0xc0,0x80,0xe0,0x90,0x90,0x90,0xe0,0x80,0x80 +}; +static const GLUTBitmapChar ch254 = { 4, 9, 0, 2, 5, ch254data }; + +static const unsigned char ch255data[] = { + 0x80,0xc0,0x40,0x60,0xa0,0x90,0xb8,0x0,0xa0 +}; +static const GLUTBitmapChar ch255 = { 5, 9, 0, 2, 5, ch255data }; + + +static const GLUTBitmapChar *chars[] = { + 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, + &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, 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, 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 GLUTBitmapFont glutBitmapTimesRoman10 = { + "-Adobe-Times-Medium-R-Normal--10-100-75-75-P-54-ISO8859-1", + 13, 256, chars +}; diff --git a/src/glut/dos/tr24.c b/src/glut/dos/tr24.c new file mode 100644 index 00000000000..2dd2a78c831 --- /dev/null +++ b/src/glut/dos/tr24.c @@ -0,0 +1,1301 @@ +/* autogenerated by bdf2c! do not edit */ + +/* "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved." */ + + +#include "internal.h" +/* +typedef struct { + int width, height; + int xorig, yorig; + int xmove; + const unsigned char *bitmap; +} GLUTBitmapChar; + +typedef struct { + const char *name; + int height; + int num; + const GLUTBitmapChar *const *table; +} GLUTBitmapFont; +*/ + + +static const unsigned char ch32data[] = { + 0x0 +}; +static const GLUTBitmapChar ch32 = { 1, 1, 0, 0, 6, ch32data }; + +static const unsigned char ch33data[] = { + 0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch33 = { 2, 17, -3, 0, 8, ch33data }; + +static const unsigned char ch34data[] = { + 0x88,0xcc,0xcc,0xcc,0xcc +}; +static const GLUTBitmapChar ch34 = { 6, 5, -1, -12, 10, ch34data }; + +static const unsigned char ch35data[] = { + 0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0x22,0x0,0xff,0xc0,0xff,0xc0,0x11,0x0, + 0x11,0x0,0x11,0x0,0x7f,0xe0,0x7f,0xe0,0x8,0x80,0x8,0x80,0x8,0x80,0x8,0x80, + 0x8,0x80 +}; +static const GLUTBitmapChar ch35 = { 11, 17, -1, 0, 13, ch35data }; + +static const unsigned char ch36data[] = { + 0x4,0x0,0x4,0x0,0x3f,0x0,0xe5,0xc0,0xc4,0xc0,0x84,0x60,0x84,0x60,0x4,0x60, + 0x4,0xe0,0x7,0xc0,0x7,0x80,0x1e,0x0,0x3c,0x0,0x74,0x0,0x64,0x0,0x64,0x20, + 0x64,0x60,0x34,0xe0,0x1f,0x80,0x4,0x0,0x4,0x0 +}; +static const GLUTBitmapChar ch36 = { 11, 21, 0, 2, 12, ch36data }; + +static const unsigned char ch37data[] = { + 0x30,0x3c,0x0,0x18,0x72,0x0,0xc,0x61,0x0,0x4,0x60,0x80,0x6,0x60,0x80,0x3, + 0x30,0x80,0x1,0x19,0x80,0x1,0x8f,0x0,0x78,0xc0,0x0,0xe4,0x40,0x0,0xc2,0x60, + 0x0,0xc1,0x30,0x0,0xc1,0x10,0x0,0x61,0x18,0x0,0x33,0xfc,0x0,0x1e,0xc,0x0 +}; +static const GLUTBitmapChar ch37 = { 17, 16, -1, 0, 19, ch37data }; + +static const unsigned char ch38data[] = { + 0x3c,0x3c,0x7f,0x7e,0xe1,0xe1,0xc0,0xc0,0xc1,0xc0,0xc1,0xa0,0x63,0x20,0x37,0x10, + 0x1e,0x18,0xe,0x3e,0xf,0x0,0x1d,0x80,0x18,0xc0,0x18,0x40,0x18,0x40,0xc,0xc0, + 0x7,0x80 +}; +static const GLUTBitmapChar ch38 = { 16, 17, -1, 0, 18, ch38data }; + +static const unsigned char ch39data[] = { + 0xc0,0x60,0x20,0xe0,0xc0 +}; +static const GLUTBitmapChar ch39 = { 3, 5, -3, -12, 8, ch39data }; + +static const unsigned char ch40data[] = { + 0x4,0x8,0x10,0x30,0x20,0x60,0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x60, + 0x60,0x20,0x30,0x10,0x8,0x4 +}; +static const GLUTBitmapChar ch40 = { 6, 22, -1, 5, 8, ch40data }; + +static const unsigned char ch41data[] = { + 0x80,0x40,0x20,0x30,0x10,0x18,0x18,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x18, + 0x18,0x10,0x30,0x20,0x40,0x80 +}; +static const GLUTBitmapChar ch41 = { 6, 22, -1, 5, 8, ch41data }; + +static const unsigned char ch42data[] = { + 0x8,0x0,0x1c,0x0,0xc9,0x80,0xeb,0x80,0x1c,0x0,0xeb,0x80,0xc9,0x80,0x1c,0x0, + 0x8,0x0 +}; +static const GLUTBitmapChar ch42 = { 9, 9, -2, -8, 12, ch42data }; + +static const unsigned char ch43data[] = { + 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0xff,0xf0,0xff,0xf0,0x6,0x0, + 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch43 = { 12, 12, -1, -1, 14, ch43data }; + +static const unsigned char ch44data[] = { + 0xc0,0x60,0x20,0xe0,0xc0 +}; +static const GLUTBitmapChar ch44 = { 3, 5, -2, 3, 7, ch44data }; + +static const unsigned char ch45data[] = { + 0xff,0xf0,0xff,0xf0 +}; +static const GLUTBitmapChar ch45 = { 12, 2, -1, -6, 14, ch45data }; + +static const unsigned char ch46data[] = { + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch46 = { 2, 2, -2, 0, 6, ch46data }; + +static const unsigned char ch47data[] = { + 0xc0,0xc0,0xc0,0x60,0x60,0x20,0x30,0x30,0x10,0x18,0x18,0x8,0xc,0xc,0x4,0x6, + 0x6,0x3,0x3,0x3 +}; +static const GLUTBitmapChar ch47 = { 8, 20, 1, 3, 7, ch47data }; + +static const unsigned char ch48data[] = { + 0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0xe1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x61,0x80,0x61,0x80,0x33,0x0, + 0x1e,0x0 +}; +static const GLUTBitmapChar ch48 = { 10, 17, -1, 0, 12, ch48data }; + +static const unsigned char ch49data[] = { + 0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x18, + 0x8 +}; +static const GLUTBitmapChar ch49 = { 8, 17, -2, 0, 12, ch49data }; + +static const unsigned char ch50data[] = { + 0xff,0x80,0xff,0xc0,0x60,0x40,0x30,0x0,0x18,0x0,0xc,0x0,0x4,0x0,0x6,0x0, + 0x3,0x0,0x3,0x0,0x1,0x80,0x1,0x80,0x81,0x80,0x81,0x80,0x43,0x80,0x7f,0x0, + 0x1c,0x0 +}; +static const GLUTBitmapChar ch50 = { 10, 17, -1, 0, 12, ch50data }; + +static const unsigned char ch51data[] = { + 0x78,0x0,0xe6,0x0,0xc3,0x0,0x1,0x0,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0x80, + 0x7,0x0,0x1e,0x0,0xc,0x0,0x6,0x0,0x83,0x0,0x83,0x0,0x47,0x0,0x7e,0x0, + 0x1c,0x0 +}; +static const GLUTBitmapChar ch51 = { 9, 17, -1, 0, 12, ch51data }; + +static const unsigned char ch52data[] = { + 0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0xff,0xc0,0xff,0xc0,0xc3,0x0,0x43,0x0, + 0x63,0x0,0x23,0x0,0x33,0x0,0x13,0x0,0x1b,0x0,0xb,0x0,0x7,0x0,0x7,0x0, + 0x3,0x0 +}; +static const GLUTBitmapChar ch52 = { 10, 17, -1, 0, 12, ch52data }; + +static const unsigned char ch53data[] = { + 0x7e,0x0,0xe3,0x80,0xc1,0x80,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x1,0xc0, + 0x3,0x80,0xf,0x80,0x7e,0x0,0x78,0x0,0x60,0x0,0x20,0x0,0x20,0x0,0x1f,0x80, + 0x1f,0xc0 +}; +static const GLUTBitmapChar ch53 = { 10, 17, -1, 0, 12, ch53data }; + +static const unsigned char ch54data[] = { + 0x1e,0x0,0x7b,0x80,0x61,0x80,0xe0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc1,0x80,0xf3,0x80,0xee,0x0,0x60,0x0,0x70,0x0,0x30,0x0,0x18,0x0,0xe,0x0, + 0x3,0xc0 +}; +static const GLUTBitmapChar ch54 = { 10, 17, -1, 0, 12, ch54data }; + +static const unsigned char ch55data[] = { + 0x18,0x0,0x18,0x0,0xc,0x0,0xc,0x0,0xc,0x0,0x4,0x0,0x6,0x0,0x6,0x0, + 0x2,0x0,0x3,0x0,0x3,0x0,0x1,0x0,0x1,0x80,0x81,0x80,0xc0,0xc0,0xff,0xc0, + 0x7f,0xc0 +}; +static const GLUTBitmapChar ch55 = { 10, 17, -1, 0, 12, ch55data }; + +static const unsigned char ch56data[] = { + 0x1e,0x0,0x73,0x80,0xe1,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x41,0xc0,0x61,0x80, + 0x37,0x0,0x1e,0x0,0x1e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, + 0x1e,0x0 +}; +static const GLUTBitmapChar ch56 = { 10, 17, -1, 0, 12, ch56data }; + +static const unsigned char ch57data[] = { + 0xf0,0x0,0x1c,0x0,0x6,0x0,0x3,0x0,0x3,0x80,0x1,0x80,0x1d,0x80,0x73,0xc0, + 0x61,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0x61,0x80,0x77,0x80, + 0x1e,0x0 +}; +static const GLUTBitmapChar ch57 = { 10, 17, -1, 0, 12, ch57data }; + +static const unsigned char ch58data[] = { + 0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch58 = { 2, 11, -2, 0, 6, ch58data }; + +static const unsigned char ch59data[] = { + 0xc0,0x60,0x20,0xe0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0 +}; +static const GLUTBitmapChar ch59 = { 3, 14, -2, 3, 7, ch59data }; + +static const unsigned char ch60data[] = { + 0x0,0x60,0x1,0xc0,0x7,0x0,0x1c,0x0,0x70,0x0,0xc0,0x0,0x70,0x0,0x1c,0x0, + 0x7,0x0,0x1,0xc0,0x0,0x60 +}; +static const GLUTBitmapChar ch60 = { 11, 11, -1, -1, 13, ch60data }; + +static const unsigned char ch61data[] = { + 0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0 +}; +static const GLUTBitmapChar ch61 = { 12, 6, -1, -4, 14, ch61data }; + +static const unsigned char ch62data[] = { + 0xc0,0x0,0x70,0x0,0x1c,0x0,0x7,0x0,0x1,0xc0,0x0,0x60,0x1,0xc0,0x7,0x0, + 0x1c,0x0,0x70,0x0,0xc0,0x0 +}; +static const GLUTBitmapChar ch62 = { 11, 11, -1, -1, 13, ch62data }; + +static const unsigned char ch63data[] = { + 0x30,0x30,0x0,0x0,0x10,0x10,0x10,0x18,0x18,0xc,0xe,0x7,0xc3,0xc3,0x83,0xc6, + 0x7c +}; +static const GLUTBitmapChar ch63 = { 8, 17, -2, 0, 11, ch63data }; + +static const unsigned char ch64data[] = { + 0x3,0xf0,0x0,0xe,0xc,0x0,0x18,0x0,0x0,0x30,0x0,0x0,0x61,0xde,0x0,0x63, + 0x7b,0x0,0xc6,0x39,0x80,0xc6,0x18,0x80,0xc6,0x18,0xc0,0xc6,0x18,0x40,0xc6,0xc, + 0x40,0xc3,0xc,0x40,0xc3,0x8c,0x40,0xe1,0xfc,0x40,0x60,0xec,0xc0,0x70,0x0,0x80, + 0x38,0x1,0x80,0x1c,0x3,0x0,0xf,0xe,0x0,0x3,0xf8,0x0 +}; +static const GLUTBitmapChar ch64 = { 18, 20, -2, 3, 22, ch64data }; + +static const unsigned char ch65data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0 +}; +static const GLUTBitmapChar ch65 = { 17, 17, 0, 0, 17, ch65data }; + +static const unsigned char ch66data[] = { + 0xff,0xe0,0x30,0x78,0x30,0x18,0x30,0xc,0x30,0xc,0x30,0xc,0x30,0x18,0x30,0x38, + 0x3f,0xe0,0x30,0x40,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, + 0xff,0xc0 +}; +static const GLUTBitmapChar ch66 = { 14, 17, -1, 0, 16, ch66data }; + +static const unsigned char ch67data[] = { + 0x7,0xe0,0x1e,0x38,0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, + 0x7,0xe4 +}; +static const GLUTBitmapChar ch67 = { 14, 17, -1, 0, 16, ch67data }; + +static const unsigned char ch68data[] = { + 0xff,0xc0,0x30,0x70,0x30,0x38,0x30,0xc,0x30,0xc,0x30,0x6,0x30,0x6,0x30,0x6, + 0x30,0x6,0x30,0x6,0x30,0x6,0x30,0x6,0x30,0xc,0x30,0xc,0x30,0x38,0x30,0x70, + 0xff,0xc0 +}; +static const GLUTBitmapChar ch68 = { 15, 17, -1, 0, 17, ch68data }; + +static const unsigned char ch69data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, + 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0 +}; +static const GLUTBitmapChar ch69 = { 13, 17, -1, 0, 15, ch69data }; + +static const unsigned char ch70data[] = { + 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x20,0x30,0x20, + 0x3f,0xe0,0x30,0x20,0x30,0x20,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0 +}; +static const GLUTBitmapChar ch70 = { 12, 17, -1, 0, 14, ch70data }; + +static const unsigned char ch71data[] = { + 0x7,0xe0,0x1e,0x38,0x38,0x1c,0x60,0xc,0x60,0xc,0xc0,0xc,0xc0,0xc,0xc0,0x3f, + 0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c, + 0x7,0xe4 +}; +static const GLUTBitmapChar ch71 = { 16, 17, -1, 0, 18, ch71data }; + +static const unsigned char ch72data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30, + 0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x3f,0xfe,0x0,0x30,0x6,0x0,0x30,0x6, + 0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0,0x30,0x6,0x0, + 0xfc,0x1f,0x80 +}; +static const GLUTBitmapChar ch72 = { 17, 17, -1, 0, 19, ch72data }; + +static const unsigned char ch73data[] = { + 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0xfc +}; +static const GLUTBitmapChar ch73 = { 6, 17, -1, 0, 8, ch73data }; + +static const unsigned char ch74data[] = { + 0x78,0x0,0xcc,0x0,0xc6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, + 0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, + 0x1f,0x80 +}; +static const GLUTBitmapChar ch74 = { 9, 17, -1, 0, 11, ch74data }; + +static const unsigned char ch75data[] = { + 0xfc,0x1f,0x30,0xe,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0xe0,0x31,0xc0,0x33,0x80, + 0x3f,0x0,0x3e,0x0,0x33,0x0,0x31,0x80,0x30,0xc0,0x30,0x60,0x30,0x30,0x30,0x18, + 0xfc,0x7e +}; +static const GLUTBitmapChar ch75 = { 16, 17, -1, 0, 17, ch75data }; + +static const unsigned char ch76data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, + 0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, + 0xfc,0x0 +}; +static const GLUTBitmapChar ch76 = { 13, 17, -1, 0, 14, ch76data }; + +static const unsigned char ch77data[] = { + 0xf8,0x21,0xf8,0x20,0x60,0x60,0x20,0x60,0x60,0x20,0xd0,0x60,0x20,0xd0,0x60,0x21, + 0x88,0x60,0x21,0x88,0x60,0x23,0x8,0x60,0x23,0x4,0x60,0x26,0x4,0x60,0x26,0x2, + 0x60,0x2c,0x2,0x60,0x2c,0x2,0x60,0x38,0x1,0x60,0x38,0x1,0x60,0x30,0x0,0xe0, + 0xf0,0x0,0xf8 +}; +static const GLUTBitmapChar ch77 = { 21, 17, -1, 0, 22, ch77data }; + +static const unsigned char ch78data[] = { + 0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, + 0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, + 0xf0,0x1f +}; +static const GLUTBitmapChar ch78 = { 16, 17, -1, 0, 18, ch78data }; + +static const unsigned char ch79data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0 +}; +static const GLUTBitmapChar ch79 = { 16, 17, -1, 0, 18, ch79data }; + +static const unsigned char ch80data[] = { + 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, + 0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70, + 0xff,0xc0 +}; +static const GLUTBitmapChar ch80 = { 13, 17, -1, 0, 15, ch80data }; + +static const unsigned char ch81data[] = { + 0x0,0xf,0x0,0x38,0x0,0x70,0x0,0xe0,0x1,0xc0,0x7,0xe0,0x1c,0x38,0x38,0x1c, + 0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38,0x7,0xe0 +}; +static const GLUTBitmapChar ch81 = { 16, 22, -1, 5, 18, ch81data }; + +static const unsigned char ch82data[] = { + 0xfc,0x1e,0x30,0x1c,0x30,0x38,0x30,0x70,0x30,0x60,0x30,0xc0,0x31,0xc0,0x33,0x80, + 0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x38,0x30,0x18,0x30,0x38,0x30,0x30,0x30,0x70, + 0xff,0xc0 +}; +static const GLUTBitmapChar ch82 = { 15, 17, -1, 0, 16, ch82data }; + +static const unsigned char ch83data[] = { + 0x9e,0x0,0xf1,0x80,0xc0,0xc0,0x80,0x60,0x80,0x60,0x0,0x60,0x0,0xe0,0x3,0xc0, + 0xf,0x80,0x1e,0x0,0x78,0x0,0xe0,0x0,0xc0,0x40,0xc0,0x40,0xc0,0xc0,0x63,0xc0, + 0x1e,0x40 +}; +static const GLUTBitmapChar ch83 = { 11, 17, -1, 0, 13, ch83data }; + +static const unsigned char ch84data[] = { + 0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0, + 0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x83,0x4,0x83,0x4,0xc3,0xc, + 0xff,0xfc +}; +static const GLUTBitmapChar ch84 = { 14, 17, -1, 0, 16, ch84data }; + +static const unsigned char ch85data[] = { + 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0xfc,0x1f +}; +static const GLUTBitmapChar ch85 = { 16, 17, -1, 0, 18, ch85data }; + +static const unsigned char ch86data[] = { + 0x1,0x80,0x0,0x1,0x80,0x0,0x1,0x80,0x0,0x3,0xc0,0x0,0x3,0x40,0x0,0x3, + 0x60,0x0,0x6,0x20,0x0,0x6,0x20,0x0,0x6,0x30,0x0,0xc,0x10,0x0,0xc,0x18, + 0x0,0x18,0x8,0x0,0x18,0x8,0x0,0x18,0xc,0x0,0x30,0x4,0x0,0x30,0x6,0x0, + 0xfc,0x1f,0x80 +}; +static const GLUTBitmapChar ch86 = { 17, 17, 0, 0, 17, ch86data }; + +static const unsigned char ch87data[] = { + 0x1,0x83,0x0,0x1,0x83,0x0,0x1,0x83,0x80,0x3,0x87,0x80,0x3,0x46,0x80,0x3, + 0x46,0xc0,0x6,0x46,0x40,0x6,0x4c,0x40,0x6,0x4c,0x60,0xc,0x2c,0x60,0xc,0x2c, + 0x20,0x18,0x2c,0x20,0x18,0x18,0x30,0x18,0x18,0x10,0x30,0x18,0x10,0x30,0x18,0x18, + 0xfc,0x7e,0x7e +}; +static const GLUTBitmapChar ch87 = { 23, 17, 0, 0, 23, ch87data }; + +static const unsigned char ch88data[] = { + 0xfc,0xf,0xc0,0x30,0x3,0x80,0x18,0x7,0x0,0x8,0xe,0x0,0x4,0xc,0x0,0x6, + 0x18,0x0,0x2,0x38,0x0,0x1,0x70,0x0,0x0,0xe0,0x0,0x0,0xc0,0x0,0x1,0xc0, + 0x0,0x3,0xa0,0x0,0x3,0x10,0x0,0x6,0x8,0x0,0xe,0xc,0x0,0x1c,0x6,0x0, + 0x7e,0xf,0x80 +}; +static const GLUTBitmapChar ch88 = { 18, 17, 0, 0, 18, ch88data }; + +static const unsigned char ch89data[] = { + 0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, + 0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, + 0xfc,0x3f +}; +static const GLUTBitmapChar ch89 = { 16, 17, 0, 0, 16, ch89data }; + +static const unsigned char ch90data[] = { + 0xff,0xf8,0xe0,0x18,0x70,0x8,0x30,0x8,0x38,0x0,0x18,0x0,0x1c,0x0,0xe,0x0, + 0x6,0x0,0x7,0x0,0x3,0x0,0x3,0x80,0x1,0xc0,0x80,0xc0,0x80,0xe0,0xc0,0x70, + 0xff,0xf0 +}; +static const GLUTBitmapChar ch90 = { 13, 17, -1, 0, 15, ch90data }; + +static const unsigned char ch91data[] = { + 0xf8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0xc0,0xc0,0xf8 +}; +static const GLUTBitmapChar ch91 = { 5, 21, -2, 4, 8, ch91data }; + +static const unsigned char ch92data[] = { + 0x6,0x6,0x4,0xc,0xc,0x8,0x18,0x18,0x10,0x30,0x30,0x20,0x60,0x60,0x40,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch92 = { 7, 17, 0, 0, 7, ch92data }; + +static const unsigned char ch93data[] = { + 0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x18,0x18,0x18,0x18,0xf8 +}; +static const GLUTBitmapChar ch93 = { 5, 21, -1, 4, 8, ch93data }; + +static const unsigned char ch94data[] = { + 0x80,0x80,0xc1,0x80,0x41,0x0,0x63,0x0,0x22,0x0,0x36,0x0,0x14,0x0,0x1c,0x0, + 0x8,0x0 +}; +static const GLUTBitmapChar ch94 = { 9, 9, -1, -8, 11, ch94data }; + +static const unsigned char ch95data[] = { + 0xff,0xf8,0xff,0xf8 +}; +static const GLUTBitmapChar ch95 = { 13, 2, 0, 5, 13, ch95data }; + +static const unsigned char ch96data[] = { + 0x60,0xe0,0x80,0xc0,0x60 +}; +static const GLUTBitmapChar ch96 = { 3, 5, -2, -12, 7, ch96data }; + +static const unsigned char ch97data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0 +}; +static const GLUTBitmapChar ch97 = { 9, 12, -1, 0, 11, ch97data }; + +static const unsigned char ch98data[] = { + 0x5e,0x0,0x73,0x80,0x61,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x61,0x80,0x73,0x80,0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, + 0xe0,0x0 +}; +static const GLUTBitmapChar ch98 = { 10, 17, -1, 0, 12, ch98data }; + +static const unsigned char ch99data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, + 0xc0,0x0,0x41,0x80,0x63,0x80,0x1f,0x0 +}; +static const GLUTBitmapChar ch99 = { 9, 12, -1, 0, 11, ch99data }; + +static const unsigned char ch100data[] = { + 0x1e,0xc0,0x73,0x80,0x61,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80, + 0xc1,0x80,0x61,0x80,0x73,0x80,0x1d,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80, + 0x3,0x80 +}; +static const GLUTBitmapChar ch100 = { 10, 17, -1, 0, 12, ch100data }; + +static const unsigned char ch101data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, + 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0 +}; +static const GLUTBitmapChar ch101 = { 9, 12, -1, 0, 11, ch101data }; + +static const unsigned char ch102data[] = { + 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x30,0x30,0x30,0x16, + 0xe +}; +static const GLUTBitmapChar ch102 = { 7, 17, 0, 0, 7, ch102data }; + +static const unsigned char ch103data[] = { + 0x3f,0x0,0xf1,0xc0,0xc0,0x60,0xc0,0x20,0x60,0x60,0x3f,0xc0,0x7f,0x0,0x60,0x0, + 0x30,0x0,0x3e,0x0,0x33,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, + 0x1f,0xc0 +}; +static const GLUTBitmapChar ch103 = { 11, 17, -1, 5, 12, ch103data }; + +static const unsigned char ch104data[] = { + 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x71,0xc0,0x6f,0x80,0x67,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, + 0xe0,0x0 +}; +static const GLUTBitmapChar ch104 = { 11, 17, -1, 0, 13, ch104data }; + +static const unsigned char ch105data[] = { + 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x0,0x0,0x60, + 0x60 +}; +static const GLUTBitmapChar ch105 = { 4, 17, -1, 0, 6, ch105data }; + +static const unsigned char ch106data[] = { + 0xc0,0xe0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x70,0x0,0x0,0x0,0x30,0x30 +}; +static const GLUTBitmapChar ch106 = { 4, 22, 0, 5, 6, ch106data }; + +static const unsigned char ch107data[] = { + 0xf3,0xe0,0x61,0xc0,0x63,0x80,0x67,0x0,0x6e,0x0,0x6c,0x0,0x78,0x0,0x68,0x0, + 0x64,0x0,0x66,0x0,0x63,0x0,0x67,0xc0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0, + 0xe0,0x0 +}; +static const GLUTBitmapChar ch107 = { 11, 17, -1, 0, 12, ch107data }; + +static const unsigned char ch108data[] = { + 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, + 0xe0 +}; +static const GLUTBitmapChar ch108 = { 4, 17, -1, 0, 6, ch108data }; + +static const unsigned char ch109data[] = { + 0xf1,0xe3,0xc0,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60, + 0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x60,0xc1,0x80,0x71,0xe3,0x80,0x6f,0x9f, + 0x0,0xe7,0xe,0x0 +}; +static const GLUTBitmapChar ch109 = { 18, 12, -1, 0, 20, ch109data }; + +static const unsigned char ch110data[] = { + 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0 +}; +static const GLUTBitmapChar ch110 = { 11, 12, -1, 0, 13, ch110data }; + +static const unsigned char ch111data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0 +}; +static const GLUTBitmapChar ch111 = { 10, 12, -1, 0, 12, ch111data }; + +static const unsigned char ch112data[] = { + 0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, + 0xee,0x0 +}; +static const GLUTBitmapChar ch112 = { 10, 17, -1, 5, 12, ch112data }; + +static const unsigned char ch113data[] = { + 0x3,0xc0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1d,0x80,0x73,0x80,0x61,0x80, + 0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x61,0x80,0x73,0x80, + 0x1d,0x80 +}; +static const GLUTBitmapChar ch113 = { 10, 17, -1, 5, 12, ch113data }; + +static const unsigned char ch114data[] = { + 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x76,0x6e,0xe6 +}; +static const GLUTBitmapChar ch114 = { 7, 12, -1, 0, 8, ch114data }; + +static const unsigned char ch115data[] = { + 0xf8,0xc6,0x83,0x3,0x7,0x1e,0x7c,0x70,0xe0,0xc2,0x66,0x3e +}; +static const GLUTBitmapChar ch115 = { 8, 12, -1, 0, 10, ch115data }; + +static const unsigned char ch116data[] = { + 0x1c,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xfe,0x70,0x30,0x10 +}; +static const GLUTBitmapChar ch116 = { 7, 15, 0, 0, 7, ch116data }; + +static const unsigned char ch117data[] = { + 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0 +}; +static const GLUTBitmapChar ch117 = { 11, 12, -1, 0, 13, ch117data }; + +static const unsigned char ch118data[] = { + 0x4,0x0,0xe,0x0,0xe,0x0,0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80, + 0x30,0x80,0x60,0x80,0x60,0xc0,0xf1,0xe0 +}; +static const GLUTBitmapChar ch118 = { 11, 12, 0, 0, 11, ch118data }; + +static const unsigned char ch119data[] = { + 0x4,0x10,0x0,0xe,0x38,0x0,0xe,0x38,0x0,0x1a,0x28,0x0,0x1a,0x64,0x0,0x19, + 0x64,0x0,0x31,0x64,0x0,0x30,0xc2,0x0,0x30,0xc2,0x0,0x60,0xc2,0x0,0x60,0xc3, + 0x0,0xf1,0xe7,0x80 +}; +static const GLUTBitmapChar ch119 = { 17, 12, 0, 0, 17, ch119data }; + +static const unsigned char ch120data[] = { + 0xf1,0xe0,0x60,0xc0,0x21,0x80,0x33,0x80,0x1b,0x0,0xe,0x0,0xc,0x0,0x1a,0x0, + 0x39,0x0,0x31,0x80,0x60,0xc0,0xf1,0xe0 +}; +static const GLUTBitmapChar ch120 = { 11, 12, -1, 0, 13, ch120data }; + +static const unsigned char ch121data[] = { + 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, + 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, + 0xf1,0xe0 +}; +static const GLUTBitmapChar ch121 = { 11, 17, 0, 5, 11, ch121data }; + +static const unsigned char ch122data[] = { + 0xff,0xc3,0x61,0x70,0x30,0x38,0x18,0x1c,0xe,0x86,0xc3,0xff +}; +static const GLUTBitmapChar ch122 = { 8, 12, -1, 0, 10, ch122data }; + +static const unsigned char ch123data[] = { + 0x7,0xc,0x18,0x18,0x18,0x18,0x18,0x18,0x10,0x30,0x20,0xc0,0x20,0x30,0x10,0x18, + 0x18,0x18,0x18,0x18,0xc,0x7 +}; +static const GLUTBitmapChar ch123 = { 8, 22, -1, 5, 10, ch123data }; + +static const unsigned char ch124data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch124 = { 2, 17, -2, 0, 6, ch124data }; + +static const unsigned char ch125data[] = { + 0xe0,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x8,0xc,0x4,0x3,0x4,0xc,0x8,0x18, + 0x18,0x18,0x18,0x18,0x30,0xe0 +}; +static const GLUTBitmapChar ch125 = { 8, 22, -1, 5, 10, ch125data }; + +static const unsigned char ch126data[] = { + 0x83,0x80,0xc7,0xc0,0x7c,0x60,0x38,0x20 +}; +static const GLUTBitmapChar ch126 = { 11, 4, -1, -5, 13, ch126data }; + +static const unsigned char ch160data[] = { + 0x0 +}; +static const GLUTBitmapChar ch160 = { 1, 1, 0, 0, 6, ch160data }; + +static const unsigned char ch161data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch161 = { 2, 17, -4, 5, 8, ch161data }; + +static const unsigned char ch162data[] = { + 0x40,0x0,0x40,0x0,0x3e,0x0,0x7f,0x0,0x70,0x80,0xd0,0x0,0xc8,0x0,0xc8,0x0, + 0xc8,0x0,0xc4,0x0,0xc4,0x0,0x43,0x80,0x63,0x80,0x1f,0x0,0x1,0x0,0x1,0x0 +}; +static const GLUTBitmapChar ch162 = { 9, 16, -1, 2, 12, ch162data }; + +static const unsigned char ch163data[] = { + 0xe7,0x80,0xbe,0xc0,0x78,0x40,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0, + 0x30,0x0,0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x31,0x80,0x19,0x80, + 0xf,0x0 +}; +static const GLUTBitmapChar ch163 = { 10, 17, -1, 0, 12, ch163data }; + +static const unsigned char ch164data[] = { + 0xc0,0x60,0xee,0xe0,0x7f,0xc0,0x31,0x80,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x31,0x80,0x7f,0xc0,0xee,0xe0,0xc0,0x60 +}; +static const GLUTBitmapChar ch164 = { 11, 12, -1, -3, 13, ch164data }; + +static const unsigned char ch165data[] = { + 0xf,0xc0,0x3,0x0,0x3,0x0,0x3,0x0,0x3,0x0,0x1f,0xe0,0x3,0x0,0x1f,0xe0, + 0x3,0x0,0x7,0x80,0xc,0x80,0xc,0xc0,0x18,0x40,0x18,0x60,0x30,0x20,0x70,0x30, + 0xf8,0x7c +}; +static const GLUTBitmapChar ch165 = { 14, 17, 0, 0, 14, ch165data }; + +static const unsigned char ch166data[] = { + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x0,0x0,0x0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0 +}; +static const GLUTBitmapChar ch166 = { 2, 17, -2, 0, 6, ch166data }; + +static const unsigned char ch167data[] = { + 0x38,0x64,0x62,0x6,0xe,0x1c,0x38,0x74,0xe2,0xc3,0x83,0x87,0x4e,0x3c,0x38,0x70, + 0x60,0x46,0x26,0x1c +}; +static const GLUTBitmapChar ch167 = { 8, 20, -2, 2, 12, ch167data }; + +static const unsigned char ch168data[] = { + 0xcc,0xcc +}; +static const GLUTBitmapChar ch168 = { 6, 2, -1, -14, 8, ch168data }; + +static const unsigned char ch169data[] = { + 0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x61,0xc3,0x0,0x47,0x71,0x0,0xc4, + 0x19,0x80,0x8c,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x88,0x0,0x80,0x8c,0x0, + 0x80,0xc4,0x19,0x80,0x47,0x31,0x0,0x61,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, + 0x7,0xf0,0x0 +}; +static const GLUTBitmapChar ch169 = { 17, 17, -1, 0, 19, ch169data }; + +static const unsigned char ch170data[] = { + 0x7e,0x0,0x76,0xcc,0xcc,0x7c,0xc,0xcc,0x78 +}; +static const GLUTBitmapChar ch170 = { 7, 9, 0, -8, 8, ch170data }; + +static const unsigned char ch171data[] = { + 0x8,0x80,0x19,0x80,0x33,0x0,0x66,0x0,0xcc,0x0,0xcc,0x0,0x66,0x0,0x33,0x0, + 0x19,0x80,0x8,0x80 +}; +static const GLUTBitmapChar ch171 = { 9, 10, -2, -1, 13, ch171data }; + +static const unsigned char ch172data[] = { + 0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x30,0xff,0xf0,0xff,0xf0 +}; +static const GLUTBitmapChar ch172 = { 12, 7, -1, -3, 14, ch172data }; + +static const unsigned char ch173data[] = { + 0xfe,0xfe +}; +static const GLUTBitmapChar ch173 = { 7, 2, -1, -5, 9, ch173data }; + +static const unsigned char ch174data[] = { + 0x7,0xf0,0x0,0x1c,0x1c,0x0,0x30,0x6,0x0,0x60,0x3,0x0,0x47,0x19,0x0,0xc2, + 0x31,0x80,0x82,0x20,0x80,0x82,0x40,0x80,0x83,0xe0,0x80,0x82,0x30,0x80,0x82,0x10, + 0x80,0xc2,0x11,0x80,0x42,0x31,0x0,0x67,0xe3,0x0,0x30,0x6,0x0,0x1c,0x1c,0x0, + 0x7,0xf0,0x0 +}; +static const GLUTBitmapChar ch174 = { 17, 17, -1, 0, 19, ch174data }; + +static const unsigned char ch175data[] = { + 0xfc,0xfc +}; +static const GLUTBitmapChar ch175 = { 6, 2, -1, -14, 8, ch175data }; + +static const unsigned char ch176data[] = { + 0x38,0x44,0x82,0x82,0x82,0x44,0x38 +}; +static const GLUTBitmapChar ch176 = { 7, 7, -1, -10, 9, ch176data }; + +static const unsigned char ch177data[] = { + 0xff,0xf0,0xff,0xf0,0x0,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0, + 0xff,0xf0,0xff,0xf0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch177 = { 12, 15, -1, 0, 14, ch177data }; + +static const unsigned char ch178data[] = { + 0xfc,0x44,0x20,0x30,0x10,0x8,0xc,0x8c,0x4c,0x38 +}; +static const GLUTBitmapChar ch178 = { 6, 10, 0, -7, 7, ch178data }; + +static const unsigned char ch179data[] = { + 0x70,0x88,0x8c,0xc,0x8,0x30,0x8,0x8c,0x4c,0x38 +}; +static const GLUTBitmapChar ch179 = { 6, 10, 0, -7, 7, ch179data }; + +static const unsigned char ch180data[] = { + 0x80,0x60,0x38,0x18 +}; +static const GLUTBitmapChar ch180 = { 5, 4, -2, -13, 8, ch180data }; + +static const unsigned char ch181data[] = { + 0x40,0x0,0xe0,0x0,0xc0,0x0,0x40,0x0,0x40,0x0,0x5c,0xe0,0x7e,0xc0,0x71,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0xe1,0xc0 +}; +static const GLUTBitmapChar ch181 = { 11, 17, -1, 5, 13, ch181data }; + +static const unsigned char ch182data[] = { + 0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0,0x9,0x0, + 0x9,0x0,0x9,0x0,0x9,0x0,0x19,0x0,0x39,0x0,0x79,0x0,0x79,0x0,0xf9,0x0, + 0xf9,0x0,0xf9,0x0,0x79,0x0,0x79,0x0,0x39,0x0,0x1f,0x80 +}; +static const GLUTBitmapChar ch182 = { 9, 22, -1, 5, 11, ch182data }; + +static const unsigned char ch183data[] = { + 0xc0,0xc0 +}; +static const GLUTBitmapChar ch183 = { 2, 2, -2, -6, 6, ch183data }; + +static const unsigned char ch184data[] = { + 0x78,0xcc,0xc,0x3c,0x30,0x10 +}; +static const GLUTBitmapChar ch184 = { 6, 6, -1, 6, 8, ch184data }; + +static const unsigned char ch185data[] = { + 0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xa0,0x60,0x20 +}; +static const GLUTBitmapChar ch185 = { 5, 10, -1, -7, 7, ch185data }; + +static const unsigned char ch186data[] = { + 0xfc,0x0,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0x78 +}; +static const GLUTBitmapChar ch186 = { 6, 9, -1, -8, 8, ch186data }; + +static const unsigned char ch187data[] = { + 0x88,0x0,0xcc,0x0,0x66,0x0,0x33,0x0,0x19,0x80,0x19,0x80,0x33,0x0,0x66,0x0, + 0xcc,0x0,0x88,0x0 +}; +static const GLUTBitmapChar ch187 = { 9, 10, -2, -1, 12, ch187data }; + +static const unsigned char ch188data[] = { + 0x30,0x4,0x10,0x4,0x18,0xff,0x8,0x44,0xc,0x64,0x6,0x24,0x2,0x14,0xfb,0x1c, + 0x21,0xc,0x21,0x84,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, + 0x20,0x8 +}; +static const GLUTBitmapChar ch188 = { 16, 17, -1, 0, 18, ch188data }; + +static const unsigned char ch189data[] = { + 0x30,0x7e,0x10,0x22,0x18,0x10,0x8,0x18,0xc,0x8,0x6,0x4,0x2,0x6,0xfb,0x46, + 0x21,0x26,0x21,0x9c,0x20,0xc0,0x20,0x40,0x20,0x60,0x20,0x20,0xa0,0x30,0x60,0x18, + 0x20,0x8 +}; +static const GLUTBitmapChar ch189 = { 15, 17, -1, 0, 18, ch189data }; + +static const unsigned char ch190data[] = { + 0x18,0x2,0x0,0x8,0x2,0x0,0xc,0x7f,0x80,0x4,0x22,0x0,0x6,0x32,0x0,0x3, + 0x12,0x0,0x1,0xa,0x0,0x71,0x8e,0x0,0x88,0x86,0x0,0x8c,0xc2,0x0,0xc,0x60, + 0x0,0x8,0x20,0x0,0x30,0x30,0x0,0x8,0x10,0x0,0x8c,0x18,0x0,0x4c,0xc,0x0, + 0x38,0x4,0x0 +}; +static const GLUTBitmapChar ch190 = { 17, 17, 0, 0, 18, ch190data }; + +static const unsigned char ch191data[] = { + 0x3e,0x63,0xc1,0xc3,0xc3,0xe0,0x70,0x30,0x38,0x18,0x18,0x8,0x8,0x0,0x0,0xc, + 0xc +}; +static const GLUTBitmapChar ch191 = { 8, 17, -1, 5, 11, ch191data }; + +static const unsigned char ch192data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0xc0,0x0,0x3,0x80,0x0,0x3, + 0x0,0x0 +}; +static const GLUTBitmapChar ch192 = { 17, 22, 0, 0, 17, ch192data }; + +static const unsigned char ch193data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0xc0,0x0,0x0,0x70,0x0,0x0, + 0x30,0x0 +}; +static const GLUTBitmapChar ch193 = { 17, 22, 0, 0, 17, ch193data }; + +static const unsigned char ch194data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x8,0x10,0x0,0x6,0x60,0x0,0x3,0xc0,0x0,0x1, + 0x80,0x0 +}; +static const GLUTBitmapChar ch194 = { 17, 22, 0, 0, 17, ch194data }; + +static const unsigned char ch195data[] = { + 0xfc,0x1f,0x80,0x30,0x7,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0xe0,0x0,0x3,0x90,0x0 +}; +static const GLUTBitmapChar ch195 = { 17, 21, 0, 0, 17, ch195data }; + +static const unsigned char ch196data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x30,0x0,0x6,0x30,0x0 +}; +static const GLUTBitmapChar ch196 = { 17, 21, 0, 0, 17, ch196data }; + +static const unsigned char ch197data[] = { + 0xfc,0x1f,0x80,0x30,0x6,0x0,0x10,0x6,0x0,0x10,0xc,0x0,0x18,0xc,0x0,0x8, + 0xc,0x0,0xf,0xf8,0x0,0xc,0x18,0x0,0x4,0x18,0x0,0x4,0x30,0x0,0x6,0x30, + 0x0,0x2,0x30,0x0,0x2,0x60,0x0,0x1,0x60,0x0,0x1,0xc0,0x0,0x1,0xc0,0x0, + 0x0,0x80,0x0,0x1,0xc0,0x0,0x2,0x20,0x0,0x2,0x20,0x0,0x1,0xc0,0x0 +}; +static const GLUTBitmapChar ch197 = { 17, 21, 0, 0, 17, ch197data }; + +static const unsigned char ch198data[] = { + 0xf9,0xff,0xf0,0x30,0x60,0x30,0x10,0x60,0x10,0x10,0x60,0x10,0x18,0x60,0x0,0x8, + 0x60,0x0,0xf,0xe0,0x80,0xc,0x60,0x80,0x4,0x7f,0x80,0x4,0x60,0x80,0x6,0x60, + 0x80,0x2,0x60,0x0,0x2,0x60,0x0,0x1,0x60,0x20,0x1,0x60,0x20,0x1,0xe0,0x60, + 0x3,0xff,0xe0 +}; +static const GLUTBitmapChar ch198 = { 20, 17, 0, 0, 21, ch198data }; + +static const unsigned char ch199data[] = { + 0x7,0x80,0xc,0xc0,0x0,0xc0,0x3,0xc0,0x3,0x0,0x1,0x0,0x7,0xe0,0x1e,0x38, + 0x38,0x8,0x60,0x4,0x60,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0, + 0xc0,0x0,0xc0,0x0,0x60,0x4,0x60,0x4,0x38,0xc,0x1c,0x3c,0x7,0xe4 +}; +static const GLUTBitmapChar ch199 = { 14, 23, -1, 6, 16, ch199data }; + +static const unsigned char ch200data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, + 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0,0x0,0x0,0x1,0x0,0x6,0x0,0x1c,0x0,0x18,0x0 +}; +static const GLUTBitmapChar ch200 = { 13, 22, -1, 0, 15, ch200data }; + +static const unsigned char ch201data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, + 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0,0x0,0x0,0x4,0x0,0x3,0x0,0x1,0xc0,0x0,0xc0 +}; +static const GLUTBitmapChar ch201 = { 13, 22, -1, 0, 15, ch201data }; + +static const unsigned char ch202data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, + 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0,0x0,0x0,0x10,0x20,0xc,0xc0,0x7,0x80,0x3,0x0 +}; +static const GLUTBitmapChar ch202 = { 13, 22, -1, 0, 15, ch202data }; + +static const unsigned char ch203data[] = { + 0xff,0xf8,0x30,0x18,0x30,0x8,0x30,0x8,0x30,0x0,0x30,0x0,0x30,0x40,0x30,0x40, + 0x3f,0xc0,0x30,0x40,0x30,0x40,0x30,0x0,0x30,0x0,0x30,0x10,0x30,0x10,0x30,0x30, + 0xff,0xf0,0x0,0x0,0x0,0x0,0x19,0x80,0x19,0x80 +}; +static const GLUTBitmapChar ch203 = { 13, 21, -1, 0, 15, ch203data }; + +static const unsigned char ch204data[] = { + 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0xfc,0x0,0x8,0x30,0xe0,0xc0 +}; +static const GLUTBitmapChar ch204 = { 6, 22, -1, 0, 8, ch204data }; + +static const unsigned char ch205data[] = { + 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0xfc,0x0,0x40,0x30,0x1c,0xc +}; +static const GLUTBitmapChar ch205 = { 6, 22, -1, 0, 8, ch205data }; + +static const unsigned char ch206data[] = { + 0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, + 0x7e,0x0,0x81,0x66,0x3c,0x18 +}; +static const GLUTBitmapChar ch206 = { 8, 22, -1, 0, 8, ch206data }; + +static const unsigned char ch207data[] = { + 0xfc,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0xfc,0x0,0x0,0xcc,0xcc +}; +static const GLUTBitmapChar ch207 = { 6, 21, -1, 0, 8, ch207data }; + +static const unsigned char ch208data[] = { + 0x7f,0xe0,0x18,0x38,0x18,0x1c,0x18,0x6,0x18,0x6,0x18,0x3,0x18,0x3,0x18,0x3, + 0xff,0x3,0x18,0x3,0x18,0x3,0x18,0x3,0x18,0x6,0x18,0x6,0x18,0x1c,0x18,0x38, + 0x7f,0xe0 +}; +static const GLUTBitmapChar ch208 = { 16, 17, 0, 0, 17, ch208data }; + +static const unsigned char ch209data[] = { + 0xf8,0xc,0x20,0x1c,0x20,0x1c,0x20,0x34,0x20,0x64,0x20,0x64,0x20,0xc4,0x21,0x84, + 0x21,0x84,0x23,0x4,0x26,0x4,0x26,0x4,0x2c,0x4,0x38,0x4,0x38,0x4,0x30,0x4, + 0xf0,0x1f,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90 +}; +static const GLUTBitmapChar ch209 = { 16, 21, -1, 0, 18, ch209data }; + +static const unsigned char ch210data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch210 = { 16, 22, -1, 0, 18, ch210data }; + +static const unsigned char ch211data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 +}; +static const GLUTBitmapChar ch211 = { 16, 22, -1, 0, 18, ch211data }; + +static const unsigned char ch212data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80 +}; +static const GLUTBitmapChar ch212 = { 16, 22, -1, 0, 18, ch212data }; + +static const unsigned char ch213data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0,0x0,0x0,0x0,0x0,0x4,0xe0,0x3,0x90 +}; +static const GLUTBitmapChar ch213 = { 16, 21, -1, 0, 18, ch213data }; + +static const unsigned char ch214data[] = { + 0x7,0xe0,0x1c,0x38,0x38,0x1c,0x60,0x6,0x60,0x6,0xc0,0x3,0xc0,0x3,0xc0,0x3, + 0xc0,0x3,0xc0,0x3,0xc0,0x3,0xc0,0x3,0x60,0x6,0x60,0x6,0x38,0x1c,0x1c,0x38, + 0x7,0xe0,0x0,0x0,0x0,0x0,0x6,0x60,0x6,0x60 +}; +static const GLUTBitmapChar ch214 = { 16, 21, -1, 0, 18, ch214data }; + +static const unsigned char ch215data[] = { + 0x80,0x40,0xc0,0xc0,0x61,0x80,0x33,0x0,0x1e,0x0,0xc,0x0,0x1e,0x0,0x33,0x0, + 0x61,0x80,0xc0,0xc0,0x80,0x40 +}; +static const GLUTBitmapChar ch215 = { 10, 11, -2, -1, 14, ch215data }; + +static const unsigned char ch216data[] = { + 0x20,0x0,0x27,0xe0,0x1c,0x38,0x38,0x1c,0x68,0x6,0x64,0x6,0xc2,0x3,0xc2,0x3, + 0xc1,0x3,0xc1,0x3,0xc0,0x83,0xc0,0x83,0xc0,0x43,0x60,0x46,0x60,0x26,0x38,0x1c, + 0x1c,0x38,0x7,0xe4,0x0,0x4 +}; +static const GLUTBitmapChar ch216 = { 16, 19, -1, 1, 18, ch216data }; + +static const unsigned char ch217data[] = { + 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0xfc,0x1f,0x0,0x0,0x0,0x40,0x1,0x80,0x7,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch217 = { 16, 22, -1, 0, 18, ch217data }; + +static const unsigned char ch218data[] = { + 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0xfc,0x1f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 +}; +static const GLUTBitmapChar ch218 = { 16, 22, -1, 0, 18, ch218data }; + +static const unsigned char ch219data[] = { + 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0xfc,0x1f,0x0,0x0,0x8,0x10,0x6,0x60,0x3,0xc0,0x1,0x80 +}; +static const GLUTBitmapChar ch219 = { 16, 22, -1, 0, 18, ch219data }; + +static const unsigned char ch220data[] = { + 0x7,0xe0,0x1c,0x30,0x18,0x8,0x30,0x8,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4,0x30,0x4, + 0xfc,0x1f,0x0,0x0,0x0,0x0,0x6,0x30,0x6,0x30 +}; +static const GLUTBitmapChar ch220 = { 16, 21, -1, 0, 18, ch220data }; + +static const unsigned char ch221data[] = { + 0x7,0xe0,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x1,0x80,0x3,0xc0, + 0x3,0x40,0x6,0x60,0x6,0x20,0xc,0x30,0x1c,0x10,0x18,0x18,0x38,0x8,0x30,0xc, + 0xfc,0x3f,0x0,0x0,0x1,0x0,0x0,0xc0,0x0,0x70,0x0,0x30 +}; +static const GLUTBitmapChar ch221 = { 16, 22, 0, 0, 16, ch221data }; + +static const unsigned char ch222data[] = { + 0xfc,0x0,0x30,0x0,0x30,0x0,0x30,0x0,0x3f,0xc0,0x30,0x70,0x30,0x30,0x30,0x18, + 0x30,0x18,0x30,0x18,0x30,0x30,0x30,0x70,0x3f,0xc0,0x30,0x0,0x30,0x0,0x30,0x0, + 0xfc,0x0 +}; +static const GLUTBitmapChar ch222 = { 13, 17, -1, 0, 15, ch222data }; + +static const unsigned char ch223data[] = { + 0xe7,0x0,0x6c,0x80,0x6c,0xc0,0x60,0xc0,0x60,0xc0,0x61,0xc0,0x61,0x80,0x63,0x80, + 0x67,0x0,0x6c,0x0,0x63,0x0,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x0, + 0x1e,0x0 +}; +static const GLUTBitmapChar ch223 = { 10, 17, -1, 0, 12, ch223data }; + +static const unsigned char ch224data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, + 0x60,0x0 +}; +static const GLUTBitmapChar ch224 = { 9, 17, -1, 0, 11, ch224data }; + +static const unsigned char ch225data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, + 0x3,0x0 +}; +static const GLUTBitmapChar ch225 = { 9, 17, -1, 0, 11, ch225data }; + +static const unsigned char ch226data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x42,0x0,0x24,0x0,0x3c,0x0, + 0x18,0x0 +}; +static const GLUTBitmapChar ch226 = { 9, 17, -1, 0, 11, ch226data }; + +static const unsigned char ch227data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x5c,0x0,0x3a,0x0 +}; +static const GLUTBitmapChar ch227 = { 9, 16, -1, 0, 11, ch227data }; + +static const unsigned char ch228data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x0,0x0,0x66,0x0,0x66,0x0 +}; +static const GLUTBitmapChar ch228 = { 9, 16, -1, 0, 11, ch228data }; + +static const unsigned char ch229data[] = { + 0x71,0x80,0xfb,0x0,0xc7,0x0,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0x0, + 0x3,0x0,0x63,0x0,0x67,0x0,0x3e,0x0,0x0,0x0,0x1c,0x0,0x22,0x0,0x22,0x0, + 0x1c,0x0 +}; +static const GLUTBitmapChar ch229 = { 9, 17, -1, 0, 11, ch229data }; + +static const unsigned char ch230data[] = { + 0x70,0xf0,0xfb,0xf8,0xc7,0x84,0xc3,0x0,0xc3,0x0,0x63,0x0,0x3b,0x0,0xf,0xfc, + 0x3,0xc,0x63,0xc,0x67,0x98,0x3c,0xf0 +}; +static const GLUTBitmapChar ch230 = { 14, 12, -1, 0, 16, ch230data }; + +static const unsigned char ch231data[] = { + 0x3c,0x0,0x66,0x0,0x6,0x0,0x1e,0x0,0x18,0x0,0x8,0x0,0x1e,0x0,0x7f,0x0, + 0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0x41,0x80, + 0x63,0x80,0x1f,0x0 +}; +static const GLUTBitmapChar ch231 = { 9, 18, -1, 6, 11, ch231data }; + +static const unsigned char ch232data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, + 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x4,0x0,0x18,0x0,0x70,0x0, + 0x60,0x0 +}; +static const GLUTBitmapChar ch232 = { 9, 17, -1, 0, 11, ch232data }; + +static const unsigned char ch233data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, + 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x10,0x0,0xc,0x0,0x7,0x0, + 0x3,0x0 +}; +static const GLUTBitmapChar ch233 = { 9, 17, -1, 0, 11, ch233data }; + +static const unsigned char ch234data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, + 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, + 0xc,0x0 +}; +static const GLUTBitmapChar ch234 = { 9, 17, -1, 0, 11, ch234data }; + +static const unsigned char ch235data[] = { + 0x1e,0x0,0x7f,0x0,0x70,0x80,0xe0,0x0,0xc0,0x0,0xc0,0x0,0xc0,0x0,0xff,0x80, + 0xc1,0x80,0x41,0x80,0x63,0x0,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 +}; +static const GLUTBitmapChar ch235 = { 9, 16, -1, 0, 11, ch235data }; + +static const unsigned char ch236data[] = { + 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x8,0x30,0xe0, + 0xc0 +}; +static const GLUTBitmapChar ch236 = { 5, 17, 0, 0, 6, ch236data }; + +static const unsigned char ch237data[] = { + 0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0x0,0x80,0x60,0x38, + 0x18 +}; +static const GLUTBitmapChar ch237 = { 5, 17, -1, 0, 6, ch237data }; + +static const unsigned char ch238data[] = { + 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x84,0x48,0x78, + 0x30 +}; +static const GLUTBitmapChar ch238 = { 6, 17, 0, 0, 6, ch238data }; + +static const unsigned char ch239data[] = { + 0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,0x0,0x0,0xcc,0xcc +}; +static const GLUTBitmapChar ch239 = { 6, 16, 0, 0, 6, ch239data }; + +static const unsigned char ch240data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1f,0x0,0xc6,0x0,0x3c,0x0,0x1e,0x0,0x71,0x80, + 0xc0,0x0 +}; +static const GLUTBitmapChar ch240 = { 10, 17, -1, 0, 12, ch240data }; + +static const unsigned char ch241data[] = { + 0xf1,0xe0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x71,0xc0,0x6f,0x80,0xe7,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80 +}; +static const GLUTBitmapChar ch241 = { 11, 16, -1, 0, 13, ch241data }; + +static const unsigned char ch242data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, + 0x30,0x0 +}; +static const GLUTBitmapChar ch242 = { 10, 17, -1, 0, 12, ch242data }; + +static const unsigned char ch243data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, + 0x1,0x80 +}; +static const GLUTBitmapChar ch243 = { 10, 17, -1, 0, 12, ch243data }; + +static const unsigned char ch244data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, + 0xc,0x0 +}; +static const GLUTBitmapChar ch244 = { 10, 17, -1, 0, 12, ch244data }; + +static const unsigned char ch245data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x27,0x0,0x1c,0x80 +}; +static const GLUTBitmapChar ch245 = { 10, 16, -1, 0, 12, ch245data }; + +static const unsigned char ch246data[] = { + 0x1e,0x0,0x73,0x80,0x61,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, + 0xc0,0xc0,0x61,0x80,0x73,0x80,0x1e,0x0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 +}; +static const GLUTBitmapChar ch246 = { 10, 16, -1, 0, 12, ch246data }; + +static const unsigned char ch247data[] = { + 0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0xff,0xf0,0xff,0xf0,0x0,0x0,0x0,0x0, + 0x6,0x0,0x6,0x0 +}; +static const GLUTBitmapChar ch247 = { 12, 10, -1, -2, 14, ch247data }; + +static const unsigned char ch248data[] = { + 0xc0,0x0,0xde,0x0,0x73,0x80,0x71,0x80,0xd0,0xc0,0xd8,0xc0,0xc8,0xc0,0xcc,0xc0, + 0xc4,0xc0,0xc6,0xc0,0x63,0x80,0x73,0x80,0x1e,0xc0,0x0,0xc0 +}; +static const GLUTBitmapChar ch248 = { 10, 14, -1, 1, 12, ch248data }; + +static const unsigned char ch249data[] = { + 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x2,0x0,0xc,0x0,0x38,0x0, + 0x30,0x0 +}; +static const GLUTBitmapChar ch249 = { 11, 17, -1, 0, 13, ch249data }; + +static const unsigned char ch250data[] = { + 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80, + 0x1,0x80 +}; +static const GLUTBitmapChar ch250 = { 11, 17, -1, 0, 13, ch250data }; + +static const unsigned char ch251data[] = { + 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x21,0x0,0x12,0x0,0x1e,0x0, + 0xc,0x0 +}; +static const GLUTBitmapChar ch251 = { 11, 17, -1, 0, 13, ch251data }; + +static const unsigned char ch252data[] = { + 0x1c,0xe0,0x3e,0xc0,0x71,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0xe1,0xc0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 +}; +static const GLUTBitmapChar ch252 = { 11, 16, -1, 0, 13, ch252data }; + +static const unsigned char ch253data[] = { + 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, + 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, + 0xf1,0xe0,0x0,0x0,0x8,0x0,0x6,0x0,0x3,0x80,0x1,0x80 +}; +static const GLUTBitmapChar ch253 = { 11, 22, 0, 5, 11, ch253data }; + +static const unsigned char ch254data[] = { + 0xf0,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x6e,0x0,0x73,0x80,0x61,0x80, + 0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x60,0xc0,0x61,0x80,0x73,0x80, + 0x6e,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0x60,0x0,0xe0,0x0 +}; +static const GLUTBitmapChar ch254 = { 10, 22, -1, 5, 12, ch254data }; + +static const unsigned char ch255data[] = { + 0xe0,0x0,0xf0,0x0,0x18,0x0,0x8,0x0,0xc,0x0,0x4,0x0,0xe,0x0,0xe,0x0, + 0x1a,0x0,0x19,0x0,0x19,0x0,0x31,0x0,0x30,0x80,0x30,0x80,0x60,0x80,0x60,0xc0, + 0xf1,0xe0,0x0,0x0,0x0,0x0,0x33,0x0,0x33,0x0 +}; +static const GLUTBitmapChar ch255 = { 11, 21, 0, 5, 11, ch255data }; + + +static const GLUTBitmapChar *chars[] = { + 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, + &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, 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, 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 GLUTBitmapFont glutBitmapTimesRoman24 = { + "-Adobe-Times-Medium-R-Normal--24-240-75-75-P-124-ISO8859-1", + 28, 256, chars +}; diff --git a/src/glut/dos/util.c b/src/glut/dos/util.c new file mode 100644 index 00000000000..df126443d33 --- /dev/null +++ b/src/glut/dos/util.c @@ -0,0 +1,74 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include "internal.h" + + +extern GLUTStrokeFont glutStrokeRoman, glutStrokeMonoRoman; +extern GLUTBitmapFont glutBitmap8By13, glutBitmap9By15, glutBitmapTimesRoman10, glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12, glutBitmapHelvetica18; + +/* To get around the fact that DJGPP DXEs only allow functions + to be exported and no data addresses (as Unix DSOs support), the + GLUT API constants such as GLUT_STROKE_ROMAN have to get passed + through a case statement to get mapped to the actual data structure + address. */ +void * +_glut_font (void *font) +{ + switch ((int)font) { + case (int)GLUT_STROKE_ROMAN: + return &glutStrokeRoman; + case (int)GLUT_STROKE_MONO_ROMAN: + return &glutStrokeMonoRoman; + case (int)GLUT_BITMAP_9_BY_15: + return &glutBitmap9By15; + case (int)GLUT_BITMAP_8_BY_13: + return &glutBitmap8By13; + case (int)GLUT_BITMAP_TIMES_ROMAN_10: + return &glutBitmapTimesRoman10; + case (int)GLUT_BITMAP_TIMES_ROMAN_24: + return &glutBitmapTimesRoman24; + case (int)GLUT_BITMAP_HELVETICA_10: + return &glutBitmapHelvetica10; + case (int)GLUT_BITMAP_HELVETICA_12: + return &glutBitmapHelvetica12; + case (int)GLUT_BITMAP_HELVETICA_18: + return &glutBitmapHelvetica18; + default: + if ((font == &glutStrokeRoman) || + (font == &glutStrokeMonoRoman) || + (font == &glutBitmap9By15) || + (font == &glutBitmap8By13) || + (font == &glutBitmapTimesRoman10) || + (font == &glutBitmapTimesRoman24) || + (font == &glutBitmapHelvetica10) || + (font == &glutBitmapHelvetica12) || + (font == &glutBitmapHelvetica18)) { + return font; + } + _glut_fatal("bad font!"); + return NULL; + } +} diff --git a/src/glut/dos/window.c b/src/glut/dos/window.c new file mode 100644 index 00000000000..610cf36dcc6 --- /dev/null +++ b/src/glut/dos/window.c @@ -0,0 +1,329 @@ +/* + * DOS/DJGPP Mesa Utility Toolkit + * Version: 1.0 + * + * Copyright (C) 2005 Daniel Borca All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * DANIEL BORCA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#include <stdio.h> + +#include "internal.h" + + +static GLuint swaptime, swapcount; + +static DMesaVisual visual = NULL; + +GLUTwindow *_glut_current, *_glut_windows[MAX_WINDOWS]; + + +static void +clean (void) +{ + int i; + + for (i=1; i<=MAX_WINDOWS; i++) { + glutDestroyWindow(i); + } + if (visual) DMesaDestroyVisual(visual); + + pc_close_stdout(); + pc_close_stderr(); +} + + +static GLUTwindow * +_glut_window (int win) +{ + if (win > 0 && --win < MAX_WINDOWS) { + return _glut_windows[win]; + } + return NULL; +} + + +int APIENTRY +glutCreateWindow (const char *title) +{ + int i; + int m8width = (_glut_default.width + 7) & ~7; + + if (!(_glut_default.mode & GLUT_DOUBLE)) { + return 0; + } + + /* We set the Visual once. This will be our desktop (graphic mode). + * We should do this in the `glutInit' code, but we don't have any idea + * about its geometry. Supposedly, when we are about to create one + * window, we have a slight idea about resolution. + */ + if (!visual) { + if ((visual=DMesaCreateVisual(_glut_default.x + m8width, _glut_default.y + _glut_default.height, _glut_visual.bpp, _glut_visual.refresh, + GLUT_SINGLE, + !(_glut_default.mode & GLUT_INDEX), + (_glut_default.mode & GLUT_ALPHA ) ? _glut_visual.alpha : 0, + (_glut_default.mode & GLUT_DEPTH ) ? _glut_visual.depth : 0, + (_glut_default.mode & GLUT_STENCIL) ? _glut_visual.stencil : 0, + (_glut_default.mode & GLUT_ACCUM ) ? _glut_visual.accum : 0))==NULL) { + return 0; + } + + DMesaGetIntegerv(DMESA_GET_SCREEN_SIZE, _glut_visual.geometry); + DMesaGetIntegerv(DMESA_GET_DRIVER_CAPS, &_glut_visual.flags); + + /* Also hook stdio/stderr once */ + pc_open_stdout(); + pc_open_stderr(); + pc_atexit(clean); + } + + /* Search for an empty slot. + * Each window has its own rendering Context and its own Buffer. + */ + for (i=0; i<MAX_WINDOWS; i++) { + if (_glut_windows[i] == NULL) { + DMesaContext c; + DMesaBuffer b; + GLUTwindow *w; + + if ((w = (GLUTwindow *)calloc(1, sizeof(GLUTwindow))) == NULL) { + return 0; + } + + /* Allocate the rendering Context. */ + if ((c = DMesaCreateContext(visual, NULL)) == NULL) { + free(w); + return 0; + } + + /* Allocate the Buffer (displayable area). + * We have to specify buffer size and position (inside the desktop). + */ + if ((b = DMesaCreateBuffer(visual, _glut_default.x, _glut_default.y, m8width, _glut_default.height)) == NULL) { + DMesaDestroyContext(c); + free(w); + return 0; + } + + /* Bind Buffer to Context and make the Context the current one. */ + if (!DMesaMakeCurrent(c, b)) { + DMesaDestroyBuffer(b); + DMesaDestroyContext(c); + free(w); + return 0; + } + + _glut_current = _glut_windows[i] = w; + + w->num = ++i; + w->xpos = _glut_default.x; + w->ypos = _glut_default.y; + w->width = m8width; + w->height = _glut_default.height; + w->context = c; + w->buffer = b; + + return i; + } + } + + return 0; +} + + +int APIENTRY +glutCreateSubWindow (int win, int x, int y, int width, int height) +{ + return GL_FALSE; +} + + +void APIENTRY +glutDestroyWindow (int win) +{ + GLUTwindow *w = _glut_window(win); + if (w != NULL) { + if (w->destroy) { + w->destroy(); + } + DMesaMakeCurrent(NULL, NULL); + DMesaDestroyBuffer(w->buffer); + DMesaDestroyContext(w->context); + free(w); + _glut_windows[win - 1] = NULL; + } +} + + +void APIENTRY +glutPostRedisplay (void) +{ + _glut_current->redisplay = GL_TRUE; +} + + +void APIENTRY +glutSwapBuffers (void) +{ + if (_glut_current->show_mouse) { + /* XXX scare mouse */ + DMesaSwapBuffers(_glut_current->buffer); + /* XXX unscare mouse */ + } else { + DMesaSwapBuffers(_glut_current->buffer); + } + + if (_glut_fps) { + GLint t = glutGet(GLUT_ELAPSED_TIME); + swapcount++; + if (swaptime == 0) + swaptime = t; + else if (t - swaptime > _glut_fps) { + double time = 0.001 * (t - swaptime); + double fps = (double)swapcount / time; + fprintf(stderr, "GLUT: %d frames in %.2f seconds = %.2f FPS\n", swapcount, time, fps); + swaptime = t; + swapcount = 0; + } + } +} + + +int APIENTRY +glutGetWindow (void) +{ + return _glut_current->num; +} + + +void APIENTRY +glutSetWindow (int win) +{ + GLUTwindow *w = _glut_window(win); + if (w != NULL) { + _glut_current = w; + DMesaMakeCurrent(_glut_current->context, _glut_current->buffer); + } +} + + +void APIENTRY +glutSetWindowTitle (const char *title) +{ +} + + +void APIENTRY +glutSetIconTitle (const char *title) +{ +} + + +void APIENTRY +glutPositionWindow (int x, int y) +{ + if (DMesaMoveBuffer(x, y)) { + _glut_current->xpos = x; + _glut_current->ypos = y; + } +} + + +void APIENTRY +glutReshapeWindow (int width, int height) +{ + if (DMesaResizeBuffer(width, height)) { + _glut_current->width = width; + _glut_current->height = height; + if (_glut_current->reshape) { + _glut_current->reshape(width, height); + } else { + glViewport(0, 0, width, height); + } + } +} + + +void APIENTRY +glutFullScreen (void) +{ +} + + +void APIENTRY +glutPopWindow (void) +{ +} + + +void APIENTRY +glutPushWindow (void) +{ +} + + +void APIENTRY +glutIconifyWindow (void) +{ +} + + +void APIENTRY +glutShowWindow (void) +{ +} + + +void APIENTRY +glutHideWindow (void) +{ +} + + +void APIENTRY +glutCloseFunc (GLUTdestroyCB destroy) +{ + _glut_current->destroy = destroy; +} + + +void APIENTRY +glutPostWindowRedisplay (int win) +{ + GLUTwindow *w = _glut_window(win); + if (w != NULL) { + w->redisplay = GL_TRUE; + } +} + + +void * APIENTRY +glutGetWindowData (void) +{ + return _glut_current->data; +} + + +void APIENTRY +glutSetWindowData (void *data) +{ + _glut_current->data = data; +} |