DI-Guy SDK Documentation  13.1
DI-Guy Graphics API

The portion of the API focused on integrating DI-Guy into your rendering framework. detailed overview at 7.1 - Introduction to the DI-Guy Graphics API. More...

Classes

struct  diguyShaderPickDescription
 This struct is passed into diguyGraphicsShaderTechnique::pick_shader_program() to provide the end user information to base the resulting shader choice. More...
 
class  diguyGraphicsTexture
 A class that represents a shared texture. Can be subclassed by filling out the diguy_graphics_set_texture_create_func(). More...
 
class  diguyRenderSettings
 Private Class. More...
 
class  diguyGraphicsMesh
 A class that represents a shared mesh object. More...
 
class  diguyGraphicsState
 A class that represents a shared material/textures combination. More...
 
class  diguyGraphicsVertexFormats
 
class  diguyGraphicsFile
 
class  diguyGraphicsMaterial
 A class that represents a shared material. More...
 
class  diguyGraphicsInstanceGroup
 A class that represents an instance group. An instance group is a collection meshes, attached to shapes, that can be drawn with a single draw call using supplemental instance data information. An instance group can contain segmented meshes or skinned mesh (but not mixed in the same group). More...
 
class  diguyGraphicsLink
 A class that represents the unique per-character non-shared joint of a character. A diguyCharacter is a hierarchy of links and joints. Think of the links as the bones of the characters while joints are the articulations. Note that the links themselves do not have any geometry directly associated with them; instead geometry is associated with shapes, which in turn are associated with links. More...
 
class  diguyGraphicsShaderInstance
 A class that represents the unique per-character shader object. More...
 
class  diguyGraphicsShaderProgram
 This class implements shader programs for use with DI-Guy character graphics. More...
 
class  diguyGraphicsShaderTechnique
 This class implements shader lod system for use with DI-Guy character graphics. More...
 
class  diguyGraphicsShape
 A class that represents the unique per-character non-shared mesh object. DI-Guy encapsulates its textured geometry in objects called shapes. One or more shapes are associated with each link, so when a link is "drawn", it is actually its array of shapes that are drawn. For example, a head link might have two shapes associated with it: A human head and a helmet. A shape can either be a rigid mesh or a skinned one. More...
 
class  diguyParticleSystem
 An interface class that represents a particle system that has been created by diguy's appearance effect system. this class allows you to hook up diguy to a 3rd party particle system basing the mapping on the particle name. More...
 
class  diguyParticleSystemRenderer
 An interface class that allows diguy to trigger an immediate mode rendering of a diguy particle system. This class allows you to directly utilize the DI-Guy particle system. See diguyOglParticleSystemRenderer for a sample implementation. More...
 
class  diguyParticleDrawDesc
 An Structure that represents a particle system draw state. This struct allows you to feed rendering information to openGL. More...
 

Graphics API Initialization Functions

int diguy_graphics_initialize (bdiGraphicsInitGraphicsAPI *init)
 This function initializes the DI-Guy Runtime API for accessing information about DI-Guy graphics and geometry. More...
 
int diguy_graphics_get_defaults (bdiGraphicsInitGraphicsAPI *init)
 Fills out the init structure with default values. More...
 
int diguy_graphics_get_osg_defaults (bdiGraphicsInitGraphicsAPI *init)
 Fills out the init structure with default OSG values. More...
 
int diguy_graphics_get_dx9_defaults (bdiGraphicsInitGraphicsAPI *init)
 Fills out the init structure with default values. More...
 
void diguy_graphics_set_use_far_positions (int flag)
 This function turns far position rendering on or off. More...
 
int diguy_graphics_get_use_far_positions ()
 This function gets the status of far position rendering. More...
 

DI-Guy Graphics Object Create Functions

