diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-08 17:39:03 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-08 17:39:03 (GMT) |
| commit | b0ea52690ba56a0d0602ad8674b7e5ab2ba3e778 (patch) | |
| tree | 7d72e0509f4d2643d3be837a337d088ca5949c73 /includes/Renderer.h | |
| download | powder-b0ea52690ba56a0d0602ad8674b7e5ab2ba3e778.zip powder-b0ea52690ba56a0d0602ad8674b7e5ab2ba3e778.tar.gz | |
Initial
Diffstat (limited to 'includes/Renderer.h')
| -rw-r--r-- | includes/Renderer.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/includes/Renderer.h b/includes/Renderer.h new file mode 100644 index 0000000..39c8c1a --- /dev/null +++ b/includes/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 |
