FS2_Open
Open source remastering of the Freespace 2 engine
2d.cpp File Reference
#include <limits.h>
#include <algorithm>
#include "cmdline/cmdline.h"
#include "debugconsole/console.h"
#include "gamesequence/gamesequence.h"
#include "globalincs/systemvars.h"
#include "graphics/2d.h"
#include "graphics/font.h"
#include "graphics/grbatch.h"
#include "graphics/grinternal.h"
#include "graphics/gropengl.h"
#include "graphics/gropengldraw.h"
#include "graphics/grstub.h"
#include "io/keycontrol.h"
#include "io/timer.h"
#include "osapi/osapi.h"
#include "palman/palman.h"
#include "parse/scripting.h"
#include "render/3d.h"

Go to the source code of this file.

Functions

void gr_set_screen_scale (int w, int h, int zoom_w, int zoom_h, int max_w, int max_h, int center_w, int center_h, bool force_stretch)
 
void gr_reset_screen_scale ()
 
bool gr_resize_screen_pos (int *x, int *y, int *w, int *h, int resize_mode)
 
bool gr_unsize_screen_pos (int *x, int *y, int *w, int *h, int resize_mode)
 
bool gr_resize_screen_posf (float *x, float *y, float *w, float *h, int resize_mode)
 
bool gr_unsize_screen_posf (float *x, float *y, float *w, float *h, int resize_mode)
 
void gr_close ()
 
 DCF (clear_color,"set clear color r, g, b")
 
void gr_set_palette_internal (const char *name, ubyte *palette, int restrict_font_to_128)
 
void gr_set_palette (const char *name, ubyte *palette, int restrict_font_to_128)
 
void gr_screen_resize (int width, int height)
 
int gr_get_resolution_class (int width, int height)
 
bool gr_init (int d_mode, int d_width, int d_height, int d_depth)
 
void gr_force_windowed ()
 
void gr_activate (int active)
 
void gr_get_color (int *r, int *g, int *b)
 
void gr_init_color (color *c, int r, int g, int b)
 
void gr_init_alphacolor (color *clr, int r, int g, int b, int alpha, int type)
 
void gr_set_color (int r, int g, int b)
 
void gr_set_color_fast (color *dst)
 
void gr_create_shader (shader *shade, ubyte r, ubyte g, ubyte b, ubyte c)
 
void gr_set_shader (shader *shade)
 
void gr_set_cursor_bitmap (int n, int lock)
 
void gr_unset_cursor_bitmap (int n)
 
int gr_get_cursor_bitmap ()
 
void gr_bitmap (int _x, int _y, int resize_mode)
 
void gr_bitmap_uv (int _x, int _y, int _w, int _h, float _u0, float _v0, float _u1, float _v1, int resize_mode)
 
void gr_bitmap_list (bitmap_2d_list *list, int n_bm, int resize_mode)
 
void gr_bitmap_list (bitmap_rect_list *list, int n_bm, int resize_mode)
 
void gr_pline_helper (vec3d *out, vec3d *in1, vec3d *in2, int thickness)
 
void gr_pline_special (SCP_vector< vec3d > *pts, int thickness, int resize_mode)
 
void gr_shield_icon (coord2d coords[6], int resize_mode)
 
void gr_rect (int x, int y, int w, int h, int resize_mode)
 
void gr_shade (int x, int y, int w, int h, int resize_mode)
 
void gr_set_bitmap (int bitmap_num, int alphablend_mode, int bitblt_mode, float alpha)
 
void gr_flip ()
 
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)
 

Variables

const char * Resolution_prefixes [GR_NUM_RESOLUTIONS] = { "", "2_" }
 
screen gr_screen
 
color_gun Gr_red
 
color_gun Gr_green
 
color_gun Gr_blue
 
color_gun Gr_alpha
 
color_gun Gr_t_red
 
color_gun Gr_t_green
 
color_gun Gr_t_blue
 
color_gun Gr_t_alpha
 
color_gun Gr_ta_red
 
color_gun Gr_ta_green
 
color_gun Gr_ta_blue
 
color_gun Gr_ta_alpha
 
color_gunGr_current_red
 
color_gunGr_current_green
 
