14 #ifndef __diguyGraphicsShaderTechnique_H
15 #define __diguyGraphicsShaderTechnique_H
21 #define CPLUSPLUS_ONLY
32 class bdiShaderTechnique;
56 m_custom_shader_program(NULL),
58 m_pre_draw_user_data(0),
60 m_post_draw_user_data(0)
63 bool operator==(
const diguyDrawPass& rhs)
const
73 const char* m_render_mode;
74 const char* m_custom_shader_program;
77 void* m_pre_draw_user_data;
80 void* m_post_draw_user_data;
181 const char* get_name();
188 int get_num_shader_lod_programs(
bool instanced =
false);
202 float get_shader_lod_range_at_index(
int index);
216 int get_program_index_by_distance(
float distance,
int max_quality_level);
271 int get_num_additional_shaders();
295 int set_variable_float(
const char* name,
float value,
int set_current = 1,
int set_initial = 0);
296 int set_variable_vec2(
const char* name,
float x,
float y,
int set_current = 1,
int set_initial = 0);
297 int set_variable_vec3(
const char* name,
float x,
float y,
float z,
int set_current = 1,
int set_initial = 0);
298 int set_variable_vec4(
const char* name,
float x,
float y,
float z,
float w,
int set_current = 1,
int set_initial = 0);
299 int set_variable_int(
const char* name,
int value,
int set_current = 1,
int set_initial = 0);
328 virtual void build();
335 #ifdef CPLUSPLUS_ONLY
337 bdiShaderTechnique* get_internal_data() {
return m_internal_data;}
358 bdiShaderTechnique* m_internal_data;
360 friend class bdiShaderTechnique;
361 friend class bdiGeometryFactory;
A class that represents the unique per-character shader object.
Definition: diguyGraphicsShaderInstance.h:55
const char * m_custom_shader_program
Definition: diguyGraphicsShaderTechnique.h:129
Definition: diguyGraphicsShaderTechnique.h:39
diguyGraphicsShaderInstance * m_shader_instance
The pointer to the current shader instance, allows access to the currently draw character object...
Definition: diguyGraphicsShaderTechnique.h:136
This struct is passed into diguyGraphicsShaderTechnique::pick_shader_program() to provide the end use...
Definition: diguyGraphicsShaderTechnique.h:88
float m_shader_lod_bias
a multiplier to use on the distance to camera
Definition: diguyGraphicsShaderTechnique.h:119
diguyShaderPickDescription()
Definition: diguyGraphicsShaderTechnique.h:90
int m_render_pass
Definition: diguyGraphicsShaderTechnique.h:70
void * m_pre_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:75
void diguyDrawFunc()
Definition: diguyGraphicsShaderTechnique.h:34
This struct is populated by the user and passed into diguyApp::add_draw_pass(diguyDrawPass drawPass)...
Definition: diguyGraphicsShaderTechnique.h:49
diguyDrawFunc * m_pre_draw
Definition: diguyGraphicsShaderTechnique.h:74
int m_max_quality_level
typically this will either be DIGUY_GRAPHICS_SHADER_QUALITY_PER_PIXEL or DIGUY_GRAPHICS_SHADER_QUALIT...
Definition: diguyGraphicsShaderTechnique.h:124
float m_render_distance
the distance from the object to the camera
Definition: diguyGraphicsShaderTechnique.h:116
int m_shader_lod
the current specified shader level of detail, -1 indicates to use m_render_distance for picking...
Definition: diguyGraphicsShaderTechnique.h:113
diguyDrawFunc * m_post_draw
Definition: diguyGraphicsShaderTechnique.h:77
Definition: diguyGraphicsShaderTechnique.h:38
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:47
int m_num_active_point_lights
Number of additional point lights. Set by diguyScenario::set_num_active_point_lights().
Definition: diguyGraphicsShaderTechnique.h:127
bool m_use_instancing
Use a shader that supports instancing.
Definition: diguyGraphicsShaderTechnique.h:132
diguyRenderPass
Definition: diguyGraphicsShaderTechnique.h:36
int m_current_render_pass
which pass is currently being rendered opaque objects == 0 objects with transparency == 1 ...
Definition: diguyGraphicsShaderTechnique.h:106
Definition: diguyGraphicsShaderTechnique.h:40
This class implements shader lod system for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderTechnique.h:154
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:94
int m_current_render_flags
a list of diguyRenderPassFlags ored together
Definition: diguyGraphicsShaderTechnique.h:109
void * m_post_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:78