dungeon_crawler
diff prototype/src/main.cc @ 15:3a3236a4833c
adding shaders and renderer abstraction
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 19 Aug 2012 23:09:30 +0300 |
parents | b10ba85f75e0 |
children | 91180ee7b7d9 |
line diff
1.1 --- a/prototype/src/main.cc Sun Aug 19 06:30:18 2012 +0300 1.2 +++ b/prototype/src/main.cc Sun Aug 19 23:09:30 2012 +0300 1.3 @@ -7,11 +7,13 @@ 1.4 #include "camera.h" 1.5 #include "datapath.h" 1.6 #include "tileset.h" 1.7 +#include "renderer.h" 1.8 1.9 bool init(); 1.10 void cleanup(); 1.11 void idle(); 1.12 void disp(); 1.13 +void draw(); 1.14 void update(unsigned long msec); 1.15 void reshape(int x, int y); 1.16 void keyb(unsigned char key, int x, int y); 1.17 @@ -70,6 +72,10 @@ 1.18 1.19 add_data_path("data"); 1.20 1.21 + if(!init_renderer()) { 1.22 + return false; 1.23 + } 1.24 + 1.25 // load a tileset 1.26 tileset = new TileSet; 1.27 if(!tileset->load(datafile_path("default.tileset"))) { 1.28 @@ -88,6 +94,14 @@ 1.29 return true; 1.30 } 1.31 1.32 +void cleanup() 1.33 +{ 1.34 + delete level; 1.35 + delete tileset; 1.36 + 1.37 + destroy_renderer(); 1.38 +} 1.39 + 1.40 void idle() 1.41 { 1.42 glutPostRedisplay(); 1.43 @@ -103,7 +117,7 @@ 1.44 glLoadIdentity(); 1.45 cam.use_inverse(); 1.46 1.47 - level->draw(); 1.48 + render_deferred(draw); 1.49 1.50 glutSwapBuffers(); 1.51 assert(glGetError() == GL_NO_ERROR); 1.52 @@ -111,6 +125,11 @@ 1.53 usleep(10000); 1.54 } 1.55 1.56 +void draw() 1.57 +{ 1.58 + level->draw(); 1.59 +} 1.60 + 1.61 void update(unsigned long msec) 1.62 { 1.63 static unsigned long last_upd;