FS2_Open
Open source remastering of the Freespace 2 engine
|
Go to the source code of this file.
Classes | |
struct | geometry_sdr_params |
struct | opengl_shader_type_t |
struct | opengl_shader_variant_t |
struct | opengl_shader_file_t |
struct | opengl_shader_uniform_reference_t |
struct | opengl_shader_uniform_t |
struct | opengl_shader_t |
Macros | |
#define | MAX_SHADER_UNIFORMS 20 |
#define | SDR_ATTRIB_RADIUS 0 |
#define | SDR_ATTRIB_SUBMODEL 1 |
#define | MAX_SDR_ATTRIBUTES 5 |
#define | MAX_SDR_UNIFORM_BLOCKS 5 |
#define | ANIMATED_SHADER_LOADOUTSELECT_FS1 0 |
#define | ANIMATED_SHADER_LOADOUTSELECT_FS2 1 |
#define | ANIMATED_SHADER_CLOAK 2 |
Typedefs | |
typedef struct opengl_shader_uniform_t | opengl_shader_uniform_t |
typedef struct opengl_shader_t | opengl_shader_t |
Functions | |
int | gr_opengl_maybe_create_shader (shader_type shader_t, unsigned int flags) |
void | opengl_delete_shader (int sdr_handle) |
void | opengl_shader_set_current (opengl_shader_t *shader_obj=NULL) |
void | opengl_shader_set_current (int handle) |
void | opengl_shader_init () |
void | opengl_shader_shutdown () |
int | opengl_compile_shader (shader_type sdr, uint flags) |
void | opengl_shader_init_attribute (const char *attribute_text) |
GLint | opengl_shader_get_attribute (const char *attribute_text) |
void | opengl_shader_init_uniform (const char *uniform_text) |
GLint | opengl_shader_get_uniform (const char *uniform_text) |
void | opengl_shader_init_uniform_block (const char *uniform_text) |
GLint | opengl_shader_get_uniform_block (const char *uniform_text) |
void | gr_opengl_shader_set_animated_effect (int effect, float timer) |
int | opengl_shader_get_animated_effect () |
float | opengl_shader_get_animated_timer () |
void | opengl_shader_compile_deferred_light_shader () |
void | opengl_shader_compile_deferred_light_clear_shader () |
Variables | |
SCP_vector< opengl_shader_t > | GL_shader |
opengl_shader_t * | Current_shader |
geometry_sdr_params * | Current_geo_sdr_params |
#define ANIMATED_SHADER_CLOAK 2 |
Definition at line 160 of file gropenglshader.h.
#define ANIMATED_SHADER_LOADOUTSELECT_FS1 0 |
Definition at line 158 of file gropenglshader.h.
#define ANIMATED_SHADER_LOADOUTSELECT_FS2 1 |
Definition at line 159 of file gropenglshader.h.
#define MAX_SDR_ATTRIBUTES 5 |
Definition at line 24 of file gropenglshader.h.
#define MAX_SDR_UNIFORM_BLOCKS 5 |
Definition at line 26 of file gropenglshader.h.
#define MAX_SHADER_UNIFORMS 20 |
Definition at line 19 of file gropenglshader.h.
#define SDR_ATTRIB_RADIUS 0 |
Definition at line 21 of file gropenglshader.h.
#define SDR_ATTRIB_SUBMODEL 1 |
Definition at line 22 of file gropenglshader.h.
typedef struct opengl_shader_t opengl_shader_t |
typedef struct opengl_shader_uniform_t opengl_shader_uniform_t |
int gr_opengl_maybe_create_shader | ( | shader_type | shader_t, |
unsigned int | flags | ||
) |
Given a set of flags, determine whether a shader with these flags exists within the GL_shader vector. If no shader with the requested flags exists, attempt to compile one.
shader_t | shader_type variable, a reference to the shader program needed |
flags | Integer variable, holding a combination of SDR_* flags |
Definition at line 229 of file gropenglshader.cpp.
Sets the currently active animated effect.
effect | Effect ID, needs to be implemented and checked for in the shader |
timer | Timer value to be passed to the shader |
Definition at line 876 of file gropenglshader.cpp.
int opengl_compile_shader | ( | shader_type | sdr, |
uint | flags | ||
) |
Compiles a new shader, and creates an opengl_shader_t that will be put into the GL_shader vector if compilation is successful.
sdr | Identifier defined with the program we wish to compile |
flags | Combination of SDR_* flags |
Definition at line 372 of file gropenglshader.cpp.
Definition at line 247 of file gropenglshader.cpp.
void opengl_shader_compile_deferred_light_clear_shader | ( | ) |
void opengl_shader_compile_deferred_light_shader | ( | ) |
Compile the deferred light shader.
Definition at line 903 of file gropenglshader.cpp.
int opengl_shader_get_animated_effect | ( | ) |
Returns the currently active animated effect ID.
Definition at line 887 of file gropenglshader.cpp.
float opengl_shader_get_animated_timer | ( | ) |
Get the timer for animated effects.
Definition at line 895 of file gropenglshader.cpp.
GLint opengl_shader_get_attribute | ( | const char * | attribute_text | ) |
Get the internal OpenGL location for a given attribute. Requires that the Current_shader global variable is valid
attribute_text | Name of the attribute |
Definition at line 750 of file gropenglshader.cpp.
GLint opengl_shader_get_uniform | ( | const char * | uniform_text | ) |
Get the internal OpenGL location for a given uniform. Requires that the Current_shader global variable is valid
uniform_text | Name of the uniform |
Definition at line 799 of file gropenglshader.cpp.
GLint opengl_shader_get_uniform_block | ( | const char * | uniform_text | ) |
Get the internal OpenGL location for a given uniform. Requires that the Current_shader global variable is valid
uniform_text | Name of the uniform |
Definition at line 852 of file gropenglshader.cpp.
void opengl_shader_init | ( | ) |
Initializes the shader system. Creates a 1x1 texture that can be used as a fallback texture when framebuffer support is missing. Also compiles the shaders used for particle rendering.
Definition at line 487 of file gropenglshader.cpp.
void opengl_shader_init_attribute | ( | const char * | attribute_text | ) |
Initialize a shader attribute. Requires that the Current_shader global variable is valid.
attribute_text | Name of the attribute to be initialized |
Definition at line 724 of file gropenglshader.cpp.
void opengl_shader_init_uniform | ( | const char * | uniform_text | ) |
Initialize a shader uniform. Requires that the Current_shader global variable is valid.
uniform_text | Name of the uniform to be initialized |
Definition at line 773 of file gropenglshader.cpp.
void opengl_shader_init_uniform_block | ( | const char * | uniform_text | ) |
Initialize a shader uniform. Requires that the Current_shader global variable is valid.
uniform_text | Name of the uniform to be initialized |
Definition at line 823 of file gropenglshader.cpp.
void opengl_shader_set_current | ( | opengl_shader_t * | shader_obj | ) |
Set the currently active shader
shader_obj | Pointer to an opengl_shader_t object. This function calls glUseProgramARB with parameter 0 if shader_obj is NULL or if function is called without parameters, causing OpenGL to revert to fixed-function processing |
Definition at line 180 of file gropenglshader.cpp.
Definition at line 214 of file gropenglshader.cpp.
void opengl_shader_shutdown | ( | ) |
Go through GL_shader and call glDeleteObject() for all created shaders, then clear GL_shader
Definition at line 269 of file gropenglshader.cpp.
geometry_sdr_params* Current_geo_sdr_params |
Definition at line 37 of file gropenglshader.cpp.
opengl_shader_t* Current_shader |
Definition at line 170 of file gropenglshader.cpp.
SCP_vector<opengl_shader_t> GL_shader |
Definition at line 28 of file gropenglshader.cpp.