Overview   Project   Class   Tree   Deprecated   Index 
0 A.D.
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD

renderer
Class ModelVertexRenderer

   in ModelVertexRenderer.h
Direct Known Subclasses:
FixedFunctionModelRenderer, HWLightingModelRenderer, InstancingModelRenderer, PolygonSortModelRenderer

class ModelVertexRenderer

Class ModelVertexRenderer: Normal ModelRenderer implementations delegate vertex array management and vertex transformation to an implementation of ModelVertexRenderer. ModelVertexRenderer implementations should be designed so that one instance of the implementation can be used with more than one ModelRenderer simultaneously.


Constructor Summary
virtual ~ModelVertexRenderer()
          
 
Method Summary
 virtual void BeginPass( uint streamflags, const CMatrix3D* texturematrix )= 0
          BeginPass: Setup global OpenGL state for this ModelVertexRenderer.
 virtual void* CreateModelData( CModel* model )= 0
          CreateModelData: Create internal data for one model.
 virtual void DestroyModelData( CModel* model, void* data )= 0
          DestroyModelData: Release all per-model data that has been allocated by CreateModelData or UpdateModelData.
 virtual void EndPass( uint streamflags )= 0
          EndPass: Cleanup OpenGL state set up by BeginPass.
 virtual void PrepareModelDef( uint streamflags, CModelDefPtr def )= 0
          PrepareModelDef: Setup OpenGL state for rendering of models that use the given CModelDef object as base.
 virtual void RenderModel( uint streamflags, CModel* model, void* data )= 0
          RenderModel: Invoke the rendering commands for the given model.
 virtual void UpdateModelData( CModel* model, void* data, u32 updateflags )= 0
          UpdateModelData: Calculate per-model data for each frame.
 

Constructor Detail

~ModelVertexRenderer

public virtual ~ModelVertexRenderer();


Method Detail

BeginPass

public virtual void BeginPass( uint streamflags, const CMatrix3D* texturematrix )= 0;
BeginPass: Setup global OpenGL state for this ModelVertexRenderer. ModelVertexRenderer implementations should prepare "heavy" OpenGL state such as vertex shader state to prepare for rendering models and delivering vertex data to the fragment stage as described by streamflags. ModelRenderer implementations must call this function before any calls to other rendering related functions. Recursive calls to BeginPass are not allowed, and every BeginPass is matched by a corresponding call to EndPass.
Parameters:
streamflags - Vertex streams required by the fragment stage.
texturematrix - if texgen is requested in streamflags, this points to the texture matrix that must be used to transform vertex positions into texture coordinates

CreateModelData

public virtual void* CreateModelData( CModel* model )= 0;
CreateModelData: Create internal data for one model. ModelRenderer implementations must call this once for every model that will later be rendered. ModelVertexRenderer implementations should use this function to create per-CModel and per-CModelDef data like vertex arrays.
Parameters:
model - The model.
Returns:
An opaque pointer that will be passed to other ModelVertexRenderer functions whenever the CModel is passed again. Note that returning 0 is allowed and does not indicate an error condition.

DestroyModelData

public virtual void DestroyModelData( CModel* model, void* data )= 0;
DestroyModelData: Release all per-model data that has been allocated by CreateModelData or UpdateModelData. ModelRenderer implementations must ensure that this function is called exactly once for every call to CreateModelData. This can be achieved by deriving from CModelRData and calling DestroyModelData in the derived class' destructor. ModelVertexRenderer implementations need not track the CModel instances for which per-model data has been created.
Parameters:
model - The model.
data - Private data as returned by CreateModelData.

EndPass

public virtual void EndPass( uint streamflags )= 0;
EndPass: Cleanup OpenGL state set up by BeginPass. ModelRenderer implementations must call this function after rendering related functions for one pass have been called.
Parameters:
streamflags - Vertex streams required by the fragment stage. This equals the streamflags parameter passed on the last call to BeginPass.

PrepareModelDef

public virtual void PrepareModelDef( uint streamflags, CModelDefPtr def )= 0;
PrepareModelDef: Setup OpenGL state for rendering of models that use the given CModelDef object as base. ModelRenderer implementations must call this function before rendering a sequence of models based on the given CModelDef. When a ModelRenderer switches back and forth between CModelDefs, it must call PrepareModelDef for every switch.
Parameters:
streamflags - Vertex streams required by the fragment stage. This equals the streamflags parameter passed on the last call to BeginPass.
def - The model definition.

RenderModel

public virtual void RenderModel( uint streamflags, CModel* model, void* data )= 0;
RenderModel: Invoke the rendering commands for the given model. ModelRenderer implementations must call this function to perform the actual rendering. preconditions : The most recent call to PrepareModelDef since BeginPass has been for model->GetModelDef().
Parameters:
streamflags - Vertex streams required by the fragment stage. This equals the streamflags parameter passed on the last call to BeginPass.
model - The model that should be rendered.
data - Private data for the model as returned by CreateModelData. postconditions : Subsequent calls to RenderModel for models that use the same CModelDef object and the same texture must succeed.

UpdateModelData

public virtual void UpdateModelData( CModel* model, void* data, u32 updateflags )= 0;
UpdateModelData: Calculate per-model data for each frame. ModelRenderer implementations must call this once per frame for every model that is to be rendered in this frame, even if the value of updateflags will be zero. This implies that this function will also be called at least once between a call to CreateModelData and a call to RenderModel. ModelVertexRenderer implementations should use this function to perform software vertex transforms and potentially other per-frame calculations.
Parameters:
model - The model.
data - Private data as returned by CreateModelData.
updateflags - Flags indicating which data has changed during the frame. The value is the same as the value of the model's CRenderData::m_UpdateFlags.

 Overview   Project   Class   Tree   Deprecated   Index 
0 A.D.
Generated on September 04, 2007 at 18:14
CppDoc v2.4.0
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD