diff options
Diffstat (limited to 'src/Renderer.h')
| -rw-r--r-- | src/Renderer.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/Renderer.h b/src/Renderer.h new file mode 100644 index 0000000..39c8c1a --- /dev/null +++ b/src/Renderer.h @@ -0,0 +1,60 @@ +#ifndef RENDERER_H +#define RENDERER_H + +#include "Config.h" +#include "Simulation.h" +#include "Graphics.h" + +class Simulation; + +class Graphics; + +struct gcache_item +{ + int isready; + int pixel_mode; + int cola, colr, colg, colb; + int firea, firer, fireg, fireb; +}; +typedef struct gcache_item gcache_item; + +class Renderer +{ +public: + //TODO: Vectors! + unsigned int *render_modes; + unsigned int render_mode; + unsigned int colour_mode; + unsigned int *display_modes; + unsigned int display_mode; + // + unsigned char fire_r[YRES/CELL][XRES/CELL]; + unsigned char fire_g[YRES/CELL][XRES/CELL]; + unsigned char fire_b[YRES/CELL][XRES/CELL]; + unsigned int fire_alpha[CELL*3][CELL*3]; + char * flm_data; + char * plasma_data; + int emp_decor; + // + int decorations_enable; + Simulation * sim; + Graphics * g; + gcache_item *graphicscache; + // + void draw_walls(); + void render_signs(); + void render_gravlensing(); + void render_fire(); + void prepare_alpha(int size, float intensity); + void render_parts(); + void draw_grav_zones(); + void draw_air(); + void draw_grav(); + void draw_other(); + void init_display_modes(); + void get_sign_pos(int i, int *x0, int *y0, int *w, int *h); + void prepare_graphicscache(); + Renderer(Graphics * g, Simulation * sim); +}; + +#endif |