int diguy_graphics_set_link_create_func (diguyGraphicsLinkCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsLink. More...
 
int diguy_graphics_set_shape_create_func (diguyGraphicsShapeCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsShape. More...
 
int diguy_graphics_set_file_create_func (diguyGraphicsFileCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsFile. More...
 
int diguy_graphics_set_state_create_func (diguyGraphicsStateCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsState. More...
 
int diguy_graphics_set_material_create_func (diguyGraphicsMaterialCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsMaterial. More...
 
int diguy_graphics_set_texture_create_func (diguyGraphicsTextureCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsTexture. More...
 
int diguy_graphics_set_mesh_create_func (diguyGraphicsMeshCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsMesh. More...
 
int diguy_graphics_set_shader_program_create_func (diguyGraphicsShaderProgramCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsShaderProgram. More...
 
int diguy_graphics_set_shader_technique_create_func (diguyGraphicsShaderTechniqueCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsShaderTechnique. More...
 
int diguy_graphics_set_shader_instance_create_func (diguyGraphicsShaderInstanceCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsShaderInstance. More...
 
int diguy_graphics_set_instance_group_create_func (diguyGraphicsInstanceGroupCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyGraphicsInstanceGroup. More...
 
int diguy_graphics_set_painter_create_func (diguyViewPainterCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyViewPainter. More...
 
int diguy_graphics_set_particle_system_create_func (diguyParticleSystemCreateFunc *func)
 Function responsible for allowing end users to subclass from a diguyParticleSystem currently this is limited to allowing diguy to control an external particle system. More...
 
int diguy_graphics_set_particle_renderer_create_func (diguyParticleRendererCreateFunc *func)
 

Detailed Description

The portion of the API focused on integrating DI-Guy into your rendering framework. detailed overview at 7.1 - Introduction to the DI-Guy Graphics API.

Function Documentation

int diguy_graphics_initialize ( bdiGraphicsInitGraphicsAPI init)

This function initializes the DI-Guy Runtime API for accessing information about DI-Guy graphics and geometry.

Use diguy_graphics_get_defaults() to fill out the init structure before changing specific entries.

Parameters
initpointer to type bdiGraphicsInitGraphicsAPI; passing NULL will cause defaults to be used for all values

Returns:

0 on success, non-zero error code on failure

Refer to diguy_constants.h for error code values.

int diguy_graphics_set_link_create_func ( diguyGraphicsLinkCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsLink.

int diguy_graphics_get_defaults ( bdiGraphicsInitGraphicsAPI init)

Fills out the init structure with default values.

Selected entries can then be changed before calling diguy_graphics_initialize().

The default values are:

  • init->use_array_format_for_vertex_buffer_data = 0;
  • init->default_vertex_type = DIGUY_GRAPHICS_INDEX_TYPE_USHORT;
  • init->use_shaders = 1;
  • init->shader_language = DIGUY_GRAPHICS_SHADER_LANGUAGE_GLSL;
  • init->transpose_shader_matrices = 0;
  • init->use_4x3_shader_matrices = 1;
  • init->use_cached_optimized_geometry = 1;
  • init->use_cached_compressed_textures = 1;
  • init->use_sRGB_corrected_textures = 1;
  • init->characters_have_world_space_triangle_query = 0;
  • init->scene_objects_have_world_space_triangle_query = 0;
  • init->use_linear_traversal_draw = 1;
Parameters
initpointer to type bdiGraphicsInitGraphicsAPI

Returns:

0 on success, -1 on failure

int diguy_graphics_get_osg_defaults ( bdiGraphicsInitGraphicsAPI init)

Fills out the init structure with default OSG values.

Selected entries can then be changed before calling diguy_graphics_initialize().

The differences for the default values are:

  • init->transpose_shader_matrices = 1;
  • init->use_4x3_shader_matrices = 0;
  • init->use_sRGB_corrected_textures = 0;
Parameters
initpointer to type bdiGraphicsInitGraphicsAPI

Returns:

0 on success, -1 on failure

int diguy_graphics_get_dx9_defaults ( bdiGraphicsInitGraphicsAPI init)

Fills out the init structure with default values.

Selected entries can then be changed before calling diguy_graphics_initialize().

The differences for the default values are:

  • init->transpose_shader_matrices = 1
  • init->use_4x3_shader_matrices = 0
  • init->shader_language = DIGUY_GRAPHICS_SHADER_LANGUAGE_HLSL
Parameters
initpointer to type bdiGraphicsInitGraphicsAPI

Returns:

0 on success, -1 on failure

void diguy_graphics_set_use_far_positions ( int  flag)

This function turns far position rendering on or off.

It must be called after diguy_graphics_initialize().

Parameters
flagpass 1 to turn far positions on, 0 to turn them off
int diguy_graphics_get_use_far_positions ( )

This function gets the status of far position rendering.

It can only be called after diguy_graphics_initialize().

Returns:

1 if far position rendering is on, 0 if not

int diguy_graphics_set_shape_create_func ( diguyGraphicsShapeCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsShape.

int diguy_graphics_set_file_create_func ( diguyGraphicsFileCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsFile.

int diguy_graphics_set_state_create_func ( diguyGraphicsStateCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsState.

int diguy_graphics_set_material_create_func ( diguyGraphicsMaterialCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsMaterial.

int diguy_graphics_set_texture_create_func ( diguyGraphicsTextureCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsTexture.

int diguy_graphics_set_mesh_create_func ( diguyGraphicsMeshCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsMesh.

int diguy_graphics_set_shader_program_create_func ( diguyGraphicsShaderProgramCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsShaderProgram.

int diguy_graphics_set_shader_technique_create_func ( diguyGraphicsShaderTechniqueCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsShaderTechnique.

int diguy_graphics_set_shader_instance_create_func ( diguyGraphicsShaderInstanceCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsShaderInstance.

int diguy_graphics_set_instance_group_create_func ( diguyGraphicsInstanceGroupCreateFunc func)

Function responsible for allowing end users to subclass from a diguyGraphicsInstanceGroup.

int diguy_graphics_set_painter_create_func ( diguyViewPainterCreateFunc func)

Function responsible for allowing end users to subclass from a diguyViewPainter.

int diguy_graphics_set_particle_system_create_func ( diguyParticleSystemCreateFunc func)

Function responsible for allowing end users to subclass from a diguyParticleSystem currently this is limited to allowing diguy to control an external particle system.

int diguy_graphics_set_particle_renderer_create_func ( diguyParticleRendererCreateFunc func)