![]() |
DI-Guy SDK Documentation
13.7
|
#include <diguyOsgGraphicsShaderProgram.h>
Public Member Functions | |
| diguyOsgGraphicsShaderProgram (void *internal_data) | |
| ~diguyOsgGraphicsShaderProgram () | |
| virtual int | load_vertex_shader_source (const char *filename) override |
| 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) override |
| This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_source(). More... | |
| virtual int | link () override |
| This function will be called by DI-Guy when it is time for the shader program to be linked. More... | |
| osg::Program * | get_program () |
Public Member Functions inherited from diguyGraphicsShaderProgram | |
| int | load () |
| Forces the underlying shader to load. More... | |
| virtual int | reload () |
| Forces the underlying shader to reload. Returns 0 on success. More... | |
| int | get_use_shared_library () |
| Indicates that a shared library (typically diguy_shared_library.glsl) should be prepended to the current shader code. More... | |
| void | set_use_shared_library (int value) |
| void | set_vertex_shader_source_code (const char *shader_source) |
| Sets the source code to use for creating a diguy shader program, bypasses file loading. More... | |
| void | set_pixel_shader_source_code (const char *shader_source) |
| Sets the source code to use for creating a diguy shader program, bypasses file loading. 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... | |
| virtual int | get_vertex_attrib_location () const |
| subclass to support particle rendering via abstract interface More... | |
| virtual int | get_color_attrib_location () const |
| virtual int | get_normal_attrib_location () const |
| virtual int | get_texture_attrib_location () const |
| 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) |
| virtual int | bind_matrix (int bind_location, const float *mat) |
| 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 | print_shader_info_to_log () |
| Prints information about the shader to the log. More... | |
| 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 |
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... | |
| static 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, const char *shader_subdirectory=NULL) |
| This function derives filenames for shader programs from the provided information. 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 | ) |
| diguyOsgGraphicsShaderProgram::~diguyOsgGraphicsShaderProgram | ( | ) |
|
overridevirtual |
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.
|
overridevirtual |
This function is the pixel shader (AKA fragment shader in OpenGL) equivalent of load_vertex_shader_source().
Reimplemented from diguyGraphicsShaderProgram.
|
overridevirtual |
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 |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |