48 #define SDR_FLAG_MODEL_LIGHT (1<<0)
49 #define SDR_FLAG_MODEL_FOG (1<<1)
50 #define SDR_FLAG_MODEL_DIFFUSE_MAP (1<<2)
51 #define SDR_FLAG_MODEL_GLOW_MAP (1<<3)
52 #define SDR_FLAG_MODEL_SPEC_MAP (1<<4)
53 #define SDR_FLAG_MODEL_NORMAL_MAP (1<<5)
54 #define SDR_FLAG_MODEL_HEIGHT_MAP (1<<6)
55 #define SDR_FLAG_MODEL_ENV_MAP (1<<7)
56 #define SDR_FLAG_MODEL_ANIMATED (1<<8)
57 #define SDR_FLAG_MODEL_MISC_MAP (1<<9)
58 #define SDR_FLAG_MODEL_TEAMCOLOR (1<<10)
59 #define SDR_FLAG_MODEL_TRANSFORM (1<<11)
60 #define SDR_FLAG_MODEL_DEFERRED (1<<12)
61 #define SDR_FLAG_MODEL_SHADOW_MAP (1<<13)
62 #define SDR_FLAG_MODEL_GEOMETRY (1<<14)
63 #define SDR_FLAG_MODEL_SHADOWS (1<<15)
64 #define SDR_FLAG_MODEL_THRUSTER (1<<16)
65 #define SDR_FLAG_MODEL_CLIP (1<<17)
67 #define SDR_FLAG_PARTICLE_POINT_GEN (1<<0)
69 #define SDR_FLAG_BLUR_HORIZONTAL (1<<0)
70 #define SDR_FLAG_BLUR_VERTICAL (1<<1)
88 #define AC_TYPE_NONE 0 // Not an alphacolor
89 #define AC_TYPE_HUD 1 // Doesn't change hue depending on background. Used for HUD stuff.
90 #define AC_TYPE_BLEND 2 // Changes hue depending on background. Used for stars, etc.
135 bool compare_indices;
139 finder(
poly_list* _search_list): search_list(_search_list), compare_indices(
true), vert_to_find(NULL), norm_to_find(NULL) {}
140 finder(
poly_list* _search_list,
vertex* _vert,
vec3d* _norm): search_list(_search_list), compare_indices(
false), vert_to_find(_vert), norm_to_find(_norm) {}
163 int currently_allocated;
164 int find_first_vertex(
int idx);
165 int find_first_vertex_fast(
int idx);
166 void generate_sorted_index_list();
215 if (i_first > i_last)
216 i_first = i_last = j;
217 else if (i_first > j)
226 flags(0), texture(-1), n_verts(0), index_offset(0),
227 i_first(1), i_last(0),
index(NULL)
232 flags(0), texture(-1), n_verts(n_vrts), index_offset(0),
233 i_first(1), i_last(0),
index(NULL)
274 if ( rhs.index && rhs.
n_verts > 0 ) {
317 flags(0), stride(0), vertex_offset(0), model_list(NULL)
348 #define GR_ALPHABLEND_NONE 0 // no blending
349 #define GR_ALPHABLEND_FILTER 1 // 50/50 mix of foreground, background, using intensity as alpha
351 #define GR_BITBLT_MODE_NORMAL 0 // Normal bitblting
352 #define GR_BITBLT_MODE_RLE 1 // RLE would be faster
355 #define GR_FOGMODE_NONE 0 // set this to turn off fog
356 #define GR_FOGMODE_FOG 1 // linear fog
440 void (*
gf_arc)(
int x,
int y,
float r,
float angle_start,
float angle_end,
bool fill,
int resize_mode);
525 void (*
gf_cross_fade)(
int bmap1,
int bmap2,
int x1,
int y1,
int x2,
int y2,
float pct,
int resize_mode);
528 int (*
gf_tcache_set)(
int bitmap_id,
int bitmap_type,
float *u_scale,
float *v_scale,
int stage);
639 #define GR_MAYBE_CLEAR_RES(bmap) do { int bmw = -1; int bmh = -1; if(bmap != -1){ bm_get_info( bmap, &bmw, &bmh, NULL, NULL, NULL); if((bmw != gr_screen.max_w) || (bmh != gr_screen.max_h)){gr_clear();} } else {gr_clear();} } while(0);
646 #define GR_DEFAULT (-1) // set to use default settings
647 #define GR_STUB (100)
648 #define GR_OPENGL (104) // Use OpenGl hardware renderer
651 #define GR_NUM_RESOLUTIONS 2
652 #define GR_640 0 // 640 x 480
653 #define GR_1024 1 // 1024 x 768
655 #define GR_1024_THRESHOLD_WIDTH 1024
656 #define GR_1024_THRESHOLD_HEIGHT 600
669 #define GR_FILL_MODE_WIRE 1
670 #define GR_FILL_MODE_SOLID 2
672 #define GR_ZBUFF_NONE 0
673 #define GR_ZBUFF_WRITE (1<<0)
674 #define GR_ZBUFF_READ (1<<1)
675 #define GR_ZBUFF_FULL (GR_ZBUFF_WRITE|GR_ZBUFF_READ)
677 #define GR_STENCIL_NONE 0
678 #define GR_STENCIL_READ 1
679 #define GR_STENCIL_WRITE 2
681 #define GR_RESIZE_NONE 0
682 #define GR_RESIZE_FULL 1
683 #define GR_RESIZE_FULL_CENTER 2
684 #define GR_RESIZE_MENU 3
685 #define GR_RESIZE_MENU_ZOOMED 4
686 #define GR_RESIZE_MENU_NO_OFFSET 5
720 #define GR_CURSOR_LOCK 1
721 #define GR_CURSOR_UNLOCK 2
730 #define GR_CALL(x) (*x)
735 #define gr_print_screen GR_CALL(gr_screen.gf_print_screen)
745 #define gr_reset_clip GR_CALL(gr_screen.gf_reset_clip)
749 #define gr_clear GR_CALL(gr_screen.gf_clear)
762 (*gr_screen.
gf_bitmap_ex)(x, y, w, h, sx, sy, resize_mode);
771 (*gr_screen.
gf_string)(x,y,
string,resize_mode);
776 (*gr_screen.
gf_circle)(xc,yc,d,resize_mode);
784 __inline
void gr_arc(
int xc,
int yc,
float r,
float angle_start,
float angle_end,
bool fill,
int resize_mode =
GR_RESIZE_FULL)
786 (*gr_screen.
gf_arc)(xc,yc,r,angle_start,angle_end,fill,resize_mode);
789 #define gr_curve GR_CALL(gr_screen.gf_curve)
793 (*gr_screen.
gf_line)(x1, y1, x2, y2, resize_mode);
796 #define gr_aaline GR_CALL(gr_screen.gf_aaline)
800 (*gr_screen.
gf_pixel)(x, y, resize_mode);
802 #define gr_scaler GR_CALL(gr_screen.gf_scaler)
803 #define gr_aascaler GR_CALL(gr_screen.gf_aascaler)
804 #define gr_tmapper GR_CALL(gr_screen.gf_tmapper)
805 #define gr_render GR_CALL(gr_screen.gf_render)
806 #define gr_render_effect GR_CALL(gr_screen.gf_render_effect)
810 (*gr_screen.
gf_gradient)(x1, y1, x2, y2, resize_mode);
813 #define gr_flash GR_CALL(gr_screen.gf_flash)
814 #define gr_flash_alpha GR_CALL(gr_screen.gf_flash_alpha)
816 #define gr_zbuffer_get GR_CALL(gr_screen.gf_zbuffer_get)
817 #define gr_zbuffer_set GR_CALL(gr_screen.gf_zbuffer_set)
818 #define gr_zbuffer_clear GR_CALL(gr_screen.gf_zbuffer_clear)
820 #define gr_stencil_set GR_CALL(gr_screen.gf_stencil_set)
821 #define gr_stencil_clear GR_CALL(gr_screen.gf_stencil_clear)
823 #define gr_alpha_mask_set GR_CALL(gr_screen.gf_alpha_mask_set)
825 #define gr_save_screen GR_CALL(gr_screen.gf_save_screen)
826 #define gr_restore_screen GR_CALL(gr_screen.gf_restore_screen)
827 #define gr_free_screen GR_CALL(gr_screen.gf_free_screen)
829 #define gr_set_gamma GR_CALL(gr_screen.gf_set_gamma)
831 #define gr_get_region GR_CALL(gr_screen.gf_get_region)
833 __inline
void gr_fog_set(
int fog_mode,
int r,
int g,
int b,
float fog_near = -1.0
f,
float fog_far = -1.0
f)
835 (*gr_screen.
gf_fog_set)(fog_mode, r, g, b, fog_near, fog_far);
838 #define gr_set_cull GR_CALL(gr_screen.gf_set_cull)
839 #define gr_set_color_buffer GR_CALL(gr_screen.gf_set_color_buffer)
841 #define gr_cross_fade GR_CALL(gr_screen.gf_cross_fade)
843 __inline
int gr_tcache_set(
int bitmap_id,
int bitmap_type,
float *u_scale,
float *v_scale,
int stage = 0)
845 return (*gr_screen.
gf_tcache_set)(bitmap_id, bitmap_type, u_scale, v_scale, stage);
848 #define gr_preload GR_CALL(gr_screen.gf_preload)
850 #define gr_set_clear_color GR_CALL(gr_screen.gf_set_clear_color)
852 #define gr_translate_texture_matrix GR_CALL(gr_screen.gf_translate_texture_matrix)
853 #define gr_push_texture_matrix GR_CALL(gr_screen.gf_push_texture_matrix)
854 #define gr_pop_texture_matrix GR_CALL(gr_screen.gf_pop_texture_matrix)
858 #define gr_bm_free_data GR_CALL(*gr_screen.gf_bm_free_data)
859 #define gr_bm_create GR_CALL(*gr_screen.gf_bm_create)
860 #define gr_bm_init GR_CALL(*gr_screen.gf_bm_init)
861 #define gr_bm_page_in_start GR_CALL(*gr_screen.gf_bm_page_in_start)
862 #define gr_bm_data GR_CALL(*gr_screen.gf_bm_data)
864 #define gr_bm_make_render_target GR_CALL(*gr_screen.gf_bm_make_render_target)
871 #define gr_set_texture_addressing GR_CALL(*gr_screen.gf_set_texture_addressing)
873 #define gr_create_buffer GR_CALL(*gr_screen.gf_create_buffer)
874 #define gr_pack_buffer GR_CALL(*gr_screen.gf_pack_buffer)
875 #define gr_config_buffer GR_CALL(*gr_screen.gf_config_buffer)
876 #define gr_destroy_buffer GR_CALL(*gr_screen.gf_destroy_buffer)
882 #define gr_update_buffer_object GR_CALL(*gr_screen.gf_update_buffer_object)
883 #define gr_update_transform_buffer GR_CALL(*gr_screen.gf_update_transform_buffer)
884 #define gr_set_transform_buffer_offset GR_CALL(*gr_screen.gf_set_transform_buffer_offset)
886 #define gr_create_stream_buffer GR_CALL(*gr_screen.gf_create_stream_buffer)
887 #define gr_render_stream_buffer GR_CALL(*gr_screen.gf_render_stream_buffer)
888 #define gr_render_stream_buffer_start GR_CALL(*gr_screen.gf_render_stream_buffer_start)
889 #define gr_render_stream_buffer_end GR_CALL(*gr_screen.gf_render_stream_buffer_end)
891 #define gr_set_buffer GR_CALL(*gr_screen.gf_set_buffer)
893 #define gr_set_proj_matrix GR_CALL(*gr_screen.gf_set_proj_matrix)
894 #define gr_end_proj_matrix GR_CALL(*gr_screen.gf_end_proj_matrix)
895 #define gr_set_view_matrix GR_CALL(*gr_screen.gf_set_view_matrix)
896 #define gr_end_view_matrix GR_CALL(*gr_screen.gf_end_view_matrix)
897 #define gr_push_scale_matrix GR_CALL(*gr_screen.gf_push_scale_matrix)
898 #define gr_pop_scale_matrix GR_CALL(*gr_screen.gf_pop_scale_matrix)
899 #define gr_start_instance_matrix GR_CALL(*gr_screen.gf_start_instance_matrix)
900 #define gr_start_angles_instance_matrix GR_CALL(*gr_screen.gf_start_angles_instance_matrix)
901 #define gr_end_instance_matrix GR_CALL(*gr_screen.gf_end_instance_matrix)
903 #define gr_make_light GR_CALL(*gr_screen.gf_make_light)
904 #define gr_modify_light GR_CALL(*gr_screen.gf_modify_light)
905 #define gr_destroy_light GR_CALL(*gr_screen.gf_destroy_light)
906 #define gr_set_light GR_CALL(*gr_screen.gf_set_light)
907 #define gr_reset_lighting GR_CALL(*gr_screen.gf_reset_lighting)
908 #define gr_set_ambient_light GR_CALL(*gr_screen.gf_set_ambient_light)
910 #define gr_scene_texture_begin GR_CALL(*gr_screen.gf_scene_texture_begin)
911 #define gr_scene_texture_end GR_CALL(*gr_screen.gf_scene_texture_end)
912 #define gr_copy_effect_texture GR_CALL(*gr_screen.gf_copy_effect_texture)
914 #define gr_post_process_set_effect GR_CALL(*gr_screen.gf_post_process_set_effect)
915 #define gr_post_process_set_defaults GR_CALL(*gr_screen.gf_post_process_set_defaults)
916 #define gr_post_process_begin GR_CALL(*gr_screen.gf_post_process_begin)
917 #define gr_post_process_end GR_CALL(*gr_screen.gf_post_process_end)
918 #define gr_post_process_save_zbuffer GR_CALL(*gr_screen.gf_post_process_save_zbuffer)
920 #define gr_deferred_lighting_begin GR_CALL(*gr_screen.gf_deferred_lighting_begin)
921 #define gr_deferred_lighting_end GR_CALL(*gr_screen.gf_deferred_lighting_end)
922 #define gr_deferred_lighting_finish GR_CALL(*gr_screen.gf_deferred_lighting_finish)
924 #define gr_set_lighting GR_CALL(*gr_screen.gf_lighting)
925 #define gr_set_light_factor GR_CALL(*gr_screen.gf_set_light_factor)
926 #define gr_center_alpha GR_CALL(*gr_screen.gf_center_alpha)
927 #define gr_set_thrust_scale GR_CALL(*gr_screen.gf_set_thrust_scale)
929 #define gr_start_clip GR_CALL(*gr_screen.gf_start_clip_plane)
930 #define gr_end_clip GR_CALL(*gr_screen.gf_end_clip_plane)
932 #define gr_zbias GR_CALL(*gr_screen.gf_zbias)
933 #define gr_set_fill_mode GR_CALL(*gr_screen.gf_set_fill_mode)
934 #define gr_set_texture_panning GR_CALL(*gr_screen.gf_set_texture_panning)
936 #define gr_draw_line_list GR_CALL(*gr_screen.gf_draw_line_list)
938 #define gr_set_line_width GR_CALL(*gr_screen.gf_set_line_width)
940 #define gr_line_htl GR_CALL(*gr_screen.gf_line_htl)
941 #define gr_sphere_htl GR_CALL(*gr_screen.gf_sphere_htl)
943 #define gr_maybe_create_shader GR_CALL(*gr_screen.gf_maybe_create_shader)
944 #define gr_set_animated_effect GR_CALL(*gr_screen.gf_set_animated_effect)
946 #define gr_clear_states GR_CALL(*gr_screen.gf_clear_states)
948 #define gr_set_team_color GR_CALL(*gr_screen.gf_set_team_color)
950 #define gr_update_texture GR_CALL(*gr_screen.gf_update_texture)
951 #define gr_get_bitmap_from_texture GR_CALL(*gr_screen.gf_get_bitmap_from_texture)
953 #define gr_shadow_map_start GR_CALL(*gr_screen.gf_shadow_map_start)
954 #define gr_shadow_map_end GR_CALL(*gr_screen.gf_shadow_map_end)
986 void gr_bitmap_uv(
int _x,
int _y,
int _w,
int _h,
float _u0,
float _v0,
float _u1,
float _v1,
int resize_mode =
GR_RESIZE_FULL);
999 #define VB_FLAG_POSITION (1<<0)
1000 #define VB_FLAG_RHW (1<<1) //incompatable with the next normal
1001 #define VB_FLAG_NORMAL (1<<2)
1002 #define VB_FLAG_DIFUSE (1<<3)
1003 #define VB_FLAG_SPECULAR (1<<4)
1004 #define VB_FLAG_UV1 (1<<5) //how many UV coords, only use one of these
1005 #define VB_FLAG_UV2 (1<<6)
1006 #define VB_FLAG_UV3 (1<<7)
1007 #define VB_FLAG_UV4 (1<<8)
1008 #define VB_FLAG_TANGENT (1<<9)
1009 #define VB_FLAG_LARGE_INDEX (1<<10)
1010 #define VB_FLAG_MODEL_ID (1<<11)
1011 #define VB_FLAG_TRANS (1<<12)
1037 format_type(i_format_type), stride(i_stride), data_src(i_data_src) {}
1061 Vertex_mask |= (1 << format_type);
GLenum GLsizei GLenum format
struct team_color::@238 stripe
void(* gf_aaline)(vertex *v1, vertex *v2)
void(* gf_set_proj_matrix)(float, float, float, float)
void gr_set_color_fast(color *dst)
bool resident_vertex_format(vertex_format_data::vertex_format format_type)
void(* gf_destroy_light)(int)
void(* gf_fog_set)(int fog_mode, int r, int g, int b, float fog_near, float fog_far)
void(* gf_bm_create)(int n)
__inline int gr_tcache_set(int bitmap_id, int bitmap_type, float *u_scale, float *v_scale, int stage=0)
GLfloat GLfloat GLfloat GLfloat h
void(* gf_set_palette)(const ubyte *new_pal, int restrict_alphacolor)
void(* gf_bm_free_data)(int n, bool release)
void(* gf_push_texture_matrix)(int unit)
void gr_string_win(int x, int y, const char *s)
int gr_get_resolution_class(int width, int height)
void(* gf_free_screen)(int id)
void gr_set_bitmap(int bitmap_num, int alphablend=GR_ALPHABLEND_NONE, int bitbltmode=GR_BITBLT_MODE_NORMAL, float alpha=1.0f)
void(* gf_shadow_map_start)(const matrix4 *shadow_view_matrix, const matrix *light_matrix)
void gr_create_shader(shader *shade, ubyte r, ubyte g, ubyte b, ubyte c)
bool gr_resize_screen_posf(float *x, float *y, float *w=NULL, float *h=NULL, int resize_mode=GR_RESIZE_FULL)
void gr_set_shader(shader *shade)
void(* gf_sphere_htl)(float rad)
__inline void gr_circle(int xc, int yc, int d, int resize_mode=GR_RESIZE_FULL)
buffer_data(const buffer_data &other)
uint gr_determine_model_shader_flags(bool lighting, bool fog, bool textured, bool in_shadow_map, bool thruster_scale, bool transform, bool team_color_set, int tmap_flags, int spec_map, int glow_map, int normal_map, int height_map, int env_map, int misc_map)
void(* gf_aabitmap_ex)(int x, int y, int w, int h, int sx, int sy, int resize_mode, bool mirror)
void gr_bitmap_list(bitmap_2d_list *list, int n_bm, int resize_mode)
void gr_get_color(int *r, int *g, int b)
void(* gf_stencil_clear)()
void(* gf_reset_lighting)()
void(* gf_center_alpha)(int)
void(* gf_get_bitmap_from_texture)(void *data_out, int bitmap_num)
void(* gf_render_effect)(int nv, vertex *verts, float *radius_list, uint flags)
void(* gf_shadow_map_end)()
void(* gf_line)(int x1, int y1, int x2, int y2, int resize_mode)
int(* gf_bm_set_render_target)(int n, int face)
#define GR_NUM_RESOLUTIONS
__inline int gr_bm_set_render_target(int n, int face=-1)
__inline void gr_string(int x, int y, const char *string, int resize_mode=GR_RESIZE_FULL)
void(* gf_set_animated_effect)(int effect, float timer)
void assign(int i, uint j)
void(* gf_flash)(int r, int g, int b)
void(* gf_set_view_matrix)(const vec3d *, const matrix *)
__inline void gr_gradient(int x1, int y1, int x2, int y2, int resize_mode=GR_RESIZE_FULL)
void(* gf_deferred_lighting_end)()
void(* gf_post_process_set_effect)(const char *, int)
void(* gf_scene_texture_begin)()
void gr_activate(int active)
int(* gf_set_cull)(int cull)
__inline void gr_render_buffer(int start, const vertex_buffer *bufferp, int texi, int flags=TMAP_FLAG_TEXTURED)
buffer_data & operator=(const buffer_data &rhs)
void gr_bitmap_uv(int _x, int _y, int _w, int _h, float _u0, float _v0, float _u1, float _v1, int resize_mode=GR_RESIZE_FULL)
bool(* gf_pack_buffer)(const int buffer_id, vertex_buffer *vb)
void gr_reset_screen_scale()
int(* gf_maybe_create_shader)(shader_type type, unsigned int flags)
int(* gf_set_color_buffer)(int mode)
void gr_opengl_update_texture(int bitmap_handle, int bpp, const ubyte *data, int width, int height)
GLfloat GLfloat GLfloat v2
bool(* gf_bm_data)(int n, bitmap *bm)
void(* gf_draw_line_list)(const colored_vector *lines, int num)
poly_list & operator=(poly_list &)
color current_clear_color
int(* gf_stencil_set)(int mode)
void(* gf_bm_page_in_start)()
void(* gf_pixel)(int x, int y, int resize_mode)
void(* gf_set_gamma)(float gamma)
uint get_num_vertex_components()
bool gr_unsize_screen_posf(float *x, float *y, float *w=NULL, float *h=NULL, int resize_mode=GR_RESIZE_FULL)
int(* gf_create_buffer)()
void(* gf_translate_texture_matrix)(int unit, const vec3d *shift)
void gr_get_string_size_win(int *w, int *h, const char *text)
void(* gf_circle)(int x, int y, int r, int resize_mode)
void gr_rect(int x, int y, int w, int h, int resize_mode=GR_RESIZE_FULL)
void(* gf_arc)(int x, int y, float r, float angle_start, float angle_end, bool fill, int resize_mode)
__inline void gr_set_clip(int x, int y, int w, int h, int resize_mode=GR_RESIZE_FULL)
SCP_vector< buffer_data > tex_buf
void(* gf_set_clip)(int x, int y, int w, int h, int resize_mode)
GLenum GLuint GLint GLenum face
void(* gf_post_process_set_defaults)()
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
void(* gf_unfilled_circle)(int x, int y, int r, int resize_mode)
void(* gf_destroy_buffer)(int)
const float Default_max_draw_distance
GLdouble GLdouble GLdouble r
int(* gf_alpha_mask_set)(int mode, float alpha)
void(* gf_start_clip_plane)()
void gr_init_alphacolor(color *clr, int r, int g, int b, int alpha, int type=AC_TYPE_HUD)
void add_vertex_component(vertex_format_data::vertex_format format_type, uint stride, void *src)
__inline void gr_arc(int xc, int yc, float r, float angle_start, float angle_end, bool fill, int resize_mode=GR_RESIZE_FULL)
void(* gf_aascaler)(vertex *va, vertex *vb)
void(* gf_set_light_factor)(float)
GLboolean GLboolean GLboolean GLboolean a
__inline void gr_unfilled_circle(int xc, int yc, int d, int resize_mode=GR_RESIZE_FULL)
void _cdecl gr_printf_menu_zoomed(int x, int y, const char *format,...)
void(* gf_set_transform_buffer_offset)(int offset)
void(* gf_set_texture_panning)(float u, float v, bool enable)
void(* gf_tmapper)(int nv, vertex *verts[], uint flags)
void _cdecl gr_printf(int x, int y, const char *format,...)
void(* gf_end_view_matrix)()
int(* gf_bm_make_render_target)(int n, int *width, int *height, ubyte *bpp, int *mm_lvl, int flags)
void(* gf_update_texture)(int bitmap_handle, int bpp, const ubyte *data, int width, int height)
void(* gf_restore_screen)(int id)
vertex_format_data * get_vertex_component(uint index)
int(* gf_zbuffer_set)(int mode)
void(* gf_update_transform_buffer)(void *data, uint size)
void(* gf_end_clip_plane)()
void(* gf_clear_states)()
void gr_pline_special(SCP_vector< vec3d > *pts, int thickness, int resize_mode=GR_RESIZE_FULL)
int find_index(poly_list *plist, int idx)
void(* gf_start_angles_instance_matrix)(const vec3d *, const angles *)
void make_index_buffer(SCP_vector< int > &vertex_list)
void gr_set_screen_scale(int x, int y, int zoom_x=-1, int zoom_y=-1, int max_x=gr_screen.max_w, int max_y=gr_screen.max_h, int center_x=gr_screen.center_w, int center_y=gr_screen.center_h, bool force_stretch=false)
__inline void gr_bitmap_ex(int x, int y, int w, int h, int sx, int sy, int resize_mode=GR_RESIZE_FULL)
int find_index_fast(poly_list *plist, int idx)
void(* gf_lighting)(bool, bool)
int(* gf_make_light)(light *, int, int)
void(* gf_bm_init)(int n)
int(* gf_preload)(int bitmap_num, int is_aabitmap)
void(* gf_post_process_begin)()
void(* gf_post_process_save_zbuffer)()
void gr_shade(int x, int y, int w, int h, int resize_mode=GR_RESIZE_FULL)
void(* gf_flash_alpha)(int r, int g, int b, int a)
void(* gf_scaler)(vertex *va, vertex *vb, bool bw_bitmap)
int save_max_w_unscaled_zoomed
void(* gf_string)(int x, int y, const char *text, int resize_mode)
GLint GLint GLint GLint GLint x
for(int idx=0;idx< i;idx++)
void(* gf_set_line_width)(float width)
void gr_shield_icon(coord2d coords[6], const int resize_mode=GR_RESIZE_FULL)
void gr_screen_resize(int width, int height)
typedef void(APIENTRY *PFNGLARRAYELEMENTEXTPROC)(GLint i)
GLuint const GLchar * name
__inline void gr_line(int x1, int y1, int x2, int y2, int resize_mode=GR_RESIZE_FULL)
int max_w_unscaled_zoomed
void(* gf_set_clear_color)(int r, int g, int b)
const char * Resolution_prefixes[GR_NUM_RESOLUTIONS]
void(* gf_line_htl)(const vec3d *start, const vec3d *end)
GLboolean GLboolean GLboolean b
__inline void gr_fog_set(int fog_mode, int r, int g, int b, float fog_near=-1.0f, float fog_far=-1.0f)
void(* gf_set_texture_addressing)(int)
typedef float(SCP_EXT_CALLCONV *SCPTRACKIR_PFFLOATVOID)()
void(* gf_copy_effect_texture)()
bool gr_unsize_screen_pos(int *x, int *y, int *w=NULL, int *h=NULL, int resize_mode=GR_RESIZE_FULL)
void(* gf_scene_texture_end)()
void(* gf_pop_texture_matrix)(int unit)
struct team_color::@237 base
void(* gf_set_fill_mode)(int)
GLint GLsizei GLsizei height
bool(* gf_config_buffer)(const int buffer_id, vertex_buffer *vb, bool update_ibuffer_only)
void(* gf_post_process_end)()
GLubyte GLubyte GLubyte GLubyte w
const uint * get_index() const
void gr_set_cursor_bitmap(int n, int lock=0)
void gr_unset_cursor_bitmap(int n)
void(* gf_zbuffer_clear)(int use_zbuffer)
void gr_set_palette(const char *name, ubyte *palette, int restrict_to_128=0)
void(* gf_set_ambient_light)(int, int, int)
void(* gf_start_instance_matrix)(const vec3d *, const matrix *)
struct team_color team_color
void gr_get_string_size(int *w, int *h, const char *text, int len=9999)
void(* gf_pop_scale_matrix)()
void(* gf_deferred_lighting_finish)()
int gr_get_cursor_bitmap()
bool gr_init(int d_mode=GR_DEFAULT, int d_width=GR_DEFAULT, int d_height=GR_DEFAULT, int d_depth=GR_DEFAULT)
__inline void gr_aabitmap(int x, int y, int resize_mode=GR_RESIZE_FULL, bool mirror=false)
GLenum GLsizei GLenum GLenum const GLvoid * data
#define TMAP_FLAG_TEXTURED
__inline void gr_aabitmap_ex(int x, int y, int w, int h, int sx, int sy, int resize_mode=GR_RESIZE_FULL, bool mirror=false)
void(* gf_set_light)(light *)
void(* gf_push_scale_matrix)(const vec3d *)
int current_alphablend_mode
void(* gf_cross_fade)(int bmap1, int bmap2, int x1, int y1, int x2, int y2, float pct, int resize_mode)
const float Default_min_draw_distance
void(* gf_zbias)(int zbias)
#define GR_BITBLT_MODE_NORMAL
void(* gf_get_region)(int front, int w, int h, ubyte *data)
void(* gf_set_thrust_scale)(float)
void(* gf_aabitmap)(int x, int y, int resize_mode, bool mirror)
void(* gf_set_team_color)(const team_color *colors)
void(* gf_end_instance_matrix)()
bool gr_resize_screen_pos(int *x, int *y, int *w=NULL, int *h=NULL, int resize_mode=GR_RESIZE_FULL)
void(* gf_render_stream_buffer)(int buffer_handle, int offset, int n_verts, int flags)
ubyte * gr_opengl_get_texture_update_pointer(int bitmap_handle)
void(* gf_deferred_lighting_begin)()
#define GR_ALPHABLEND_NONE
void _cdecl gr_printf_no_resize(int x, int y, const char *format,...)
void(* gf_end_proj_matrix)()
int save_max_h_unscaled_zoomed
__inline void gr_pixel(int x, int y, int resize_mode=GR_RESIZE_FULL)
GLclampf GLclampf GLclampf alpha
void(* gf_curve)(int x, int y, int r, int direction, int resize_mode)
void(* gf_set_buffer)(int)
void(* gf_print_screen)(const char *filename)
void(* gf_render)(int nv, vertex *verts, uint flags)
void _cdecl gr_printf_menu(int x, int y, const char *format,...)
void gr_init_color(color *c, int r, int g, int b)
void(* gf_bitmap_ex)(int x, int y, int w, int h, int sx, int sy, int resize_mode)
void gr_bitmap(int x, int y, int resize_mode=GR_RESIZE_FULL)
int max_h_unscaled_zoomed
void gr_set_color(int r, int g, int b)
void(* gf_render_buffer)(int, const vertex_buffer *, int, int)
int(* gf_create_stream_buffer)()
int(* gf_tcache_set)(int bitmap_id, int bitmap_type, float *u_scale, float *v_scale, int stage)
void(* gf_update_buffer_object)(int handle, uint size, void *data)
void(* gf_modify_light)(light *, int, int)
void(* gf_gradient)(int x1, int y1, int x2, int y2, int resize_mode)