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

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

Classes

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  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  diguyGraphicsShaderInstance
 This class implements shader instances for use with shader programs for a character. 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...
 
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...
 

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...
 

Detailed Description

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

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.