chiark / gitweb /
Proper Subversion configuration.
[newkind] / gfx.h
1 /*
2  * Elite - The New Kind.
3  *
4  * Reverse engineered from the BBC disk version of Elite.
5  * Additional material by C.J.Pinder.
6  *
7  * The original Elite code is (C) I.Bell & D.Braben 1984.
8  * This version re-engineered in C by C.J.Pinder 1999-2001.
9  *
10  * email: <christian@newkind.co.uk>
11  *
12  *
13  */
14
15
16 /**
17  *
18  * Elite - The New Kind.
19  *
20  * The code in this file has not been derived from the original Elite code.
21  * Written by C.J.Pinder 1999/2000.
22  *
23  **/
24
25
26 #ifndef GFX_H
27 #define GFX_H
28
29 #ifdef RES_512_512
30
31 #define GFX_SCALE               (2)
32 #define GFX_X_OFFSET    (0)
33 #define GFX_Y_OFFSET    (0)
34 #define GFX_X_CENTRE    (256)
35 #define GFX_Y_CENTRE    (192)
36
37 #define GFX_VIEW_TX             1
38 #define GFX_VIEW_TY             1
39 #define GFX_VIEW_BX             509
40 #define GFX_VIEW_BY             381
41
42 #endif
43
44 #ifdef RES_800_600
45
46 #define GFX_SCALE               (2)
47 #define GFX_X_OFFSET    (144)
48 #define GFX_Y_OFFSET    (44)
49 #define GFX_X_CENTRE    (256)
50 #define GFX_Y_CENTRE    (192)
51
52 #define GFX_VIEW_TX             1
53 #define GFX_VIEW_TY             1
54 #define GFX_VIEW_BX             509
55 #define GFX_VIEW_BY             381
56
57 #endif
58
59 #ifndef GFX_SCALE
60
61 #define GFX_SCALE               (1)
62 #define GFX_X_OFFSET    (0)
63 #define GFX_Y_OFFSET    (0)
64 #define GFX_X_CENTRE    (128)
65 #define GFX_Y_CENTRE    (96)
66
67 #define GFX_VIEW_TX             1
68 #define GFX_VIEW_TY             1
69 #define GFX_VIEW_BX             253
70 #define GFX_VIEW_BY             191
71
72 #endif
73  
74
75
76 #define GFX_COL_BLACK           0
77 #define GFX_COL_DARK_RED        28
78 #define GFX_COL_WHITE           255
79 #define GFX_COL_GOLD            39
80 #define GFX_COL_RED                     49
81 #define GFX_COL_CYAN            11
82
83 #define GFX_COL_GREY_1          248
84 #define GFX_COL_GREY_2          235
85 #define GFX_COL_GREY_3          234
86 #define GFX_COL_GREY_4          237
87
88 #define GFX_COL_BLUE_1          45
89 #define GFX_COL_BLUE_2          46
90 #define GFX_COL_BLUE_3          133
91 #define GFX_COL_BLUE_4          4
92
93 #define GFX_COL_RED_3           1
94 #define GFX_COL_RED_4           71
95
96 #define GFX_COL_WHITE_2         242
97
98 #define GFX_COL_YELLOW_1        37
99 #define GFX_COL_YELLOW_2        39
100 #define GFX_COL_YELLOW_3        89
101 #define GFX_COL_YELLOW_4        160
102 #define GFX_COL_YELLOW_5        251
103
104 #define GFX_ORANGE_1            76
105 #define GFX_ORANGE_2            77
106 #define GFX_ORANGE_3            122
107
108 #define GFX_COL_GREEN_1         2
109 #define GFX_COL_GREEN_2         17
110 #define GFX_COL_GREEN_3         86
111
112 #define GFX_COL_PINK_1          183
113
114 #define IMG_GREEN_DOT           1
115 #define IMG_RED_DOT                     2
116 #define IMG_BIG_S                       3
117 #define IMG_ELITE_TXT           4
118 #define IMG_BIG_E                       5
119 #define IMG_DICE                        6
120 #define IMG_MISSILE_GREEN       7
121 #define IMG_MISSILE_YELLOW      8
122 #define IMG_MISSILE_RED         9
123 #define IMG_BLAKE                       10
124
125
126 int gfx_graphics_startup (void);
127 void gfx_graphics_shutdown (void);
128 void gfx_update_screen (void);
129 void gfx_acquire_screen (void);
130 void gfx_release_screen (void);
131 void gfx_plot_pixel (int x, int y, int col);
132 void gfx_fast_plot_pixel (int x, int y, int col);
133 void gfx_draw_filled_circle (int cx, int cy, int radius, int circle_colour);
134 void gfx_draw_circle (int cx, int cy, int radius, int circle_colour);
135 void gfx_draw_line (int x1, int y1, int x2, int y2);
136 void gfx_draw_colour_line (int x1, int y1, int x2, int y2, int line_colour);
137 void gfx_draw_triangle (int x1, int y1, int x2, int y2, int x3, int y3, int col);
138 void gfx_draw_rectangle (int tx, int ty, int bx, int by, int col);
139 void gfx_display_text (int x, int y, char *txt);
140 void gfx_display_colour_text (int x, int y, char *txt, int col);
141 void gfx_display_centre_text (int y, char *str, int psize, int col);
142 void gfx_clear_display (void);
143 void gfx_clear_text_area (void);
144 void gfx_clear_area (int tx, int ty, int bx, int by);
145 void gfx_display_pretty_text (int tx, int ty, int bx, int by, char *txt);
146 void gfx_draw_scanner (void);
147 void gfx_set_clip_region (int tx, int ty, int bx, int by);
148 void gfx_polygon (int num_points, int *poly_list, int face_colour);
149 void gfx_draw_sprite (int sprite_no, int x, int y);
150 void gfx_start_render (void);
151 void gfx_render_polygon (int num_points, int *point_list, int face_colour, int zavg);
152 void gfx_render_line (int x1, int y1, int x2, int y2, int dist, int col);
153 void gfx_finish_render (void);
154 int gfx_request_file (char *title, char *path, char *ext);
155
156 #endif