glamtk

view test.c @ 0:b04d49e4599c

foo
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 30 Dec 2010 05:22:14 +0200
parents
children dfbd12d1f566
line source
1 #include <stdio.h>
2 #include <stdlib.h>
3 #ifndef __APPLE__
4 #include <GL/glut.h>
5 #else
6 #include <GLUT/glut.h>
7 #endif
8 #include "imtk.h"
10 void disp(void);
11 void reshape(int x, int y);
12 void keyb(unsigned char key, int x, int y);
13 void keyb_up(unsigned char key, int x, int y);
14 void skeyb(int key, int x, int y);
15 void skeyb_up(int key, int x, int y);
16 void mouse(int bn, int state, int x, int y);
17 void motion(int x, int y);
20 int main(int argc, char **argv)
21 {
22 glutInitWindowSize(800, 600);
23 glutInit(&argc, argv);
24 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
25 glutCreateWindow("imgui test");
27 glutDisplayFunc(disp);
28 glutReshapeFunc(reshape);
29 glutKeyboardFunc(keyb);
30 glutKeyboardUpFunc(keyb_up);
31 glutSpecialFunc(skeyb);
32 glutSpecialUpFunc(skeyb_up);
33 glutMouseFunc(mouse);
34 glutMotionFunc(motion);
35 glutPassiveMotionFunc(motion);
37 glutMainLoop();
38 return 0;
39 }
41 void disp(void)
42 {
43 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
45 imtk_begin();
47 if(imtk_button(0, "foobar", 100, 100)) {
48 printf("clicked button 0\n");
49 }
50 if(imtk_button(1, "xyzzy", 100, 200)) {
51 printf("clicked button 1\n");
52 }
54 imtk_end();
56 glutSwapBuffers();
57 }
59 void reshape(int x, int y)
60 {
61 glViewport(0, 0, x, y);
62 imtk_inp_reshape(x, y);
64 glMatrixMode(GL_PROJECTION);
65 glLoadIdentity();
66 glTranslatef(-1, -1, 0);
67 glScalef(2.0 / x, 2.0 / y, 1.0);
68 }
70 void keyb(unsigned char key, int x, int y)
71 {
72 switch(key) {
73 case 27:
74 exit(0);
76 default:
77 break;
78 }
80 imtk_inp_key(key, IMTK_DOWN);
81 }
83 void keyb_up(unsigned char key, int x, int y)
84 {
85 imtk_inp_key(key, IMTK_UP);
86 }
88 void skeyb(int key, int x, int y)
89 {
90 imtk_inp_key(key, IMTK_DOWN);
91 }
93 void skeyb_up(int key, int x, int y)
94 {
95 imtk_inp_key(key, IMTK_UP);
96 }
98 void mouse(int bn, int state, int x, int y)
99 {
100 imtk_inp_mouse(bn, state == GLUT_DOWN ? IMTK_DOWN : IMTK_UP);
101 }
103 void motion(int x, int y)
104 {
105 imtk_inp_motion(x, y);
106 }