DI-Guy C++ SDK Reference  13.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diguyOglGraphicsInstanceGroup Class Reference

#include <diguyOglGraphicsInstanceGroup.h>

Inheritance diagram for diguyOglGraphicsInstanceGroup:
diguyGraphicsInstanceGroup

Public Member Functions

 diguyOglGraphicsInstanceGroup (void *internal_data)
 
virtual void build ()
 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 ()
 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 start, int count)
 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)
 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_link_offset () const
 This function returns the name of the shape. More...
 
int get_num_links () const
 Returns the number of links for instances with skinned geometry. 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...
 
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...
 
int get_instance_data_all_groups_size ()
 Return the size of the data for all instance groups in bytes. 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...
 
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
 *4 Header files and forward declarations More...
 
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 ( )
virtual

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 ( )
virtual

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  start,
int  count 
)
virtual

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 
)
virtual

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

*4 Header files and forward declarations

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: