libHSPlasma
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
plGBufferGroup Class Reference

#include <plGBufferGroup.h>

Public Types

enum  Formats {
  kUVCountMask = 0xF, kSkinNoWeights = 0x0, kSkin1Weight = 0x10, kSkin2Weights = 0x20,
  kSkin3Weights = 0x30, kSkinWeightMask = 0x30, kSkinIndices = 0x40, kEncoded = 0x80
}
enum  GeometryStorage {
  kStoreUncompressed = 0, kStoreCompV1 = 0x1, kStoreCompV2 = 0x2, kStoreCompV3 = 0x3,
  kStoreCompTypeMask = 0x3, kStoreIsDirty = 0x4
}

Public Member Functions

 plGBufferGroup (unsigned char fmt)
 ~plGBufferGroup ()
void read (hsStream *S)
void write (hsStream *S)
void prcWrite (pfPrcHelper *prc)
void prcParse (const pfPrcTag *tag)
std::vector< plGBufferVertexgetVertices (size_t idx, size_t start=0, size_t count=(size_t)-1) const
std::vector< unsigned short > getIndices (size_t idx, size_t start=0, size_t count=(size_t)-1, size_t offset=0) const
std::vector< plGBufferCellgetCells (size_t idx) const
unsigned char getFormat () const
size_t getSkinWeights () const
size_t getNumUVs () const
bool getHasSkinIndices () const
void addVertices (const std::vector< plGBufferVertex > &verts)
void addIndices (const std::vector< unsigned short > &indices)
void addCells (const std::vector< plGBufferCell > &cells)
void setFormat (unsigned char format)
void setSkinWeights (size_t skinWeights)
void setNumUVs (size_t numUVs)
void setHasSkinIndices (bool hasSI)
void delVertices (size_t idx)
void delIndices (size_t idx)
void delCells (size_t idx)
void clearVertices ()
void clearIndices ()
void clearCells ()
size_t getNumVertBuffers () const
size_t getNumIdxBuffers () const
const unsigned char * getVertBufferStorage (size_t idx) const
const unsigned short * getIdxBufferStorage (size_t idx) const
unsigned char * getMutableVertBuffer (size_t idx)
unsigned short * getMutableIdxBuffer (size_t idx)
size_t getVertBufferSize (size_t idx) const
size_t getIdxBufferCount (size_t idx) const
unsigned int getStride () const

Protected Member Functions

unsigned int ICalcVertexSize (unsigned int &lStride)
bool INeedVertRecompression (PlasmaVer ver) const

Protected Attributes

unsigned int fFormat
unsigned int fStride
unsigned int fLiteStride
unsigned int fGBuffStorageType
std::vector< unsigned int > fVertBuffSizes
std::vector< unsigned int > fIdxBuffCounts
std::vector< unsigned int > fCompGBuffSizes
std::vector< unsigned char * > fVertBuffStorage
std::vector< unsigned short * > fIdxBuffStorage
std::vector< std::vector
< plGBufferCell > > 
fCells
std::vector< unsigned char * > fCompGBuffStorage

Member Enumeration Documentation

Enumerator:
kUVCountMask 
kSkinNoWeights 
kSkin1Weight 
kSkin2Weights 
kSkin3Weights 
kSkinWeightMask 
kSkinIndices 
kEncoded 
Enumerator:
kStoreUncompressed 
kStoreCompV1 
kStoreCompV2 
kStoreCompV3 
kStoreCompTypeMask 
kStoreIsDirty 

Constructor & Destructor Documentation

plGBufferGroup::plGBufferGroup ( unsigned char  fmt)
plGBufferGroup::~plGBufferGroup ( )

Member Function Documentation

void plGBufferGroup::addCells ( const std::vector< plGBufferCell > &  cells)
void plGBufferGroup::addIndices ( const std::vector< unsigned short > &  indices)
void plGBufferGroup::addVertices ( const std::vector< plGBufferVertex > &  verts)
void plGBufferGroup::clearCells ( )
void plGBufferGroup::clearIndices ( )
void plGBufferGroup::clearVertices ( )
void plGBufferGroup::delCells ( size_t  idx)
void plGBufferGroup::delIndices ( size_t  idx)
void plGBufferGroup::delVertices ( size_t  idx)
std::vector<plGBufferCell> plGBufferGroup::getCells ( size_t  idx) const
unsigned char plGBufferGroup::getFormat ( ) const
bool plGBufferGroup::getHasSkinIndices ( ) const
size_t plGBufferGroup::getIdxBufferCount ( size_t  idx) const
const unsigned short* plGBufferGroup::getIdxBufferStorage ( size_t  idx) const
std::vector<unsigned short> plGBufferGroup::getIndices ( size_t  idx,
size_t  start = 0,
size_t  count = (size_t)-1,
size_t  offset = 0 
) const
unsigned short* plGBufferGroup::getMutableIdxBuffer ( size_t  idx)
unsigned char* plGBufferGroup::getMutableVertBuffer ( size_t  idx)
size_t plGBufferGroup::getNumIdxBuffers ( ) const
size_t plGBufferGroup::getNumUVs ( ) const
size_t plGBufferGroup::getNumVertBuffers ( ) const
size_t plGBufferGroup::getSkinWeights ( ) const
unsigned int plGBufferGroup::getStride ( ) const
size_t plGBufferGroup::getVertBufferSize ( size_t  idx) const
const unsigned char* plGBufferGroup::getVertBufferStorage ( size_t  idx) const
std::vector<plGBufferVertex> plGBufferGroup::getVertices ( size_t  idx,
size_t  start = 0,
size_t  count = (size_t)-1 
) const
unsigned int plGBufferGroup::ICalcVertexSize ( unsigned int &  lStride)
protected
bool plGBufferGroup::INeedVertRecompression ( PlasmaVer  ver) const
protected
void plGBufferGroup::prcParse ( const pfPrcTag tag)
void plGBufferGroup::prcWrite ( pfPrcHelper prc)
void plGBufferGroup::read ( hsStream S)
void plGBufferGroup::setFormat ( unsigned char  format)
void plGBufferGroup::setHasSkinIndices ( bool  hasSI)
void plGBufferGroup::setNumUVs ( size_t  numUVs)
void plGBufferGroup::setSkinWeights ( size_t  skinWeights)
void plGBufferGroup::write ( hsStream S)

Member Data Documentation

std::vector<std::vector<plGBufferCell> > plGBufferGroup::fCells
protected
std::vector<unsigned int> plGBufferGroup::fCompGBuffSizes
protected
std::vector<unsigned char*> plGBufferGroup::fCompGBuffStorage
protected
unsigned int plGBufferGroup::fFormat
protected
unsigned int plGBufferGroup::fGBuffStorageType
protected
std::vector<unsigned int> plGBufferGroup::fIdxBuffCounts
protected
std::vector<unsigned short*> plGBufferGroup::fIdxBuffStorage
protected
unsigned int plGBufferGroup::fLiteStride
protected
unsigned int plGBufferGroup::fStride
protected
std::vector<unsigned int> plGBufferGroup::fVertBuffSizes
protected
std::vector<unsigned char*> plGBufferGroup::fVertBuffStorage
protected

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