14 #ifndef __diguyGraphicsShaderProgram_H
15 #define __diguyGraphicsShaderProgram_H
21 #define CPLUSPLUS_ONLY
31 class bdiShaderProgram;
124 const char* get_name();
131 const char* get_vertex_shader_filename();
138 const char* get_pixel_shader_filename();
152 const char* get_shader_version();
191 void derive_diguy_shader_source_filename(
char* result,
193 const char* shader_base_name,
194 const char* shader_language,
195 const char* shader_type,
196 int include_diguy_default_shader_directory);
203 void print_shader_info_to_log();
228 int set_textures_used_bitmask(
int texture_bitmask);
237 int get_textures_used_bitmask();
252 #ifdef CPLUSPLUS_ONLY
292 virtual int load_vertex_shader_source(
const char* filename_base);
300 virtual int load_pixel_shader_source(
const char* filename_base);
329 virtual int reload();
374 virtual int get_loaded();
387 virtual int get_linked();
400 virtual int get_valid();
461 virtual int unbind();
491 virtual int bind_link_matrices(
int num_matrices,
492 const float* mat_data);
508 virtual int bind_color_array(
int num_colors,
509 const float* color_data);
536 virtual int bind_uniform_with_location(
int location,
539 float* float_values);
541 virtual int bind_uniform_with_location(
int location,
556 virtual int get_attrib_bind_location(
const char* name);
567 virtual int get_uniform_bind_location(
const char* name);
577 virtual int get_gl_program_object();
591 int get_num_additional_feature_names();
594 const char * get_additional_feature_name(
int index);
597 int has_additional_feature(
const char * name);
611 static int get_transposed_matrix_data();
619 static int get_use_4x3_shader_matrix_data();
638 int get_num_variables();
639 const char* get_variable_name_at_index(
int index);
640 int has_variable(
const char* name);
641 const char* get_variable_type(
const char* name);
643 int set_variable_float(
const char* name,
float value,
int set_current = 1,
int set_initial = 0,
int create = 0);
644 int set_variable_vec2(
const char* name,
float x,
float y,
int set_current = 1,
int set_initial = 0,
int create = 0);
645 int set_variable_vec3(
const char* name,
float x,
float y,
float z,
int set_current = 1,
int set_initial = 0,
int create = 0);
646 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);
647 int set_variable_int(
const char* name,
int value,
int set_current = 1,
int set_initial = 0,
int create = 0);
649 int get_variable_float(
const char* name,
float* value,
int get_current = 1);
650 int get_variable_vec2(
const char* name,
float* x,
float* y,
int get_current = 1);
651 int get_variable_vec3(
const char* name,
float* x,
float* y,
float* z,
int get_current = 1);
652 int get_variable_vec4(
const char* name,
float* r,
float* g,
float* b,
float* a,
int get_current = 1);
653 int get_variable_int(
const char* name,
int* value,
int get_current = 1);
666 virtual void set_apply_matrices_flag(
int apply_matrices_flag){;}
667 virtual void set_textures_enabled(
int enabled){;}
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
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
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:49
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
Definition: diguyGraphicsShaderProgram.h:72
Definition: diguyGraphicsShaderProgram.h:49