annotate Renderer/Engine/viewerGL.h @ 1479:163220e54cc0 draft

remove hard code for TaskLog
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Tue, 24 Jul 2012 17:15:15 +0900
parents f389d7fcc25c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 /**
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * OpenGLを用いてレンダリングを行うクラスです。
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 * MacOSX上での高速な動作を目的としたViewerです。
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 * ViewerとViewerDevice 一体型です。
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 * 通常の計算(Move, Collision)はそのままです。
927
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
6 * 描画の部分はTaskを使わず、OpenGLで直に描画します。
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 **/
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #ifndef INCLUDED_VIEWER_GL
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 #define INCLUDED_VIEWER_GL
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #include <SDL.h>
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #include <SDL_opengl.h>
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 #include "viewer_types.h"
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 #include "TaskManager.h"
927
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
16 #include "SceneGraphRoot.h"
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #include "KeyStat.h"
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 #include "MainLoop.h"
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 #include "Application.h"
927
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
20 #include "Func.h"
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
21 #include "texture.h"
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
22 #include "lindaapi.h"
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
929
21be2f7e13ff adjust glOrtho
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 927
diff changeset
25 namespace OPENGL_PARAM {
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
26 static const double near = -1000.0;
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
27 static const double far = 1000.0;
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
28 static const GLfloat lightAmbient[] = {0.25f, 0.25f, 0.25f};
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
29 static const GLfloat lightDiffuse[] = {1.0f, 1.0f, 1.0f};
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
30 static const GLfloat lightSpecular[] = {1.0f, 1.0f, 1.0f};
959
f389d7fcc25c success alpha blending
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 944
diff changeset
31 static const GLfloat lightPosition[] = {0.5f, 0.5f, -1.0f, 0.0f};
929
21be2f7e13ff adjust glOrtho
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 927
diff changeset
32 }
21be2f7e13ff adjust glOrtho
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 927
diff changeset
33
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
34 class ViewerGL : public Viewer {
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
35 public:
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
36 ViewerGL(TaskManager *m, int b, int w, int h, int _num);
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
37 ~ViewerGL(){};
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
39 private:
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
40 bool quit_flag;
927
fada580e4604 remove garbage codes from viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 922
diff changeset
41
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
42 /* measure for FPS (Frame Per Second) */
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
43 int start_time;
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
44 int this_time;
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
45 int frames;
931
ec1b15cdfee0 Add Lighting to GL mode
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 929
diff changeset
46
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
47 public:
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
48 void video_init(int bpp, int width, int height);
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
49 void run_loop();
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
50 void pickup_vertex();
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
51 void obj_draw(float *xyz, float *tex_xyz, float *normal_xyz);
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
52 void clean_pixels();
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
53 void clear_screen();
931
ec1b15cdfee0 Add Lighting to GL mode
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 929
diff changeset
54
944
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
55 /* override function */
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
56 void mainLoop();
0ab84d4c689a rename viewerGL
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents: 931
diff changeset
57 void run_finish();
922
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 };
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
cb1023423861 moving OpenGL mode now!
koba <koba@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 #endif