color_gunGr_current_blue
 
color_gunGr_current_alpha
 
ubyte Gr_original_palette [768]
 
ubyte Gr_current_palette [768]
 
char Gr_current_palette_name [128] = NOX("none")
 
int Gr_cursor = -1
 
int Web_cursor_bitmap = -1
 
int Gr_cursor_size = 32
 
int Gr_inited = 0
 
uint Gr_signature = 0
 
float Gr_gamma = 1.8f
 
int Gr_gamma_int = 180
 
int gr_zbuffering = 0
 
int gr_zbuffering_mode = 0
 
int gr_global_zbuffering = 0
 
int gr_stencil_mode = 0
 
int gr_alpha_test = 0
 
const float Default_min_draw_distance = 1.0f
 
const float Default_max_draw_distance = 1e10
 
float Min_draw_distance = Default_min_draw_distance
 
float Max_draw_distance = Default_max_draw_distance
 
float Gr_save_full_resize_X = 1.0f
 
float Gr_save_full_resize_Y = 1.0f
 
float Gr_save_full_center_resize_X = 1.0f
 
float Gr_save_full_center_resize_Y = 1.0f
 
float Gr_save_resize_X = 1.0f
 
float Gr_save_resize_Y = 1.0f
 
float Gr_save_menu_offset_X = 0.0f
 
float Gr_save_menu_offset_Y = 0.0f
 
float Gr_save_menu_zoomed_offset_X = 0.0f
 
float Gr_save_menu_zoomed_offset_Y = 0.0f
 
bool Save_custom_screen_size
 
int gr_activated = 0
 

Function Documentation

DCF ( clear_color  ,
"set clear color  r,
g  ,
b  
)

Set screen clear color

Definition at line 666 of file 2d.cpp.

void gr_activate ( int  active)

Definition at line 1122 of file 2d.cpp.

void gr_bitmap ( int  _x,
int  _y,
int  resize_mode 
)
Examples:
bm_examples.cpp.

Definition at line 1303 of file 2d.cpp.

void gr_bitmap_list ( bitmap_2d_list list,
int  n_bm,
int  resize_mode 
)

Definition at line 1407 of file 2d.cpp.

void gr_bitmap_list ( bitmap_rect_list list,
int  n_bm,
int  resize_mode 
)

Definition at line 1424 of file 2d.cpp.

void gr_bitmap_uv ( int  _x,
int  _y,
int  _w,
int  _h,
float  _u0,
float  _v0,
float  _u1,
float  _v1,
int  resize_mode 
)

Definition at line 1356 of file 2d.cpp.

void gr_close ( )

Definition at line 637 of file 2d.cpp.

void gr_create_shader ( shader shade,
ubyte  r,
ubyte  g,
ubyte  b,
ubyte  c 
)

Definition at line 1211 of file 2d.cpp.

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 
)

Definition at line 2131 of file 2d.cpp.

void gr_flip ( )

Definition at line 2113 of file 2d.cpp.

void gr_force_windowed ( )

Definition at line 1101 of file 2d.cpp.

void gr_get_color ( int r,
int g,
int b 
)

Definition at line 1148 of file 2d.cpp.

int gr_get_cursor_bitmap ( )

Retrieves the current bitmap Used in UI_GADGET to save/restore current cursor state

Definition at line 1297 of file 2d.cpp.

int gr_get_resolution_class ( int  width,
int  height 
)

Definition at line 773 of file 2d.cpp.

bool gr_init ( int  d_mode,
int  d_width,
int  d_height,
int  d_depth 
)

Definition at line 909 of file 2d.cpp.

void gr_init_alphacolor ( color clr,
int  r,
int  g,
int  b,
int  alpha,
int  type 
)

Definition at line 1173 of file 2d.cpp.

void gr_init_color ( color c,
int  r,
int  g,
int  b 
)

Definition at line 1155 of file 2d.cpp.

void gr_pline_helper ( vec3d out,
vec3d in1,
vec3d in2,
int  thickness 
)

Given endpoints, and thickness, calculate coords of the endpoint

Definition at line 1446 of file 2d.cpp.

void gr_pline_special ( SCP_vector< vec3d > *  pts,
int  thickness,
int  resize_mode 
)

