annotate TaskManager/Test/simple_render/viewer.cpp @ 26:3f68b2ef4fb0

*** empty log message ***
author gongo
date Sun, 10 Feb 2008 18:31:48 +0900
parents
children 243ee0a1fe6f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
1 #include <iostream>
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
2 #include <SDL.h>
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
3 #include <SDL_opengl.h>
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
4 #include <math.h>
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
5 #include "polygon.h"
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
6 //#include "demonstration.h"
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
7 //#include "scene.h"
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
8 #include "viewer.h"
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
9 #include "sys.h"
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
10 using namespace std;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
11
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
12 extern int create_sgp(SceneGraphPack *sgp, Polygon *sg);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
13 extern int update_sgp(SceneGraphPack *sgp, SceneGraphPack *_sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
14 extern int create_pp(PolygonPack *pp, SceneGraphPack *sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
15
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
16 Viewer::Viewer(int b, int w, int h)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
17 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
18 bpp = b;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
19 width = w;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
20 height = h;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
21 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
22
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
23
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
24 void Viewer::sdl_init()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
25 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
26 if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
27 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
28 fprintf(stderr,"Couldn't initialize SDL: %s\n",SDL_GetError());
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
29 exit( 1 );
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
30 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
31 screen = SDL_SetVideoMode( width, height, bpp, SDL_HWSURFACE );
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
32
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
33 //manager = new TaskManager(1);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
34 //manager->init();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
35
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
36 manager->set_symbol("CreateSGP", (void*)create_sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
37 manager->set_symbol("UpdateSGP", (void*)update_sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
38 manager->set_symbol("CreatePP", (void*)create_pp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
39 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
40
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
41
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
42 void Viewer::init()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
43 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
44 if(SDL_Init( SDL_INIT_VIDEO ) < 0)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
45 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
46 cout << "Couldn't initialize SDL:" << SDL_GetError() << endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
47 exit(1);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
48 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
49
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
50 /* See if we should detect the display depth */
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
51 if(bpp == 0)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
52 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
53 if (SDL_GetVideoInfo()->vfmt->BitsPerPixel <= 8)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
54 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
55 bpp = 8;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
56 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
57 else
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
58 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
59 bpp = 16; /* More doesn't seem to work */
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
60 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
61 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
62
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
63 //video_flags = SDL_OPENGL;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
64 video_flags = SDL_HWSURFACE;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
65
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
66 /* Initialize the display */
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
67 switch (bpp)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
68 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
69 case 8:
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
70 rgb_size[0] = 3;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
71 rgb_size[1] = 3;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
72 rgb_size[2] = 2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
73 break;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
74 case 15:
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
75 case 16:
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
76 rgb_size[0] = 5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
77 rgb_size[1] = 5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
78 rgb_size[2] = 5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
79 break;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
80 default:
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
81 rgb_size[0] = 8;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
82 rgb_size[1] = 8;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
83 rgb_size[2] = 8;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
84 break;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
85 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
86
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
87 SDL_GL_SetAttribute(SDL_GL_RED_SIZE, rgb_size[0]);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
88 SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, rgb_size[1]);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
89 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, rgb_size[2]);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
90 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
91 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
92
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
93 SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
94
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
95 screen = SDL_SetVideoMode(width, height, bpp, video_flags);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
96
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
97 if(screen == NULL)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
98 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
99 cout << "Couldn't set GL mode: " << SDL_GetError() << endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
100 SDL_Quit();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
101 exit(1);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
102 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
103
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
104 SDL_WM_SetCaption("SDL GL test", "testgl");
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
105
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
106 glViewport(0, 0, width, height);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
107
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
108 glMatrixMode(GL_PROJECTION);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
109 glLoadIdentity();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
110
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
111 glOrtho(-width/10, width/10, -height/10, height/10, -40.0, 400.0);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
112
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
113 glMatrixMode(GL_MODELVIEW);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
114 glLoadIdentity();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
115
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
116 glEnable(GL_DEPTH_TEST);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
117
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
118 glDepthFunc(GL_LESS);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
119
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
120 glShadeModel(GL_SMOOTH);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
121 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
122
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
123 int Viewer::get_ticks()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
124 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
125 int time;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
126 time = SDL_GetTicks();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
127 return time;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
128 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
129
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
130 bool Viewer::quit_check()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
131 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
132 bool quit = false;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
133 SDL_Event event;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
134 while(SDL_PollEvent(&event))
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
135 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
136 if(event.type==SDL_QUIT)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
137 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
138 quit = true;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
139 return quit;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
140 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
141 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
142 return quit;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
143 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
144
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
145 void Viewer::quit()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
146 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
147 SDL_Quit();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
148 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
149
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
150
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
151 void Viewer::swap_buffers()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
152 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
153 SDL_GL_SwapBuffers();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
154 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
155
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
156
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
157 void Viewer::write_pixel(int x, int y,float z, Uint32 rgb) {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
158 SDL_PixelFormat *pf;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
159 pf = screen->format;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
160 //printf("x:%d y:%d z:%d\n",x,y,z);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
161
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
162 //cout << "write_pixel" << endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
163 //cout << x << " " << y << endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
164
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
165 //cout << SDL_MapRGB(pf,0,0,150) << endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
166
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
167 x += width/2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
168 y += height/2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
169
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
170 static int diffz,diffz1;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
171 diffz1 = diffz;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
172 diffz = (zRow[x][y]>z);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
173 if(diffz != diffz1) {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
174 //printf("diffz :%d zRow[%d][%d] = %f z = %f\n",diffz,x,y,zRow[x][y],z);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
175 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
176 //printf("x:%d,y:%d,z:%f,zRow:%f\n",x,y,z,zRow[x][y]);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
177 if(z < zRow[x][y]) {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
178 // printf("x:%d,y:%d,z:%d\n",x,y,z,zRow);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
179 if(x < width && x > 0 && y > 0 && y < height)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
180 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
181 //pixels[width*y + x] = SDL_MapRGB(pf,70,70,71);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
182 zRow[x][y] = z;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
183 y = height - y;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
184 pixels[width*y + x] = rgb;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
185 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
186 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
187 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
188
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
189 void Viewer::write_line(float x1, float y1, float x2, float y2, Uint32 rgb)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
190 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
191 //cout << "write_line("<< x1 << "," << y1 << "," << x2 << "," << y2 << ")"<< endl;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
192
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
193 //Uint32 rgb = 9830400;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
194
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
195 if(x1 > x2)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
196 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
197 float x=0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
198 float y=0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
199 x=x1;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
200 y=y1;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
201 x1 = x2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
202 y1 = y2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
203 x2 = x;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
204 y2 = y;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
205 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
206 float s = y1;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
207
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
208 if((int)x1 == (int)x2)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
209 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
210 if(y1 > y2)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
211 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
212 float y=0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
213 y = y1;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
214 y1 = y2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
215 y2 = y;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
216 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
217 for(float i=y1; i<y2; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
218 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
219 //write_pixel((int)x1,(int)i);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
220 write_pixel((int)x1,(int)i,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
221 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
222 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
223 else
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
224 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
225 float t = (y2 - y1)/(x2 - x1);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
226 if(t < -1)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
227 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
228 float f = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
229 for(float i=x1; i<x2; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
230 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
231 for(float a=(int)t; a<0; a++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
232 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
233 //write_pixel((int)i,(int)s);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
234 write_pixel((int)i,(int)s,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
235 s--;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
236 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
237 f += t-(int)t;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
238 if(f <= -1)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
239 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
240 //write_pixel((int)i,(int)s);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
241 write_pixel((int)i,(int)s,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
242 f = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
243 s--;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
244 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
245 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
246 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
247 else if(t <= 1)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
248 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
249 for(float i=x1; i<x2; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
250 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
251 //write_pixel((int)i,(int)s);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
252 write_pixel((int)i,(int)s,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
253 s += t;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
254 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
255 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
256 else
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
257 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
258 float f = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
259 for(float i=x1; i<x2; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
260 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
261 for(float a=0; a<(int)t; a++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
262 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
263 //write_pixel((int)i,(int)s);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
264 write_pixel((int)i,(int)s,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
265 s++;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
266 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
267 f += t-(int)t;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
268 if(f >= 1)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
269 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
270 //write_pixel((int)i,(int)s);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
271 write_pixel((int)i,(int)s,0,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
272 f = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
273 s++;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
274 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
275 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
276 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
277 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
278 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
279
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
280 void Viewer::write_triangle(float x1, float y1, float x2, float y2, float x3, float y3, Uint32 rgb)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
281 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
282 write_line(x1,y1,x2,y2,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
283 write_line(x2,y2,x3,y3,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
284 write_line(x3,y3,x1,y1,rgb);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
285 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
286
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
287 void Viewer::clean_pixels()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
288 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
289 for(int i=0; i<width*height; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
290 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
291 pixels[i] = 0x00;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
292 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
293 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
294
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
295 void Viewer::graph_line()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
296 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
297 int xl = width*height/2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
298 int yl = width/2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
299 for(int i=0; i<width; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
300 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
301 for(int t=0; t<height; t+=20)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
302 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
303 pixels[width*t+i] = 0x5a;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
304 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
305 pixels[xl +i] = 0xff;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
306 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
307 for(int i=0; i<height; i++)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
308 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
309 for(int t=0; t<width; t+=20)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
310 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
311 pixels[i*width+t] = 0x5a;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
312 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
313 pixels[i*width+yl] = 0xff;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
314 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
315 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
316
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
317
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
318 void Viewer::run()
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
319 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
320 int frames = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
321 int start_time, this_time;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
322
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
323 HTaskPtr task_update_sgp = NULL;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
324 HTaskPtr task_create_pp = NULL;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
325 int fd_update_sgp;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
326 int fd_create_pp;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
327
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
328 start_time = get_ticks();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
329
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
330 SDL_Surface *bitmap = NULL;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
331 SDL_PixelFormat *pf;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
332 pf = screen->format;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
333
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
334 Uint32 background;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
335 background = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
336
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
337 pixels = new Uint32[width*height];
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
338
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
339 Polygon *p = new Polygon;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
340 p->set_data("cube.xml");
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
341 //p->set_data("cube-p.xml");
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
342
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
343 p->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
344 //p->screen = screen;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
345 /*
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
346 p->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
347 p->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
348 p->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
349 p->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
350 p->next->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
351 p->next->next->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
352 p->next->next->next->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
353 p->next->next->next->next->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
354 p->next->next->next->next->next->next->next->next->next->viewer = this;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
355 */
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
356
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
357 SceneGraphPack *sgp = new SceneGraphPack;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
358 create_sgp(sgp,p);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
359
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
360 PolygonPack *pp = new PolygonPack;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
361
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
362 graph_line();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
363
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
364 float r = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
365 float x = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
366 float y = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
367 float z = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
368
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
369 // Loop until done.
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
370 while(1)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
371 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
372 // Destroy our GL context, etc.
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
373 //if(quit_check() || scene->action_scene==NULL)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
374 if(quit_check())
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
375 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
376 this_time = get_ticks();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
377 if (this_time != start_time)
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
378 {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
379 cout<<((float)frames/(this_time-start_time))*1000.0<<" FPS\n";
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
380 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
381 SDL_FreeSurface(bitmap);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
382 delete pixels;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
383 p->delete_data();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
384 delete p;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
385 delete sgp;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
386 delete pp;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
387 quit();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
388 break;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
389 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
390 /////////////////////
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
391 clean_pixels();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
392
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
393 this->zRow_init();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
394 graph_line();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
395
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
396 if(r > 360) r = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
397 r+= 1.0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
398 // r= 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
399 p->angle[0] = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
400 p->angle[1] = r;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
401 p->angle[2] = 0;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
402 //p->child->angle[1] = r*2;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
403 //p->child->brother->angle[1] = r*3;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
404 //p->child->brother->child->angle[1] = r*4;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
405 x += 0.5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
406 y += 0.5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
407 z += 0.5;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
408 //p->xyz[0] = x;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
409 //p->xyz[1] = y;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
410 //p->xyz[2] = z;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
411 //p->tree_draw();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
412
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
413
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
414 update_sgp(sgp, sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
415 //create_pp(pp, sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
416
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
417 //fd_update_sgp = manager->open("UpdateSGP");
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
418 fd_create_pp = manager->open("CreatePP");
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
419 #if 1
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
420 //task_update_sgp = manager->create_task(fd_update_sgp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
421 //sizeof(SceneGraphPack),
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
422 //(unsigned int)sgp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
423 // (unsigned int)sgp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
424 //NULL);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
425
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
426 task_create_pp = manager->create_task(fd_create_pp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
427 sizeof(SceneGraphPack),
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
428 (unsigned int)sgp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
429 (unsigned int)pp,
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
430 NULL);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
431 //manager->set_task_depend(task_update_sgp, task_create_pp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
432 //manager->spawn_task(task_update_sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
433 manager->spawn_task(task_create_pp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
434
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
435 manager->run();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
436 #endif
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
437 //p->draw(sgp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
438 p->draw(pp);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
439
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
440 bitmap = SDL_CreateRGBSurfaceFrom((void *)pixels,width,height,32,width*4,0x00ff0000,0x0000ff00,0x000000ff,0);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
441 SDL_FillRect(screen, NULL, background);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
442 SDL_BlitSurface(bitmap,NULL,screen,NULL);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
443 SDL_UpdateRect(screen,0,0,0,0);
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
444
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
445
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
446 /////////////////////
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
447
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
448 //swap_buffers();
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
449 ++frames;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
450 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
451 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
452
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
453 void Viewer::zRow_init() {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
454 int i,j;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
455 for(i = 0;i < 640; i++) {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
456 for(j = 0; j < 480; j++) {
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
457 zRow[i][j] = 65535;
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
458 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
459 }
3f68b2ef4fb0 *** empty log message ***
gongo
parents:
diff changeset
460 }