DI-Guy SDK Documentation  13.2
diguyDx11UniformBufferUpdater Class Reference

#include <diguyDx11UniformBuffer.h>

Inheritance diagram for diguyDx11UniformBufferUpdater:
diguyUniformBufferUpdater

Public Member Functions

 diguyDx11UniformBufferUpdater ()
 
virtual ~diguyDx11UniformBufferUpdater ()
 
virtual void initialize ()
 
virtual void update ()
 called before any drawing calls. More...
 
virtual void set_model_matrix (const float *matrix)
 Called as part of diguy scene traversing code. More...
 
virtual void set_view_matrix (const float *matrix)
 Called as part of diguy camera apply function. More...
 
virtual void get_view_matrix (float *matrix, int transpose)
 Needed by particle systems. More...
 
virtual void set_projection_matrix (const float *matrix)
 Called as part of diguy camera apply function. More...
 
virtual void set_texture_matrix (const float *matrix)
 Needed for shadow casting. More...
 
virtual void set_material (const diguyGraphicsMaterial *material)
 This uniform material updater effectively replaces a subclassed graphics material in immediate mode, since that class just communicates old style OpenGL state values down to the shader. More...
 
virtual void set_material_color (float r, float g, float b, float a)
 needed for drawing helper objects More...
 
virtual void set_material_spec (float r, float g, float b, float shine)
 
virtual void set_fog (const diguyViewFog *fog)
 indicates the current diguy fog to use for rendering. Probably only relevant to DI-Guy Scenario More...
 
virtual void set_global_ambient_light (float r, float g, float b)
 Replacement for gl light model. More...
 
virtual void set_use_global_ambient_material (int val)
 Indicates that when material bind happens the ambient value of the material should be ignored and the value from set_global_ambient_material() should be used. More...
 
virtual int get_use_global_ambient_material ()
 
virtual void set_global_ambient_material (float r, float g, float b)
 
virtual void get_global_ambient_material (float **\return, float *g, float **< b >)
 
</b > virtual void set_light (int index, const diguyLightRenderDesc *light)
 See diguyOglUtils::update_lighting for an example of using this function to fill out uniform buffer. More...
 
virtual void set_num_active_lights (int num_lights)
 Called so shaders know how many lights to iterate through. More...
 
virtual void set_shadow_map_params (const diguyShadowMapParams *shadow_params)
 Used by DI-Guy Scenario to communicate shadow params to video card. More...
 
virtual void set_eye_position (float x, float y, float z)
 
- Public Member Functions inherited from diguyUniformBufferUpdater
 diguyUniformBufferUpdater ()
 
virtual ~diguyUniformBufferUpdater ()
 

Public Attributes

DirectX::XMMATRIX m_model_matrix
 
DirectX::XMMATRIX m_view_matrix
 
DirectX::XMMATRIX m_projection_matrix
 
ID3D11Buffer * m_pcbVSPerObject11
 
ID3D11Buffer * m_pcbVSMaterial
 

Private Attributes

int m_per_frame_uniforms_needs_update
 
int m_transform_stack_needs_update
 
const diguyGraphicsMaterialm_last_material
 
int m_use_global_ambient_material
 

Constructor & Destructor Documentation

diguyDx11UniformBufferUpdater::diguyDx11UniformBufferUpdater ( )
diguyDx11UniformBufferUpdater::~diguyDx11UniformBufferUpdater ( )
virtual

Member Function Documentation

void diguyDx11UniformBufferUpdater::initialize ( )
virtual
virtual void diguyDx11UniformBufferUpdater::update ( )
inlinevirtual

called before any drawing calls.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_model_matrix ( const float *  matrix)
inlinevirtual

Called as part of diguy scene traversing code.

Typically called once per character draw Potentially called many times for scene objects.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_view_matrix ( const float *  matrix)
inlinevirtual

Called as part of diguy camera apply function.

Presumably end users will want to call it themselves to setup the uniform buffer data.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::get_view_matrix ( float *  matrix,
int  transpose 
)
inlinevirtual

Needed by particle systems.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_projection_matrix ( const float *  matrix)
inlinevirtual

Called as part of diguy camera apply function.

Presumably end users will want to call it themselves to setup the uniform buffer data.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_texture_matrix ( const float *  matrix)
inlinevirtual

Needed for shadow casting.

This matrix will only be used for projecting light coordinates Probably only relevant to DI-Guy Scenario and shadowing examples.

Implements diguyUniformBufferUpdater.

void diguyDx11UniformBufferUpdater::set_material ( const diguyGraphicsMaterial material)
virtual

This uniform material updater effectively replaces a subclassed graphics material in immediate mode, since that class just communicates old style OpenGL state values down to the shader.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_material_color ( float  r,
float  g,
float  b,
float  a 
)
inlinevirtual

needed for drawing helper objects

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_material_spec ( float  r,
float  g,
float  b,
float  shine 
)
inlinevirtual
virtual void diguyDx11UniformBufferUpdater::set_fog ( const diguyViewFog fog)
inlinevirtual

indicates the current diguy fog to use for rendering. Probably only relevant to DI-Guy Scenario

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_global_ambient_light ( float  r,
float  g,
float  b 
)
inlinevirtual

Replacement for gl light model.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_use_global_ambient_material ( int  val)
inlinevirtual

Indicates that when material bind happens the ambient value of the material should be ignored and the value from set_global_ambient_material() should be used.

Implements diguyUniformBufferUpdater.

virtual int diguyDx11UniformBufferUpdater::get_use_global_ambient_material ( )
inlinevirtual
virtual void diguyDx11UniformBufferUpdater::set_global_ambient_material ( float  r,
float  g,
float  b 
)
inlinevirtual
virtual void diguyDx11UniformBufferUpdater::get_global_ambient_material ( float **\  return,
float *  g,
float **< b >   
)
inlinevirtual
</b> virtual void diguyDx11UniformBufferUpdater::set_light ( int  index,
const diguyLightRenderDesc light 
)
inlinevirtual

See diguyOglUtils::update_lighting for an example of using this function to fill out uniform buffer.

Light sources can be diguy global directional light in addition to particle systems and weapon effects.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_num_active_lights ( int  num_lights)
inlinevirtual

Called so shaders know how many lights to iterate through.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_shadow_map_params ( const diguyShadowMapParams shadow_params)
inlinevirtual

Used by DI-Guy Scenario to communicate shadow params to video card.

Implements diguyUniformBufferUpdater.

virtual void diguyDx11UniformBufferUpdater::set_eye_position ( float  x,
float  y,
float  z 
)
inlinevirtual

Member Data Documentation

DirectX::XMMATRIX diguyDx11UniformBufferUpdater::m_model_matrix
DirectX::XMMATRIX diguyDx11UniformBufferUpdater::m_view_matrix
DirectX::XMMATRIX diguyDx11UniformBufferUpdater::m_projection_matrix
ID3D11Buffer* diguyDx11UniformBufferUpdater::m_pcbVSPerObject11
ID3D11Buffer* diguyDx11UniformBufferUpdater::m_pcbVSMaterial
int diguyDx11UniformBufferUpdater::m_per_frame_uniforms_needs_update
private
int diguyDx11UniformBufferUpdater::m_transform_stack_needs_update
private
const diguyGraphicsMaterial* diguyDx11UniformBufferUpdater::m_last_material
private
int diguyDx11UniformBufferUpdater::m_use_global_ambient_material
private

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