test10.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:3k
- /* Copyright (c) Mark J. Kilgard, 1994. */
- /* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
- #include <stdio.h>
- #include <stdlib.h>
- #include <GL/glut.h>
- /* XXX As a test of 16-bit font support in capturexfont, I made
- a font out of the 16-bit Japanese font named
- '-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1'
- and tried it out. Defining JIS_FONT uses it in this test. */
- /* #define JIS_FONT */
- #ifdef JIS_FONT
- extern void *glutBitmapJis;
- #endif
- int ch = -2;
- void *fonts[] =
- {
- GLUT_BITMAP_TIMES_ROMAN_24,
- GLUT_BITMAP_TIMES_ROMAN_10,
- GLUT_BITMAP_9_BY_15,
- GLUT_BITMAP_8_BY_13,
- GLUT_BITMAP_HELVETICA_10,
- GLUT_BITMAP_HELVETICA_12,
- GLUT_BITMAP_HELVETICA_18,
- #ifdef JIS_FONT
- &glutBitmapJis
- #endif
- };
- void *names[] =
- {
- "Times Roman 24",
- " Times Roman 10",
- " 9 by 15",
- " 8 by 13",
- " Helvetica 10",
- " Helvetica 12",
- " Helvetica 18",
- #ifdef JIS_FONT
- " Mincho JIS"
- #endif
- };
- #define NUM_FONTS (sizeof(fonts)/sizeof(void*))
- int font = 0;
- void
- tick(void)
- {
- static int limit = 270;
- ch += 5;
- if (ch > limit) {
- ch = -2;
- font++;
- #ifdef JIS_FONT
- if (font == 4) {
- limit = 0x747e;
- ch = 0x2121;
- }
- #endif
- if (font == NUM_FONTS) {
- printf("PASS: test10n");
- exit(0);
- }
- }
- glutPostRedisplay();
- }
- void
- output(int x, int y, char *msg)
- {
- glRasterPos2f(x, y);
- while (*msg) {
- glutBitmapCharacter(GLUT_BITMAP_9_BY_15, *msg);
- msg++;
- }
- }
- void
- display(void)
- {
- glutIdleFunc(tick);
- glClear(GL_COLOR_BUFFER_BIT);
- glRasterPos2f(0, 0);
- glutBitmapCharacter(fonts[font], ch);
- glRasterPos2f(30, 30);
- glutBitmapCharacter(fonts[font], ch + 1);
- glRasterPos2f(-30, -30);
- glutBitmapCharacter(fonts[font], ch + 2);
- glRasterPos2f(30, -30);
- glutBitmapCharacter(fonts[font], ch + 3);
- glRasterPos2f(-30, 30);
- glutBitmapCharacter(fonts[font], ch + 4);
- glRasterPos2f(0, 30);
- glutBitmapCharacter(fonts[font], ch + 5);
- glRasterPos2f(0, -30);
- glutBitmapCharacter(fonts[font], ch + 6);
- glRasterPos2f(-30, 0);
- glutBitmapCharacter(fonts[font], ch + 7);
- glRasterPos2f(30, 0);
- glutBitmapCharacter(fonts[font], ch + 8);
- output(-48, -48, names[font]);
- glutSwapBuffers();
- }
- int
- main(int argc, char **argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
- glutInitWindowSize(200, 200);
- glutCreateWindow("Test bitmap fonts");
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(-50, 50, -50, 50);
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glColor3f(1.0, 1.0, 1.0);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
- }