nuclear@22: /* Simple libdrawtext example without freetype. nuclear@22: */ nuclear@22: #include nuclear@22: #include nuclear@22: nuclear@22: #ifndef __APPLE__ nuclear@22: #include nuclear@22: #else nuclear@22: #include nuclear@22: #endif nuclear@22: nuclear@22: #include "drawtext.h" nuclear@22: nuclear@22: void disp(void); nuclear@22: void reshape(int x, int y); nuclear@22: void keyb(unsigned char key, int x, int y); nuclear@22: nuclear@22: struct dtx_font *font; nuclear@22: nuclear@22: int main(int argc, char **argv) nuclear@22: { nuclear@22: glutInit(&argc, argv); nuclear@22: glutInitWindowSize(512, 384); nuclear@22: glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); nuclear@22: glutCreateWindow("libdrawtext example: simple"); nuclear@22: nuclear@22: glutDisplayFunc(disp); nuclear@22: glutReshapeFunc(reshape); nuclear@22: glutKeyboardFunc(keyb); nuclear@22: nuclear@22: if(!(font = dtx_open_font_glyphmap("serif_s24.glyphmap"))) { nuclear@22: fprintf(stderr, "failed to open font\n"); nuclear@22: return 1; nuclear@22: } nuclear@22: dtx_use_font(font, 24); nuclear@22: nuclear@22: glutMainLoop(); nuclear@22: return 0; nuclear@22: } nuclear@22: nuclear@22: const char *text = "Some sample text goes here.\n" nuclear@22: "Yada yada yada, more text...\n" nuclear@22: "foobar xyzzy\n"; nuclear@22: nuclear@22: void disp(void) nuclear@22: { nuclear@22: glClear(GL_COLOR_BUFFER_BIT); nuclear@22: nuclear@22: glMatrixMode(GL_MODELVIEW); nuclear@22: glLoadIdentity(); nuclear@22: nuclear@22: glPushMatrix(); nuclear@22: glTranslatef(-200, 150, 0); nuclear@22: glColor3f(1, 1, 1); nuclear@22: /* XXX call dtx_string to draw utf-8 text. nuclear@22: * any transformations and the current color apply nuclear@22: */ nuclear@22: dtx_string(text); nuclear@22: glPopMatrix(); nuclear@22: nuclear@22: glPushMatrix(); nuclear@22: glTranslatef(-200, 50, 0); nuclear@22: glScalef(2, 0.7, 1); nuclear@22: glColor3f(0.6, 0.7, 1.0); nuclear@22: dtx_string(text); nuclear@22: glPopMatrix(); nuclear@22: nuclear@22: glPushMatrix(); nuclear@22: glTranslatef(-80, -90, 0); nuclear@22: glRotatef(20, 0, 0, 1); nuclear@22: glColor3f(1.0, 0.7, 0.6); nuclear@22: dtx_string(text); nuclear@22: glPopMatrix(); nuclear@22: nuclear@22: glutSwapBuffers(); nuclear@22: } nuclear@22: nuclear@22: void reshape(int x, int y) nuclear@22: { nuclear@22: glViewport(0, 0, x, y); nuclear@22: nuclear@22: glMatrixMode(GL_PROJECTION); nuclear@22: glLoadIdentity(); nuclear@22: glOrtho(-x/2, x/2, -y/2, y/2, -1, 1); nuclear@22: } nuclear@22: nuclear@22: void keyb(unsigned char key, int x, int y) nuclear@22: { nuclear@22: if(key == 27) { nuclear@22: exit(0); nuclear@22: } nuclear@22: }