14 #ifndef __diguyGraphicsShaderTechnique_H
15 #define __diguyGraphicsShaderTechnique_H
21 #define CPLUSPLUS_ONLY
32 class bdiShaderTechnique;
56 m_custom_shader_program(0),
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;
179 const char* get_name();
186 int get_num_shader_lod_programs(
bool instanced =
false);
200 float get_shader_lod_range_at_index(
int index);
214 int get_program_index_by_distance(
float distance,
int max_quality_level);
269 int get_num_additional_shaders();
293 int set_variable_float(
const char* name,
float value,
int set_current = 1,
int set_initial = 0);
294 int set_variable_vec2(
const char* name,
float x,
float y,
int set_current = 1,
int set_initial = 0);
295 int set_variable_vec3(
const char* name,
float x,
float y,
float z,
int set_current = 1,
int set_initial = 0);
296 int set_variable_vec4(
const char* name,
float x,
float y,
float z,
float w,
int set_current = 1,
int set_initial = 0);
297 int set_variable_int(
const char* name,
int value,
int set_current = 1,
int set_initial = 0);
326 virtual void build();
333 #ifdef CPLUSPLUS_ONLY
335 bdiShaderTechnique* get_internal_data() {
return m_internal_data;}
356 bdiShaderTechnique* m_internal_data;
358 friend class bdiShaderTechnique;
359 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:127
Definition: diguyGraphicsShaderTechnique.h:45
diguyGraphicsShaderInstance * m_shader_instance
The pointer to the current shader instance, allows access to the currently draw character object...
Definition: diguyGraphicsShaderTechnique.h:134
This struct is passed into diguyGraphicsShaderTechnique::pick_shader_program() to provide the end use...
Definition: diguyGraphicsShaderTechnique.h:86
float m_shader_lod_bias
a multiplier to use on the distance to camera
Definition: diguyGraphicsShaderTechnique.h:117
diguyShaderPickDescription()
Definition: diguyGraphicsShaderTechnique.h:88
int m_render_pass
Definition: diguyGraphicsShaderTechnique.h:70
void * m_pre_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:75
void diguyDrawFunc()
This struct is populated by the user and passed into diguyApp::add_draw_pass(diguyDrawPass drawPass)...
Definition: diguyGraphicsShaderTechnique.h:40
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:122
float m_render_distance
the distance from the object to the camera
Definition: diguyGraphicsShaderTechnique.h:114
int m_shader_lod
the current specified shader level of detail, -1 indicates to use m_render_distance for picking...
Definition: diguyGraphicsShaderTechnique.h:111
diguyDrawFunc * m_post_draw
Definition: diguyGraphicsShaderTechnique.h:77
Definition: diguyGraphicsShaderTechnique.h:44
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:125
bool m_use_instancing
Use a shader that supports instancing.
Definition: diguyGraphicsShaderTechnique.h:130
diguyRenderPass
Definition: diguyGraphicsShaderTechnique.h:42
int m_current_render_pass
which pass is currently being rendered opaque objects == 0 objects with transparency == 1 ...
Definition: diguyGraphicsShaderTechnique.h:104
Definition: diguyGraphicsShaderTechnique.h:46
This class implements shader lod system for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderTechnique.h:152
This class implements shader programs for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderProgram.h:96
int m_current_render_flags
a list of diguyRenderPassFlags ored together
Definition: diguyGraphicsShaderTechnique.h:107
void * m_post_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:78