summaryrefslogtreecommitdiff
path: root/src/Renderer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Renderer.h')
-rw-r--r--src/Renderer.h60
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