![]() |
DI-Guy SDK Documentation
13.1
|
#include <diguyOsgGraphicsShaderProgram.h>
Public Member Functions | |
| diguyOsgGraphicsShaderProgram (void *internal_data) | |
| 4 Header files and forward declarations More... | |
| ~diguyOsgGraphicsShaderProgram () | |
| virtual int | load_vertex_shader_source (const char *filename) |
| This function will be called by DI-Guy when it is time for the vertex part of this shader to be loaded and compiled. More... | |
| virtual int | load_pixel_shader_source (const char *filename) |
| This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_source(). More... | |
| virtual int | reload () |
| This function will be called by DI-Guy if this shader program should be reloaded. More... | |
| virtual int | link () |
| This function will be called by DI-Guy when it is time for the shader program to be linked. More... | |
| osg::Program * | get_program () |
| osg::StateSet * | get_state_set () |
Public Member Functions inherited from diguyGraphicsShaderProgram | |
| const char * | get_name () |
| Returns: name of the shader This pointer will never be NULL. More... | |
| const char * | get_vertex_shader_filename () |
| Returns: the vertex filename of the shader This pointer will never be NULL. More... | |
| const char * | get_pixel_shader_filename () |
| Returns: the pixel shader filename of the shader This pointer will never be NULL. More... | |
| diguyGraphicsShaderProgramType | get_shader_type () |
| Returns: program type of the shader; see diguyGraphicsShaderProgramType. More... | |
| const char * | get_shader_version () |
| Returns: shader version. More... | |
| diguyGraphicsShaderQualityLevel | get_quality_level () |
| Returns: the quality level type of the shader; see diguyGraphicsShaderQualityLevel. More... | |
| void | derive_diguy_shader_source_filename (char *result, int result_max_len, const char *shader_base_name, const char *shader_language, const char *shader_type, int include_diguy_default_shader_directory) |
| This function derives filenames for shader programs from the provided information. More... | |
| void | print_shader_info_to_log () |
| Prints information about the shader to the log. More... | |
| int | load () |
| Forces the underlying shader to load. More... | |
| int | set_textures_used_bitmask (int texture_bitmask) |
| Sets a bit mask consisting of diguyTextureMapMasks or'd together to specify what textures should bind when this shader is active. More... | |
| int | get_textures_used_bitmask () |
| Returns: the current or'd together list of diguyTextureMapMasks that this shader attempts to bind. More... | |
| virtual int | get_loaded () |
| Returns whether the shader has been loaded. More... | |
| virtual int | get_linked () |
| Returns whether the shader has been linked. More... | |
| virtual int | get_valid () |
| Returns whether shader is valid. More... | |
| virtual int | bind () |
| This function will be called by DI-Guy when this program is being bound for rendering. More... | |
| virtual int | unbind () |
| In general variables that were set in bind() should be unset or unbound here. More... | |
| virtual int | bind_link_matrices (int num_matrices, const float *mat_data) |
| This function will be called by DI-Guy when the matrix data of a character's links needs to be sent to the graphics card. More... | |
| virtual int | bind_color_array (int num_colors, const float *color_data) |
| This function will be called by DI-Guy when the color data of a character's links needs to be sent to the graphics card. More... | |
| virtual int | bind_uniform_with_location (int location, const char *name, int value_size, float *float_values) |
| These functions will be called by DI-Guy when there is a shader uniform that needs to be updated and sent to the graphics card. More... | |
| virtual int | bind_uniform_with_location (int location, const char *name, int value_size, int *int_values) |
| virtual int | get_attrib_bind_location (const char *name) |
| This function will be called by DI-Guy when core code is attempting to identify the capabilities of the end users shader. More... | |
| virtual int | get_uniform_bind_location (const char *name) |
| This function will be called by DI-Guy when core code is attempting to identify the capabilities of the end users shader. More... | |
| virtual int | get_gl_program_object () |
| This function will be called by DI-Guy when core code is attempting to identify send shader low level data Return -1 to disable any functionality. More... | |
| int | get_num_additional_feature_names () |
| Returns: Number of additional feature strings that this program can support. More... | |
| const char * | get_additional_feature_name (int index) |
| Returns: Name of feature at index in the list. More... | |
| int | has_additional_feature (const char *name) |
| Returns: 0 or 1 if the shader supports this feature. More... | |
| int | get_num_variables () |
| const char * | get_variable_name_at_index (int index) |
| int | has_variable (const char *name) |
| const char * | get_variable_type (const char *name) |
| int | set_variable_float (const char *name, float value, int set_current=1, int set_initial=0, int create=0) |
| int | set_variable_vec2 (const char *name, float x, float y, int set_current=1, int set_initial=0, int create=0) |
| int | set_variable_vec3 (const char *name, float x, float y, float z, int set_current=1, int set_initial=0, int create=0) |
| int | set_variable_vec4 (const char *name, float x, float y, float z, float w, int set_current=1, int set_initial=0, int create=0) |
| int | set_variable_int (const char *name, int value, int set_current=1, int set_initial=0, int create=0) |
| int | get_variable_float (const char *name, float *value, int get_current=1) |
| int | get_variable_vec2 (const char *name, float *x, float *y, int get_current=1) |
| int | get_variable_vec3 (const char *name, float *x, float *y, float *z, int get_current=1) |
| int | get_variable_vec4 (const char *name, float *r, float *g, float *b, float *a, int get_current=1) |
| int | get_variable_int (const char *name, int *value, int get_current=1) |
| virtual void | set_apply_matrices_flag (int apply_matrices_flag) |
| virtual void | set_textures_enabled (int enabled) |
| bdiShaderProgram * | get_internal_data () |
Protected Attributes | |
| char | m_vertex_shader_filename [512] |
| char | m_fragment_shader_filename [512] |
| osg::ref_ptr< osg::Program > | m_program |
| osg::ref_ptr< osg::Shader > | m_vertex_shader |
| osg::ref_ptr< osg::Shader > | m_fragment_shader |
| osg::ref_ptr< osg::StateSet > | m_state_set |
Additional Inherited Members | |
Static Public Member Functions inherited from diguyGraphicsShaderProgram | |
| static int | get_transposed_matrix_data () |
| Returns: The value specified in bdiGraphicsInitGraphicsAPI.transpose_shader_matrices. More... | |
| static int | get_use_4x3_shader_matrix_data () |
| Returns: The value specified in bdiGraphicsInitGraphicsAPI.use_4x3_shader_matrices. More... | |
Protected Member Functions inherited from diguyGraphicsShaderProgram | |
| diguyGraphicsShaderProgram (void *internal_data) | |
| A protected constructor. More... | |
| virtual | ~diguyGraphicsShaderProgram () |
| A protected destructor. More... | |
| diguyOsgGraphicsShaderProgram::diguyOsgGraphicsShaderProgram | ( | void * | internal_data | ) |
4 Header files and forward declarations
| diguyOsgGraphicsShaderProgram::~diguyOsgGraphicsShaderProgram | ( | ) |
|
virtual |
This function will be called by DI-Guy when it is time for the vertex part of this shader to be loaded and compiled.
The utility function derive_diguy_shader_source_filename() can be used to convert the passed filename_base to an actual filename.
For example, assume that m_vertex_shader_filename is a character array of 512 bytes. The following function call would derive an appropriate vertex shader filename:
This function is called during the Build Stage.
Returns:
0 to indicate load was successful, -1 otherwise
Immediate Mode:
Immediate mode renderers usually do override this function.
Scene Graph:
Scene graph renderers usually do override this function.
Callable From:
Reimplemented from diguyGraphicsShaderProgram.
|
virtual |
This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_source().
Reimplemented from diguyGraphicsShaderProgram.
|
virtual |
This function will be called by DI-Guy if this shader program should be reloaded.
The same filenames derived in the load_vertex_shader_source() and load_pixel_shader_source() functions should be used.
This function can be called during the Update Stage.
Returns:
0 to indicate reload was successful, -1 otherwise
Immediate Mode:
Immediate mode renderers usually do override this function.
Scene Graph:
Scene graph renderers usually do override this function.
Callable From:
Reimplemented from diguyGraphicsShaderProgram.
|
virtual |
This function will be called by DI-Guy when it is time for the shader program to be linked.
This function is called during the Build Stage after the load_vertex_shader_source() and load_pixel_shader_source() functions.
Once the link has successfully completed shader variable bind indices can be looked up.
Returns:
0 to indicate link was successful, -1 otherwise
Immediate Mode:
Immediate mode renderers usually do override this function.
Scene Graph:
Scene graph renderers can override this function.
Callable From:
Reimplemented from diguyGraphicsShaderProgram.
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |