VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes | Private Member Functions
makVrv::DtGeometrySpecification Struct Reference

Structure that is packed for consumption by GPU for indirect rendering. More...

Public Member Functions

 DtGeometrySpecification (int indexOffset, int indexCount, int firstVertex, int state, const AxisAlignedBoundingBox_32 &box)
 CTOR. More...
 
int indicesOffset () const
 The offset in the registrar where the indices for this spec (model + lod) can be found. More...
 
int indicesCount () const
 The number of indices for this spec (model + lod) More...
 
int firstVertex () const
 The offset in the registrar where the vertices for this spec (model + lod) can be found. More...
 
int state () const
 

Public Attributes

Vector4_int myIndicesInfo
 The vertex/index information for this spec. More...
 
DtGpuAxisAlignedBoundingBox myBox
 The AABB in a structure that can be consumed directly by the GPU. More...
 

Private Member Functions

 DtGeometrySpecification ()
 unimplemented default constructor More...
 

Detailed Description

Structure that is packed for consumption by GPU for indirect rendering.

Indirect rendering geometry registrar will store the 'specs' for multiple models (an array of an array of specs) (so that the specs of multiple models can be uploaded to the GPU directly). Each model can have multiple 'specs'. Each spec has information for the LOD center. Each spec has information of where in the registrar the indices and offsets of the corresponding geometry may be found. Each spec has information about the bounding box for this current spec (for the model and the lod in question). The layout of this class matches the equivalent structure in the indirect rendering shaders. Therefore, ***be CAREFUL if you extend/add variables to this class***, because you must change the corresponding structure in the shaders as well. Especially, be careful if you declare virtual methods/inherit this class (***best avoided***), because that will implicitly add 4/8 bytes for the vtable pointer that you need to account for in the shaders (not to mention, wasted GPU memory space)

Constructor & Destructor Documentation

makVrv::DtGeometrySpecification::DtGeometrySpecification ( int  indexOffset,
int  indexCount,
int  firstVertex,
int  state,
const AxisAlignedBoundingBox_32 box 
)

CTOR.

makVrv::DtGeometrySpecification::DtGeometrySpecification ( )
private

unimplemented default constructor

Member Function Documentation

int makVrv::DtGeometrySpecification::indicesOffset ( ) const

The offset in the registrar where the indices for this spec (model + lod) can be found.

int makVrv::DtGeometrySpecification::indicesCount ( ) const

The number of indices for this spec (model + lod)

int makVrv::DtGeometrySpecification::firstVertex ( ) const

The offset in the registrar where the vertices for this spec (model + lod) can be found.

int makVrv::DtGeometrySpecification::state ( ) const

Member Data Documentation

Vector4_int makVrv::DtGeometrySpecification::myIndicesInfo

The vertex/index information for this spec.

DtGpuAxisAlignedBoundingBox makVrv::DtGeometrySpecification::myBox

The AABB in a structure that can be consumed directly by the GPU.


The documentation for this struct was generated from the following file:

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)