DI-Guy SDK Documentation  13.7.1
diguyOglGraphicsInstanceGroup Class Reference

#include <diguyOglGraphicsInstanceGroup.h>

Inheritance diagram for diguyOglGraphicsInstanceGroup:
diguyGraphicsInstanceGroup

Public Member Functions

 diguyOglGraphicsInstanceGroup (void *internal_data)
 
virtual void build () override
 This function will be called by DI-Guy when it is time for a renderer specific instance group to be created. More...
 
virtual void unbuild () override
 This function will be called by DI-Guy when it is time for a instance group to be destroyed. More...
 
virtual int bind_instance_group_data (int base_start, int link_start, int count) override
 This function will be called by DI-Guy when variables for using the instance data needs to be sent to the graphics card. More...
 
virtual int bind_instance_buffer_data (int num_floats, const float *instance_data) override
 This function will be called by DI-Guy when data for instance groups needs to be sent to the graphics card. More...
 
- Public Member Functions inherited from diguyGraphicsInstanceGroup
long get_uid () const
 Instance groups are assigned a unique identifier, or uid. More...
 
int get_num_instances () const
 Returns the number of instances in the instance group. More...
 
int get_start_base_offset () const
 Return the offset, in floats, of the base data for the instance group. More...
 
int get_start_link_offset () const
 Return the offset, in floats, of the link data for the instance group. More...
 
int get_num_links () const
 Returns the number of links for instances with skinned geometry. More...
 
void get_debug_color (float &r, float &g, float &b, float &a) const
 Returns the debug color of an instance group. More...
 
int get_show_debug_colors () const
 Returns if debug colors should be used to render. More...
 
diguyGraphicsShaderProgramget_shader_program () const
 This function returns a pointer to the shader program designated for this instance group. More...
 
diguyGraphicsMeshget_diguy_mesh ()
 Returns a pointer to the low level geometry mesh object that comprises the renderable for the instances in the group. More...
 
int get_graphics_state_switch_index ()
 Returns a index to which swapped texture state to use for drawing this instance group. More...
 
const float * get_instance_data ()
 Returns a pointer to the raw instance data for the instance group. More...
 
int get_instance_data_size ()
 Return the size of the data for the instance group in bytes. More...
 
const float * get_instance_base_data ()
 Returns a pointer to the raw instance data for the instance group. More...
 
int get_instance_base_data_size ()
 Return the size of the data for the instance group in bytes. More...
 
const float * get_instance_link_data ()
 Returns a pointer to the raw instance data for the instance group. More...
 
int get_instance_link_data_size ()
 Return the size of the data for the instance group in bytes. More...
 
int get_instance_data_all_groups_size ()
 Return the size of the data for all instance groups in bytes. More...
 
int get_num_extra_per_instance_data_floats ()
 Return the number of extra floats the user has requested for the tbo, must be multiple of 4. More...
 
virtual void update ()
 This function will be called by DI-Guy when it is time for the instance group to be updated with new data. More...
 
diguyGraphicsShapeget_instanced_shape_at_index (int index)
 Returns a pointer to a instanced shape. index should be less then get_num_instances() More...
 
diguyGraphicsStateget_graphics_state ()
 returns a pointer to the instanced state More...
 
bdiInstanceGroupget_scripted_object ()
 

Protected Member Functions

void create_link_matrices_tbo (int num_floats)
 
void destroy_link_matrices_tbo ()
 
- Protected Member Functions inherited from diguyGraphicsInstanceGroup
 diguyGraphicsInstanceGroup (void *internal_data)
 A protected constructor. More...
 
virtual ~diguyGraphicsInstanceGroup ()
 A protected destructor. More...
 

Static Protected Attributes

static int s_tbo_size_in_floats = 0
 
static GLuint s_link_matrices_buffer = 0
 
static GLuint s_link_matrices_tbo = 0
 

Constructor & Destructor Documentation

diguyOglGraphicsInstanceGroup::diguyOglGraphicsInstanceGroup ( void *  internal_data)

Member Function Documentation

void diguyOglGraphicsInstanceGroup::build ( )
overridevirtual

This function will be called by DI-Guy when it is time for a renderer specific instance group to be created.

All information to construct the instance group for consumption by either an immediate mode or scene graph renderer is avaiable via the Accessor Functions above when this function is called.

Immediate Mode:

Immediate mode renderers do not usually override this function.

Scene Graph:

Scene graph renderers override this function to create scene graph specific objects to handle mangement and rendering of the instance group.

Callable From:

  • N/A (automatically called by DI-Guy Graphics API during the Build Stage)

Reimplemented from diguyGraphicsInstanceGroup.

void diguyOglGraphicsInstanceGroup::unbuild ( )
overridevirtual

This function will be called by DI-Guy when it is time for a instance group to be destroyed.

Immediate Mode:

Immediate mode renderers may override this function, to destroy any object that may have been created by build().

Scene Graph:

Scene graph renderers usually do override this function, to destroy any object that may have been created by build().

Callable From:

  • N/A (automatically called by DI-Guy Graphics API during the Unbuild Stage)

Reimplemented from diguyGraphicsInstanceGroup.

int diguyOglGraphicsInstanceGroup::bind_instance_group_data ( int  base_start,
int  link_start,
int  count 
)
overridevirtual

This function will be called by DI-Guy when variables for using the instance data needs to be sent to the graphics card.

For GLSL-based shaders, these values are typically passed into the vertex shader via uniform variables.

Immediate Mode:

Immediate mode renderers usually do override this function.

Scene Graph:

Scene graph renderers usually do not override this function, but instead use diguyGraphicsShape::get_shader_matrix_data() during the Update Stage.

Callable From:

  • N/A (automatically called by DI-Guy Graphics API during the Draw Stage)

Reimplemented from diguyGraphicsInstanceGroup.

int diguyOglGraphicsInstanceGroup::bind_instance_buffer_data ( int  num_floats,
const float *  instance_data 
)
overridevirtual

This function will be called by DI-Guy when data for instance groups needs to be sent to the graphics card.

Immediate Mode:

Immediate mode renderers usually do override this function.

Scene Graph:

Scene graph renderers usually do not override this function, but instead update the instance data in diguyGraphicsInstanceGroup::update()

Callable From:

  • N/A (automatically called by DI-Guy Graphics API during the Draw Stage)

Reimplemented from diguyGraphicsInstanceGroup.

void diguyOglGraphicsInstanceGroup::create_link_matrices_tbo ( int  num_floats)
protected
void diguyOglGraphicsInstanceGroup::destroy_link_matrices_tbo ( )
protected

Member Data Documentation

int diguyOglGraphicsInstanceGroup::s_tbo_size_in_floats = 0
staticprotected
GLuint diguyOglGraphicsInstanceGroup::s_link_matrices_buffer = 0
staticprotected
GLuint diguyOglGraphicsInstanceGroup::s_link_matrices_tbo = 0
staticprotected

The documentation for this class was generated from the following files: