3 Quick and Dirty Game Development Framework (QDGDF)
5 Copyright (C) 2001/2011 Angel Ortega <angel@triptico.com>
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 http://www.triptico.com
25 #ifndef QDGDF_VIDEO_H_
26 #define QDGDF_VIDEO_H_
35 extern char _qdgdfv_fopen_path
[250];
37 extern int _qdgdfv_use_logger
;
38 extern char _qdgdfv_logger_file
[150];
40 extern int _qdgdfv_scale
;
41 extern int _qdgdfv_double_mode
;
42 extern int _qdgdfv_scale2x
;
43 extern unsigned char *_qdgdfv_virtual_screen
;
44 extern unsigned char _qdgdfv_clear_color
;
45 extern unsigned int _qdgdfv_screen_x_size
;
46 extern unsigned int _qdgdfv_screen_y_size
;
47 extern int _qdgdfv_window_x
;
48 extern int _qdgdfv_window_y
;
49 extern char _qdgdfv_window_title
[150];
50 extern char _qdgdfv_additional_info
[150];
51 extern int _qdgdfv_additional_int_info
;
52 extern int _qdgdfv_double_antialias
;
53 extern int _qdgdfv_gamma_correct
;
55 extern int _qdgdfv_key_up
;
56 extern int _qdgdfv_key_down
;
57 extern int _qdgdfv_key_left
;
58 extern int _qdgdfv_key_right
;
59 extern int _qdgdfv_key_escape
;
60 extern int _qdgdfv_key_space
;
61 extern int _qdgdfv_key_enter
;
62 extern int _qdgdfv_key_pgup
;
63 extern int _qdgdfv_key_pgdn
;
64 extern int _qdgdfv_key_home
;
65 extern int _qdgdfv_key_end
;
66 extern int _qdgdfv_key_f1
;
67 extern int _qdgdfv_key_f2
;
68 extern int _qdgdfv_key_f3
;
69 extern int _qdgdfv_key_f4
;
70 extern int _qdgdfv_key_f5
;
71 extern int _qdgdfv_key_f6
;
72 extern int _qdgdfv_key_f7
;
73 extern int _qdgdfv_key_f8
;
74 extern int _qdgdfv_key_f9
;
75 extern int _qdgdfv_key_f10
;
77 /* Dan Compton made these changes and additions */
78 extern int _qdgdfv_key_control
;
79 extern int _qdgdfv_key_shift_l
;
80 extern int _qdgdfv_key_shift_r
;
81 extern int _qdgdfv_key_alnum
; /* catches alpha chars and numbers */
82 extern char _qdgdfv_alnum
; /* contains the ascii char of alpha or number or
83 might contain a OS dependent defined keycode
84 which would be conditionally compiled in for
87 extern unsigned int _qdgdfv_palette
[256 * 3];
88 extern unsigned int _qdgdfv_extended_palette
[256];
89 extern int _qdgdfv_pixel_size
;
90 unsigned int _qdgdfv_red_mask
;
91 unsigned int _qdgdfv_green_mask
;
92 unsigned int _qdgdfv_blue_mask
;
93 int _qdgdfv_red_shift
;
94 int _qdgdfv_green_shift
;
95 int _qdgdfv_blue_shift
;
97 extern char *_qdgdfv_version
;
99 extern int _qdgdfv_font_height
;
100 extern int _qdgdfv_font_blend
;
101 extern int _qdgdfv_convert_ktl_to_proportional
;
103 extern int _qdgdfv_full_screen
;
105 struct _qdgdfv_driver
{
107 void (*set_palette
) (void);
108 void (*dump_virtual_screen
) (void);
109 void (*input_poll
) (void);
112 int (*startup
) (void);
113 void (*shutdown
) (void);
117 char *qdgdfv_sprintf(char *fmt
, ...);
118 void qdgdfv_logger(char *where
, char *msg
);
119 void *qdgdfv_malloc(int size
);
121 FILE *_qdgdfv_fopen(char *file
, char *mode
);
122 FILE *qdgdfv_fopen(char *file
, char *mode
);
123 char *qdgdfv_path_find(const char *file
);
125 void qdgdfv_bang(char *where
, char *msg
);
126 #define qdgdfv_bangif(where,cond) if(cond) qdgdfv_bang(where,#cond)
128 void qdgdfv_load_pcx(unsigned char *pcx
, char *pcxfile
, int size
);
129 void qdgdfv_load_pcx_pal(unsigned char *pcx
, char *pcxfile
, int size
);
130 void qdgdfv_load_pcx_pal_set(unsigned char *pcx
, char *pcxfile
, int size
);
132 void qdgdfv_load_palette(char *palfile
);
133 void qdgdfv_set_palette(void);
135 void qdgdfv_input_poll(void);
136 void qdgdfv_clear_virtual_screen(void);
138 void _qdgdfv_dump2_screen(unsigned char *, short *);
139 void _qdgdfv_dump4_screen(unsigned char *, int *);
141 void _qdgdfv_double_dump1_screen(unsigned char *, char *);
142 void _qdgdfv_double_dump2_screen(unsigned char *, short *);
143 void _qdgdfv_double_dump4_screen(unsigned char *, int *);
145 void _qdgdfv_triple_dump1_screen(unsigned char *, char *);
146 void _qdgdfv_triple_dump2_screen(unsigned char *, short *);
147 void _qdgdfv_triple_dump4_screen(unsigned char *, int *);
149 void _qdgdfv_s2x_dump1_screen(unsigned char *, char *);
150 void _qdgdfv_s2x_dump2_screen(unsigned char *, short *);
151 void _qdgdfv_s2x_dump4_screen(unsigned char *, int *);
153 void _qdgdfv_s3x_dump1_screen(unsigned char *, char *);
154 void _qdgdfv_s3x_dump2_screen(unsigned char *, short *);
155 void _qdgdfv_s3x_dump4_screen(unsigned char *, int *);
157 void qdgdfv_dump_virtual_screen(void);
158 void qdgdfv_assert_in_virtual_screen(char *func
, unsigned char *ptr
);
160 unsigned char qdgdfv_seek_color(int r
, int g
, int b
);
162 int qdgdfv_timer(int reset
);
164 void qdgdfv_build_light_table(unsigned char *lut
, int levels
, int mid
);
165 void qdgdfv_build_light_table_ext(unsigned char *lut
, int levels
,
166 int mid
, int fr
, int fg
, int fb
);
168 unsigned char qdgdfv_blend_color(unsigned char c1
, unsigned char c2
,
171 void qdgdfv_set_accum_buffer(int percent
);
173 int qdgdfv_extended_key_status(int *key_var
);
175 void qdgdfv_load_ktl_font(char *fontfile
);
176 int qdgdfv_font_size(char *string
);
177 void qdgdfv_font_print(int x
, int y
, unsigned char *string
,
178 unsigned char color
);
180 char *qdgdfv_home_dir(void);
181 char *qdgdfv_app_dir(void);
183 int qdgdfv_opengl(int onoff
);
185 void qdgdfv_startup(void);
186 void qdgdfv_shutdown(void);
188 #endif /* QDGDF_VIDEO_H_ */