Special function for drawing polylines.

This function is specifically intended for polylines where each section is no more than 90 degrees away from a previous section. Moreover, it is really intended for use with 45 degree angles.

Definition at line 1471 of file 2d.cpp.

void gr_rect ( int  x,
int  y,
int  w,
int  h,
int  resize_mode 
)

Definition at line 2068 of file 2d.cpp.

void gr_reset_screen_scale ( )

Definition at line 176 of file 2d.cpp.

bool gr_resize_screen_pos ( int x,
int y,
int w,
int h,
int  resize_mode 
)

This function is to be called if you wish to scale GR_1024 or GR_640 x and y positions or lengths in order to keep the correctly scaled to nonstandard resolutions

Parameters
xX value, can be NULL
yY value, can be NULL
wwidth, can be NULL
hheight, can be NULL
resize_mode
Returns
always true unless error

Definition at line 212 of file 2d.cpp.

bool gr_resize_screen_posf ( float x,
float y,
float w,
float h,
int  resize_mode 
)

This function is to be called if you wish to scale GR_1024 or GR_640 x and y positions or lengths in order to keep the correctly scaled to nonstandard resolutions

Parameters
xX value, can be NULL
yY value, can be NULL
wwidth, can be NULL
hheight, can be NULL
resize_mode
Returns
always true unless error

Definition at line 430 of file 2d.cpp.

void gr_screen_resize ( int  width,
int  height 
)

Definition at line 733 of file 2d.cpp.

void gr_set_bitmap ( int  bitmap_num,
int  alphablend_mode,
int  bitblt_mode,
float  alpha 
)
Examples:
bm_examples.cpp.

Definition at line 2105 of file 2d.cpp.

void gr_set_color ( int  r,
int  g,
int  b 
)

Definition at line 1188 of file 2d.cpp.

void gr_set_color_fast ( color dst)

Definition at line 1197 of file 2d.cpp.

void gr_set_cursor_bitmap ( int  n,
int  lock 
)

Set the bitmap for the mouse pointer. This is called by the animating mouse pointer code.

The lock parameter just locks basically disables the next call of this function that doesn't have an unlock feature. If adding in more cursor-changing situations, be aware of unexpected results. You have been warned.

Todo:
investigate memory leak of original Gr_cursor bitmap when this is called

Definition at line 1242 of file 2d.cpp.

void gr_set_palette ( const char *  name,
ubyte palette,
int  restrict_font_to_128 
)

Definition at line 722 of file 2d.cpp.

void gr_set_palette_internal ( const char *  name,
ubyte palette,
int  restrict_font_to_128 
)

Definition at line 678 of file 2d.cpp.

void gr_set_screen_scale ( int  w,
int  h,
int  zoom_w,
int  zoom_h,
int  max_w,
int  max_h,
int  center_w,
int  center_h,
bool  force_stretch 
)

Definition at line 104 of file 2d.cpp.

void gr_set_shader ( shader shade)

Definition at line 1220 of file 2d.cpp.

void gr_shade ( int  x,
int  y,
int  w,
int  h,
int  resize_mode 
)

Definition at line 2085 of file 2d.cpp.

void gr_shield_icon ( coord2d  coords[6],
int  resize_mode 
)

Definition at line 2046 of file 2d.cpp.

void gr_unset_cursor_bitmap ( int  n)

Definition at line 1281 of file 2d.cpp.

bool gr_unsize_screen_pos ( int x,
int y,
int w,
int h,
int  resize_mode 
)
Parameters
xX value, can be NULL
yY value, can be NULL
wwidth, can be NULL
hheight, can be NULL
resize_mode
Returns
always true unless error

Definition at line 320 of file 2d.cpp.

bool gr_unsize_screen_posf ( float x,
float y,
float w,
float h,
int  resize_mode 
)
Parameters
xX value, can be NULL
yY value, can be NULL
wwidth, can be NULL
hheight, can be NULL
resize_mode
Returns
always true unless error

Definition at line 538 of file 2d.cpp.

Variable Documentation

const float Default_max_draw_distance = 1e10

Definition at line 83 of file 2d.cpp.

const float Default_min_draw_distance = 1.0f

