original 1.0.1 release
[xwelltris.git] / src / include / welldrawing.h
blobf9dfeb642794a134f7df418c2abe544d9f6bc270
1 #ifndef DRAWING_H
2 #define DRAWING_H
4 #include "globals.h"
5 #include "welltris.h"
6 #include "wellsimpledraw.h"
7 #include "geometry.h"
9 struct FieldPoints
11 WPoint wall_points[MAX_PERIMETER+1][MAX_DEPTH+1];
12 WPoint base_points[MAX_WIDTH+1][MAX_WIDTH+1];
15 class WellDrawingEngine: public WellSimpleDraw
17 protected:
18 int num_fields;
19 unsigned int l,h;
20 int delta_x,delta_y;
21 int current_id;
23 int pix_max_width;
24 int pix_base_width;
25 int pix_base_delta;
26 int pix_wall_delta;
27 int pix_max_delta;
28 int pix_dx,pix_dy;
29 int center_x,center_y;
30 int f_step;
32 float inner_max_alpha,outer_max_alpha;
34 FieldPoints *points;
36 public:
37 virtual void init(int,int,int,unsigned int,unsigned int);
38 virtual void draw_square(int color, int x, int y);
39 virtual void draw_trapazoid(int color, int x, int y);
40 virtual void sync();
41 virtual void field_sync() {};
42 virtual void bell(int);
43 virtual void flush_all();
44 virtual void flush_dirty();
45 virtual void clear_field(int i) {};
46 virtual void set_field_id(int id) { current_id=id;};
47 virtual void draw_grid() {};
48 virtual Actions key_to_action(void* event) { return NOTHING; };
49 virtual void calc_grid_points();
50 virtual void set_field_sizes(int idx, int idy,
51 int ipix_wall_delta,
52 int ipix_base_delta);
53 virtual void set_inner_alpha(float ialpha) { inner_max_alpha=
54 ialpha*float(W_PI/180.0);};
55 virtual void set_outer_alpha(float ialpha) { outer_max_alpha=
56 ialpha*float(W_PI/180.0);};
57 virtual void outer_rotation();
58 virtual void pixmap_copy(Geo *pgeo) {};
62 #endif