1 #ifndef gf_included_allglint_h 2 #define gf_included_allglint_h 7 struct allegro_gl_info {
11 int is_voodoo3_and_under;
15 int is_ati_radeon_7000;
22 struct allegro_gl_driver {
25 void (*gl_off) (void);
26 void (*screen_masked_blit)(
struct BITMAP *source,
int source_x,
27 int source_y,
int dest_x,
int dest_y,
28 int width,
int height,
int flip_dir,
34 struct allegro_gl_rgba_size {
40 struct allegro_gl_indexed_size {
46 union allegro_gl_pixel_size {
47 struct allegro_gl_rgba_size rgba;
48 struct allegro_gl_indexed_size indexed;
53 struct allegro_gl_display_info {
55 union allegro_gl_pixel_size pixel_size;
57 union allegro_gl_pixel_size accum_size;
64 int r_shift, g_shift, b_shift, a_shift;
65 int packed_pixel_type, packed_pixel_format;
75 extern struct allegro_gl_display_info allegro_gl_display_info;
76 extern struct allegro_gl_driver *__allegro_gl_driver;
77 extern struct allegro_gl_info allegro_gl_info;
78 extern int __allegro_gl_required_settings, __allegro_gl_suggested_settings;
79 extern int __allegro_gl_valid_context;
80 extern int __allegro_gl_use_alpha;
81 extern GLint __allegro_gl_texture_read_format[5];
82 extern GLint __allegro_gl_texture_components[5];
84 #ifdef ALLEGRO_WINDOWS 85 extern HDC __allegro_gl_hdc;
88 int __allegro_gl_make_power_of_2(
int x);
90 void __allegro_gl_reset_scorer (
void);
91 int __allegro_gl_score_config (
int refnum,
struct allegro_gl_display_info *dinfo);
92 int __allegro_gl_best_config (
void);
94 void __allegro_gl_set_allegro_image_format (
int big_endian);
96 void __allegro_gl_fill_in_info(
void);
98 void __allegro_gl_manage_extensions(
void);
99 void __allegro_gl_unmanage_extensions(
void);
100 void __allegro_gl_print_extensions(
const char * extension);
101 int __allegro_gl_look_for_an_extension(AL_CONST
char *name,
102 AL_CONST GLubyte * extensions);
105 extern _DRIVER_INFO *(*saved_gfx_drivers) (void);
107 typedef void (* BLIT_BETWEEN_FORMATS_FUNC) (
struct BITMAP*,
struct BITMAP*, int, int, int, int, int, int);
108 extern BLIT_BETWEEN_FORMATS_FUNC __blit_between_formats8;
109 extern BLIT_BETWEEN_FORMATS_FUNC __blit_between_formats15;
110 extern BLIT_BETWEEN_FORMATS_FUNC __blit_between_formats16;
111 extern BLIT_BETWEEN_FORMATS_FUNC __blit_between_formats24;
112 extern BLIT_BETWEEN_FORMATS_FUNC __blit_between_formats32;
114 void allegro_gl_memory_blit_between_formats(
struct BITMAP *source,
struct BITMAP *dest,
int source_x,
int source_y,
int dest_x,
int dest_y,
int width,
int height);
116 int allegro_gl_set_mouse_sprite(BITMAP *sprite,
int xfocus,
int yfocus);
117 int allegro_gl_show_mouse(BITMAP* bmp,
int x,
int y);
118 void allegro_gl_hide_mouse(
void);
119 void allegro_gl_move_mouse(
int x,
int y);
122 extern char const *__allegro_gl_get_format_description(GLint format);
123 extern int __allegro_gl_get_num_channels(GLenum format);
124 extern GLenum __allegro_gl_get_bitmap_type(BITMAP *bmp,
int flags);
125 extern GLenum __allegro_gl_get_bitmap_color_format(BITMAP *bmp,
int flags);
126 extern GLint __allegro_gl_get_texture_format_ex(BITMAP *bmp,
int flags);
127 extern BITMAP *__allegro_gl_munge_bitmap(
int flags, BITMAP *bmp,
int x,
int y,
128 int w,
int h, GLint *type, GLint *format);
130 extern int __allegro_gl_blit_operation;
136 typedef struct AGL_GLYPH {
139 int offset_x, offset_y, offset_w, offset_h;
160 typedef struct FONT_AGL_DATA {
169 AGL_GLYPH *glyph_coords;
173 struct FONT_AGL_DATA *next;
178 extern struct FONT_VTABLE *font_vtable_agl;
185 #define AGL_TEXTURE_FORCE_ALPHA_INTERNAL 0x80000000 190 #define AGL_TEXTURE_CHECK_VALID_INTERNAL 0x40000000 193 #define AGL_OP_LOGIC_OP 0x0 194 #define AGL_OP_BLEND 0x1 198 #define AGL_REGULAR_BMP 1 201 #define AGL_NO_ROTATION 2 207 #define AGL_LOG(level,str) 212 void __allegro_gl_log (
int level,
const char *str);
214 #define AGL_LOG(level,str) __allegro_gl_log (level, str) 221 #define GET_ALLEGRO_VERSION() MAKE_VER(ALLEGRO_VERSION, ALLEGRO_SUB_VERSION, \ 223 #define MAKE_VER(a, b, c) (((a) << 16) | ((b) << 8) | (c)) Main header file for AllegroGL.