18 #define CPLUSPLUS_ONLY
30 class bdiShaderProgram;
123 const char* get_name();
130 const char* get_vertex_shader_filename();
137 const char* get_pixel_shader_filename();
151 const char* get_shader_version();
193 static void derive_diguy_shader_source_filename(
char* result,
int result_max_len,
194 const char* shader_base_name,
const char* shader_language,
const char* shader_type,
195 int include_diguy_default_shader_directory,
const char* shader_subdirectory = NULL );
202 void print_shader_info_to_log();
216 virtual int reload();
221 int get_use_shared_library();
222 void set_use_shared_library(
int value);
226 void set_vertex_shader_source_code(
const char * shader_source);
230 void set_pixel_shader_source_code(
const char * shader_source);
247 int set_textures_used_bitmask(
int texture_bitmask);
256 int get_textures_used_bitmask();
271 #ifdef CPLUSPLUS_ONLY
311 virtual int load_vertex_shader_source(
const char* filename_base);
319 virtual int load_pixel_shader_source(
const char* filename_base);
365 virtual int get_loaded();
378 virtual int get_linked();
391 virtual int get_valid();
452 virtual int unbind();
482 virtual int bind_link_matrices(
int num_matrices,
483 const float* mat_data);
499 virtual int bind_color_array(
int num_colors,
500 const float* color_data);
527 virtual int bind_uniform_with_location(
int location,
530 float* float_values);
532 virtual int bind_uniform_with_location(
int location,
547 virtual int get_attrib_bind_location(
const char* name);
558 virtual int get_uniform_bind_location(
const char* name);
569 virtual int get_gl_program_object();
572 virtual int get_vertex_attrib_location()
const;
573 virtual int get_color_attrib_location()
const;
574 virtual int get_normal_attrib_location()
const;
575 virtual int get_texture_attrib_location()
const;
590 int get_num_additional_feature_names();
593 const char * get_additional_feature_name(
int index);
596 int has_additional_feature(
const char * name);
610 static int get_transposed_matrix_data();
618 static int get_use_4x3_shader_matrix_data();
636 int get_num_variables();
637 const char* get_variable_name_at_index(
int index);
638 int has_variable(
const char* name);
639 const char* get_variable_type(
const char* name);
641 int set_variable_float(
const char* name,
float value,
int set_current = 1,
int set_initial = 0,
int create = 0);
642 int set_variable_vec2(
const char* name,
float x,
float y,
int set_current = 1,
int set_initial = 0,
int create = 0);
643 int set_variable_vec3(
const char* name,
float x,
float y,
float z,
int set_current = 1,
int set_initial = 0,
int create = 0);
644 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);
645 int set_variable_int(
const char* name,
int value,
int set_current = 1,
int set_initial = 0,
int create = 0);
647 int get_variable_float(
const char* name,
float* value,
int get_current = 1);
648 int get_variable_vec2(
const char* name,
float* x,
float* y,
int get_current = 1);
649 int get_variable_vec3(
const char* name,
float* x,
float* y,
float* z,
int get_current = 1);
650 int get_variable_vec4(
const char* name,
float* r,
float* g,
float* b,
float* a,
int get_current = 1);
651 int get_variable_int(
const char* name,
int* value,
int get_current = 1);
664 virtual void set_apply_matrices_flag(
int apply_matrices_flag){;}
665 virtual void set_textures_enabled(
int enabled){;}
667 virtual int bind_matrix(
int bind_location,
const float* mat){
return 0; }
680 #ifdef CPLUSPLUS_ONLY
682 bdiShaderProgram* get_internal_data() {
return m_internal_data;}
703 bdiShaderProgram* m_internal_data;
705 friend class bdiShaderProgram;
706 friend class bdiGeometryFactory;
A class that represents the unique per-character shader object.
Definition: diguyGraphicsShaderInstance.h:55
Definition: diguyGraphicsShaderProgram.h:47
Definition: diguyGraphicsShaderProgram.h:50
Definition: diguyGraphicsShaderProgram.h:46
Definition: diguyGraphicsShaderProgram.h:70
Definition: diguyGraphicsShaderProgram.h:51
Definition: diguyGraphicsShaderProgram.h:69
Definition: diguyGraphicsShaderProgram.h:48
A class that represents a shared material.
Definition: diguyGraphicsMaterial.h:42
Definition: diguyGraphicsShaderProgram.h:71
diguyGraphicsShaderProgramType
This enumeration lists the types of shader programs that DI-Guy might request.
Definition: diguyGraphicsShaderProgram.h:67
diguyGraphicsShaderQualityLevel
This enumeration lists the quality level of various shader programs that DI-Guy might create...
Definition: diguyGraphicsShaderProgram.h:44
This class is a simple structure for transmitting diguy lights down to the uniform buffer system this...
Definition: diguyViewLight.h:36
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:47
Describes basic fog model that is used by DI-Guy Scenario and our default ogl renderer Most users wil...
Definition: diguyViewFog.h:42
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
Definition: diguyGraphicsShaderProgram.h:72
Definition: diguyGraphicsShaderProgram.h:49