Definition at line 82 of file 2d.cpp.

int gr_activated = 0

Definition at line 1121 of file 2d.cpp.

color_gun Gr_alpha

Definition at line 48 of file 2d.cpp.

int gr_alpha_test = 0

Definition at line 79 of file 2d.cpp.

color_gun Gr_blue

Definition at line 48 of file 2d.cpp.

color_gun * Gr_current_alpha

Definition at line 51 of file 2d.cpp.

color_gun * Gr_current_blue

Definition at line 51 of file 2d.cpp.

color_gun * Gr_current_green

Definition at line 51 of file 2d.cpp.

ubyte Gr_current_palette[768]

Definition at line 55 of file 2d.cpp.

char Gr_current_palette_name[128] = NOX("none")

Definition at line 56 of file 2d.cpp.

color_gun* Gr_current_red

Definition at line 51 of file 2d.cpp.

int Gr_cursor = -1

Definition at line 59 of file 2d.cpp.

int Gr_cursor_size = 32

Definition at line 61 of file 2d.cpp.

float Gr_gamma = 1.8f

Definition at line 67 of file 2d.cpp.

int Gr_gamma_int = 180

Definition at line 68 of file 2d.cpp.

int gr_global_zbuffering = 0

Definition at line 73 of file 2d.cpp.

color_gun Gr_green

Definition at line 48 of file 2d.cpp.

int Gr_inited = 0

Definition at line 63 of file 2d.cpp.

ubyte Gr_original_palette[768]

Definition at line 54 of file 2d.cpp.

color_gun Gr_red

Definition at line 48 of file 2d.cpp.

float Gr_save_full_center_resize_X = 1.0f

Definition at line 97 of file 2d.cpp.

float Gr_save_full_center_resize_Y = 1.0f

Definition at line 97 of file 2d.cpp.

float Gr_save_full_resize_X = 1.0f

Definition at line 96 of file 2d.cpp.

float Gr_save_full_resize_Y = 1.0f

Definition at line 96 of file 2d.cpp.

float Gr_save_menu_offset_X = 0.0f

Definition at line 99 of file 2d.cpp.

float Gr_save_menu_offset_Y = 0.0f

Definition at line 99 of file 2d.cpp.

float Gr_save_menu_zoomed_offset_X = 0.0f

Definition at line 100 of file 2d.cpp.

float Gr_save_menu_zoomed_offset_Y = 0.0f

Definition at line 100 of file 2d.cpp.

float Gr_save_resize_X = 1.0f

Definition at line 98 of file 2d.cpp.

float Gr_save_resize_Y = 1.0f

Definition at line 98 of file 2d.cpp.

screen gr_screen

Definition at line 46 of file 2d.cpp.

uint Gr_signature = 0

Definition at line 65 of file 2d.cpp.

int gr_stencil_mode = 0

Definition at line 76 of file 2d.cpp.

color_gun Gr_t_alpha

Definition at line 49 of file 2d.cpp.

color_gun Gr_t_blue

Definition at line 49 of file 2d.cpp.

color_gun Gr_t_green

Definition at line 49 of file 2d.cpp.

color_gun Gr_t_red

Definition at line 49 of file 2d.cpp.

color_gun Gr_ta_alpha

Definition at line 50 of file 2d.cpp.

color_gun Gr_ta_blue

Definition at line 50 of file 2d.cpp.

color_gun Gr_ta_green

Definition at line 50 of file 2d.cpp.

color_gun Gr_ta_red

Definition at line 50 of file 2d.cpp.

int gr_zbuffering = 0

Definition at line 71 of file 2d.cpp.

int gr_zbuffering_mode = 0

Definition at line 72 of file 2d.cpp.

float Max_draw_distance = Default_max_draw_distance

Definition at line 85 of file 2d.cpp.

float Min_draw_distance = Default_min_draw_distance

Definition at line 84 of file 2d.cpp.

const char* Resolution_prefixes[GR_NUM_RESOLUTIONS] = { "", "2_" }

Definition at line 44 of file 2d.cpp.

bool Save_custom_screen_size

Definition at line 102 of file 2d.cpp.

int Web_cursor_bitmap = -1

Definition at line 60 of file 2d.cpp.