13 #ifndef __diguyGraphicsShaderTechnique_H
14 #define __diguyGraphicsShaderTechnique_H
20 #define CPLUSPLUS_ONLY
31 class bdiShaderTechnique;
55 m_custom_shader_program(NULL),
57 m_pre_draw_user_data(0),
59 m_post_draw_user_data(0)
62 bool operator==(
const diguyDrawPass& rhs)
const
72 const char* m_render_mode;
73 const char* m_custom_shader_program;
76 void* m_pre_draw_user_data;
79 void* m_post_draw_user_data;
180 const char* get_name();
187 int get_num_shader_lod_programs(
bool instanced =
false);
201 float get_shader_lod_range_at_index(
int index);
215 int get_program_index_by_distance(
float distance,
int max_quality_level);
270 int get_num_additional_shaders();
294 int set_variable_float(
const char* name,
float value,
int set_current = 1,
int set_initial = 0);
295 int set_variable_vec2(
const char* name,
float x,
float y,
int set_current = 1,
int set_initial = 0);
296 int set_variable_vec3(
const char* name,
float x,
float y,
float z,
int set_current = 1,
int set_initial = 0);
297 int set_variable_vec4(
const char* name,
float x,
float y,
float z,
float w,
int set_current = 1,
int set_initial = 0);
298 int set_variable_int(
const char* name,
int value,
int set_current = 1,
int set_initial = 0);
327 virtual void build();
334 #ifdef CPLUSPLUS_ONLY
336 bdiShaderTechnique* get_internal_data() {
return m_internal_data;}
357 bdiShaderTechnique* m_internal_data;
359 friend class bdiShaderTechnique;
360 friend class bdiGeometryFactory;
A class that represents the unique per-character shader object.
Definition: diguyGraphicsShaderInstance.h:54
const char * m_custom_shader_program
Definition: diguyGraphicsShaderTechnique.h:128
Definition: diguyGraphicsShaderTechnique.h:38
diguyGraphicsShaderInstance * m_shader_instance
The pointer to the current shader instance, allows access to the currently draw character object...
Definition: diguyGraphicsShaderTechnique.h:135
This struct is passed into diguyGraphicsShaderTechnique::pick_shader_program() to provide the end use...
Definition: diguyGraphicsShaderTechnique.h:87
float m_shader_lod_bias
a multiplier to use on the distance to camera
Definition: diguyGraphicsShaderTechnique.h:118
diguyShaderPickDescription()
Definition: diguyGraphicsShaderTechnique.h:89
int m_render_pass
Definition: diguyGraphicsShaderTechnique.h:69
void * m_pre_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:74
void diguyDrawFunc()
Definition: diguyGraphicsShaderTechnique.h:33
This struct is populated by the user and passed into diguyApp::add_draw_pass(diguyDrawPass drawPass)...
Definition: diguyGraphicsShaderTechnique.h:48
diguyDrawFunc * m_pre_draw
Definition: diguyGraphicsShaderTechnique.h:73
int m_max_quality_level
typically this will either be DIGUY_GRAPHICS_SHADER_QUALITY_PER_PIXEL or DIGUY_GRAPHICS_SHADER_QUALIT...
Definition: diguyGraphicsShaderTechnique.h:123
float m_render_distance
the distance from the object to the camera
Definition: diguyGraphicsShaderTechnique.h:115
int m_shader_lod
the current specified shader level of detail, -1 indicates to use m_render_distance for picking...
Definition: diguyGraphicsShaderTechnique.h:112
diguyDrawFunc * m_post_draw
Definition: diguyGraphicsShaderTechnique.h:76
Definition: diguyGraphicsShaderTechnique.h:37
A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is...
Definition: diguyGraphicsLink.h:45
int m_num_active_point_lights
Number of additional point lights. Set by diguyScenario::set_num_active_point_lights().
Definition: diguyGraphicsShaderTechnique.h:126
bool m_use_instancing
Use a shader that supports instancing.
Definition: diguyGraphicsShaderTechnique.h:131
diguyRenderPass
Definition: diguyGraphicsShaderTechnique.h:35
int m_current_render_pass
which pass is currently being rendered opaque objects == 0 objects with transparency == 1 ...
Definition: diguyGraphicsShaderTechnique.h:105
Definition: diguyGraphicsShaderTechnique.h:39
This class implements shader lod system for use with DI-Guy character graphics.
Definition: diguyGraphicsShaderTechnique.h:153
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:108
void * m_post_draw_user_data
Definition: diguyGraphicsShaderTechnique.h:77