rev |
line source |
nuclear@0
|
1 // GLUT frontend
|
nuclear@0
|
2 #ifdef USE_GLUT
|
nuclear@0
|
3
|
nuclear@0
|
4 #include <stdlib.h>
|
nuclear@0
|
5 #include "opengl.h"
|
nuclear@0
|
6
|
nuclear@0
|
7 #ifdef __APPLE__
|
nuclear@0
|
8 #include <GLUT/glut.h>
|
nuclear@0
|
9 #else
|
nuclear@0
|
10 #include <GL/glut.h>
|
nuclear@0
|
11 #endif
|
nuclear@0
|
12
|
nuclear@0
|
13 #include "dicomview.h"
|
nuclear@0
|
14
|
nuclear@0
|
15 static void display();
|
nuclear@0
|
16 static void reshape(int x, int y);
|
nuclear@0
|
17 static void key_down(unsigned char key, int x, int y);
|
nuclear@0
|
18 static void key_up(unsigned char key, int x, int y);
|
nuclear@0
|
19 static void mouse(int bn, int state, int x, int y);
|
nuclear@0
|
20 static void motion(int x, int y);
|
nuclear@0
|
21
|
nuclear@0
|
22 static float cam_theta, cam_phi, cam_dist = 6;
|
nuclear@0
|
23
|
nuclear@0
|
24 int main(int argc, char **argv)
|
nuclear@0
|
25 {
|
nuclear@0
|
26 glutInit(&argc, argv);
|
nuclear@0
|
27 glutInitWindowSize(1280, 800);
|
nuclear@0
|
28 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
|
nuclear@0
|
29 glutCreateWindow("dicom viewer");
|
nuclear@0
|
30
|
nuclear@0
|
31 glutDisplayFunc(display);
|
nuclear@0
|
32 glutReshapeFunc(reshape);
|
nuclear@0
|
33 glutKeyboardFunc(keyb);
|
nuclear@0
|
34 glutMouseFunc(mouse);
|
nuclear@0
|
35 glutMotionFunc(motion);
|
nuclear@0
|
36
|
nuclear@0
|
37 glewInit();
|
nuclear@0
|
38
|
nuclear@0
|
39 if(init() == -1) {
|
nuclear@0
|
40 return 1;
|
nuclear@0
|
41 }
|
nuclear@0
|
42
|
nuclear@0
|
43 glutMainLoop();
|
nuclear@0
|
44 return 0;
|
nuclear@0
|
45 }
|
nuclear@0
|
46
|
nuclear@0
|
47 void swap_buffers()
|
nuclear@0
|
48 {
|
nuclear@0
|
49 glutSwapBuffers();
|
nuclear@0
|
50 }
|
nuclear@0
|
51
|
nuclear@0
|
52 void redisplay()
|
nuclear@0
|
53 {
|
nuclear@0
|
54 glutPostRedisplay();
|
nuclear@0
|
55 }
|
nuclear@0
|
56
|
nuclear@0
|
57 void quit()
|
nuclear@0
|
58 {
|
nuclear@0
|
59 cleanup();
|
nuclear@0
|
60 exit(0);
|
nuclear@0
|
61 }
|
nuclear@0
|
62
|
nuclear@0
|
63 static void display()
|
nuclear@0
|
64 {
|
nuclear@0
|
65 ev_display();
|
nuclear@0
|
66 }
|
nuclear@0
|
67
|
nuclear@0
|
68 static void reshape(int x, int y)
|
nuclear@0
|
69 {
|
nuclear@0
|
70 ev_reshape(x, y);
|
nuclear@0
|
71 }
|
nuclear@0
|
72
|
nuclear@0
|
73 static void key_down(unsigned char key, int x, int y)
|
nuclear@0
|
74 {
|
nuclear@0
|
75 ev_keyboard(key, 1, x, y);
|
nuclear@0
|
76 }
|
nuclear@0
|
77
|
nuclear@0
|
78 static void key_up(unsigned char key, int x, int y)
|
nuclear@0
|
79 {
|
nuclear@0
|
80 ev_keyboard(key, 0, x, y);
|
nuclear@0
|
81 }
|
nuclear@0
|
82
|
nuclear@0
|
83 static void mouse(int bn, int state, int x, int y)
|
nuclear@0
|
84 {
|
nuclear@0
|
85 ev_mouse_button(bn - GLUT_LEFT_BUTTON, state == GLUT_DOWN ? 1 : 0, x, y);
|
nuclear@0
|
86 }
|
nuclear@0
|
87
|
nuclear@0
|
88 static void motion(int x, int y)
|
nuclear@0
|
89 {
|
nuclear@0
|
90 ev_mouse_motion(x, y);
|
nuclear@0
|
91 }
|
nuclear@0
|
92
|
nuclear@0
|
93 #endif // USE_GLUT
|