|
My Project
|
pool of vertex buffer object. More...
#include <ParaVertexBufferPool.h>
Public Member Functions | |
| ParaVertexBufferPool (const AssetKey &key) | |
| ATTRIBUTE_DEFINE_CLASS (ParaVertexBufferPool) | |
| virtual int | InstallFields (CAttributeClass *pClass, bool bOverride) |
| this class should be implemented if one wants to add new attribute. More... | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, GetFullSizedBufferSize_s, int *) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, SetFullSizedBufferSize_s, int) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, GetMaxPooledCount_s, int *) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, SetMaxPooledCount_s, int) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, GetActiveBufferCount_s, int *) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, GetTotalBufferCount_s, int *) | |
| ATTRIBUTE_METHOD1 (ParaVertexBufferPool, GetTotalBufferBytes_s, int *) | |
| uint32 | GetFullSizedBufferSize () const |
| void | SetFullSizedBufferSize (uint32 val) |
| uint32 | GetMaxPooledCount () const |
| void | SetMaxPooledCount (uint32 val) |
| size_t | GetTotalBufferBytes (bool bRecalculate=false) |
| int | GetActiveBufferCount () const |
| int | GetTotalBufferCount () const |
| including active and unused buffer count. More... | |
| ParaVertexBuffer * | CreateBuffer (uint32 nBufferSize, DWORD dwFormat=0, DWORD dwUsage=0, D3DPOOL dwPool=D3DPOOL_MANAGED) |
| recreate the buffer based on the new size. More... | |
| void | ReleaseBuffer (ParaVertexBuffer *pBuffer) |
| release the buffer. More... | |
| void | TickCache () |
| called between render tick to release some cached pool object if needed. More... | |
| virtual void | Cleanup () |
| clear all pooled objects. More... | |
| virtual HRESULT | RendererRecreated () |
| callback of listening the event that renderer was recreated on Android/WP8 all opengl related id has already become invalid at this time, no need to release them, just recreate them all in this function. | |
Public Member Functions inherited from ParaEngine::AssetEntity | |
| AssetEntity (const AssetKey &key) | |
| ATTRIBUTE_DEFINE_CLASS (AssetEntity) | |
| ATTRIBUTE_METHOD1 (AssetEntity, GetLocalFileName_s, const char **) | |
| ATTRIBUTE_METHOD1 (AssetEntity, SetLocalFileName_s, const char *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, GetRemoteAssetURL_s, const char **) | |
| ATTRIBUTE_METHOD1 (AssetEntity, IsValid_s, bool *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, IsLoaded_s, bool *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, IsLocked_s, bool *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, IsInitialized_s, bool *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, GetState_s, int *) | |
| ATTRIBUTE_METHOD1 (AssetEntity, SetState_s, int) | |
| virtual AssetType | GetType () |
| virtual const std::string & | GetIdentifier () |
| virtual bool | AutoSync (bool bForceSync=false, bool bLazyLoading=true) |
| call this function to automatically sync with the remote server according to current asset state More... | |
| virtual void | Refresh (const char *sFilename=NULL, bool bLazyLoad=false) |
| refresh the asset from local disk. More... | |
| virtual const string & | GetLocalFileName () |
| the actual local file name. More... | |
| virtual void | SetLocalFileName (const char *sFileName) |
| virtual string | GetRemoteAssetURL () |
| get the remote server url of this asset. More... | |
| virtual CParameterBlock * | GetParamBlock (bool bCreateIfNotExist=false) |
| get effect parameter block with this object. More... | |
| bool | IsValid () |
| whether this is a valid resource object. More... | |
| bool | IsInitialized () |
| whether initialized. More... | |
| virtual bool | IsLoaded () |
| most assets are loaded asynchronously. More... | |
| virtual int | Release () |
| call this function to safely release this asset. More... | |
| AssetKey & | GetKey () |
| return the key object. More... | |
| AssetState | GetState () |
| return the asset state. More... | |
| void | SetState (AssetState state) |
| set the asset state. More... | |
| virtual IAttributeFields * | GetAttributeObject () |
| get the attribute object of this asset. More... | |
| virtual HRESULT | InitDeviceObjects () |
| virtual HRESULT | RestoreDeviceObjects () |
| virtual HRESULT | InvalidateDeviceObjects () |
| virtual HRESULT | DeleteDeviceObjects () |
| void | LoadAsset () |
| load asset. More... | |
| void | UnloadAsset () |
| unload asset. More... | |
| void | GarbageCollectMe () |
| if its reference count is zero, unload this asset object. More... | |
| bool | IsLocked () |
| whether this is a locked resource resource. More... | |
| virtual bool | Lock (int nMethod=0) |
| Lock the object. More... | |
| virtual void | UnLock () |
| UnLock the object. | |
| virtual bool | GetBoundingBox (Vector3 *pMin, Vector3 *pMax) |
| Get AABB bounding box of the asset object. More... | |
Public Member Functions inherited from ParaEngine::IAttributeFields | |
| virtual int | GetAttributeClassID () |
| attribute class ID should be identical, unless one knows how overriding rules work. More... | |
| virtual const char * | GetAttributeClassName () |
| a static string, describing the attribute class object's name | |
| virtual const char * | GetAttributeClassDescription () |
| a static string, describing the attribute class object | |
| virtual int | GetChildAttributeColumnCount () |
| we support multi-dimensional child object. More... | |
| virtual int | GetChildAttributeObjectCount (int nColumnIndex=0) |
| get the number of child objects (row count) in the given column. More... | |
| virtual IAttributeFields * | GetChildAttributeObject (int nRowIndex, int nColumnIndex=0) |
| virtual IAttributeFields * | GetChildAttributeObject (const std::string &sName) |
| get attribute by child object. More... | |
| ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **) | |
| ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *) | |
| ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s) | |
| ATTRIBUTE_METHOD (IAttributeFields, AddRef_s) | |
| ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *) | |
| ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int) | |
| ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *) | |
| ATTRIBUTE_METHOD (IAttributeFields, Release_s) | |
| virtual void | SetIdentifier (const std::string &sID) |
| virtual bool | IsModified () |
| whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More... | |
| virtual void | SetModified (bool bModified) |
| set whether any field has been modified. More... | |
| virtual bool | ValidateFields () |
| validate all fields and return true if validation passed. More... | |
| virtual string | GetValidationMessage () |
| get the recent validation message due to the most recent call to ValidateFields() | |
| virtual bool | ResetField (int nFieldID) |
| Reset the field to its initial or default value. More... | |
| virtual bool | InvokeEditor (int nFieldID, const std::string &sParameters) |
| Invoke an (external) editor for a given field. More... | |
| virtual bool | AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0) |
| add child object. More... | |
| virtual void * | QueryObjectByName (const std::string &sObjectType) |
| convert to object of a given type. More... | |
| virtual void * | QueryObject (int nObjectType) |
| convert to object of a given type. More... | |
| virtual int | GetTime () |
| get the current local time in case it is animated in milli seconds frames. More... | |
| virtual void | SetTime (int nTime) |
| virtual CDynamicAttributeField * | GetDynamicField (const std::string &sName) |
| Get a dynamic field with a given name. More... | |
| virtual CDynamicAttributeField * | GetDynamicField (int nIndex) |
| Get a dynamic field with a given index. More... | |
| virtual const char * | GetDynamicFieldNameByIndex (int nIndex) |
| get field name by index | |
| virtual int | GetDynamicFieldCount () |
| how many dynamic field this object currently have. More... | |
| virtual int | SetDynamicField (const std::string &sName, const CVariable &value) |
| set a dynamic field with a given name. More... | |
| virtual int | AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType) |
| add dynamic field and return field index | |
| virtual void | RemoveAllDynamicFields () |
| remove all dynamic fields | |
| virtual int | SaveDynamicFieldsToString (std::string &output) |
| save only text dynamic fields to fieldname = value text strings. More... | |
| virtual int | LoadDynamicFieldsFromString (const std::string &input) |
| load only text dynamic fields from string More... | |
| CAttributeClass * | GetAttributeClass () |
| get the main attribute class object. More... | |
| void | PrintObject () |
| print the content of this object to a text file at temp/doc/[ClassName].txt. More... | |
Public Member Functions inherited from ParaEngine::IObject | |
| virtual void | Clone (IObject *obj) const |
| Clone the object's contains to a pointer. More... | |
| virtual IObject * | Clone () const |
| Clone the object's contains and return a pointer to the newly created object. More... | |
| virtual bool | Equals (const IObject *obj) const |
| Compare the object with another object. More... | |
| virtual const IType * | GetType () const |
| virtual std::string | ToString () const |
| WeakPtr_type & | GetWeakReference () |
| get weak reference object. More... | |
| virtual int | ProcessObjectEvent (const ObjectEvent &event) |
| this function is only used to backward compatibility of ParaObject:AddEvent() function. More... | |
Public Member Functions inherited from ParaEngine::CRefCounted | |
| void | addref () const |
| add reference count of the object. More... | |
| bool | delref () const |
| decrease reference count of the object. More... | |
| int | GetRefCount () const |
| get the reference count | |
| CRefCounted * | AddToAutoReleasePool () |
| addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More... | |
Protected Attributes | |
| std::unordered_set< ParaVertexBuffer * > | m_activeBuffers |
| std::unordered_set< ParaVertexBuffer * > | m_unusedFullSizedBuffers |
| uint32 | m_nFullSizedBufferSize |
| we will reuse full sized buffer | |
| uint32 | m_nMaxPooledCount |
| max number of pooled objects. More... | |
| size_t | m_nTotalBufferBytes |
| total number of bytes in memory. More... | |
Protected Attributes inherited from ParaEngine::IObject | |
| WeakPtr_type | m_weak_reference |
Protected Attributes inherited from ParaEngine::CRefCounted | |
| int | m_refcount |
Additional Inherited Members | |
Public Types inherited from ParaEngine::AssetEntity | |
| enum | AssetState { ASSET_STATE_NORMAL, ASSET_STATE_LOCAL, ASSET_STATE_REMOTE, ASSET_STATE_CACHE, ASSET_STATE_SYNC_START, ASSET_STATE_SYNC_SUCCEED, ASSET_STATE_SYNC_FAIL, ASSET_STATE_FAILED_TO_LOAD } |
| the asset state. More... | |
| enum | AssetType { base =0, texture, mesh, multianimation, spritevertex, font, sound, mdx, parax, database, effectfile, dllplugin, datagrid, cadMesh, image } |
| each asset type has a unique asset type number | |
Public Types inherited from ParaEngine::IAttributeFields | |
| typedef ParaEngine::weak_ptr< IObject, IAttributeFields > | WeakPtr_type |
Public Types inherited from ParaEngine::IObject | |
| typedef ParaEngine::weak_ptr< IObject > | WeakPtr_type |
Static Public Member Functions inherited from ParaEngine::AssetEntity | |
| static const string & | GetAssetServerUrl () |
| get the asset server url. More... | |
| static void | SetAssetServerUrl (const char *pStr) |
| set the asset server url. More... | |
Static Public Member Functions inherited from ParaEngine::IAttributeFields | |
| static HRESULT | GetAttributeClassID_s (IAttributeFields *cls, int *p1) |
| static HRESULT | GetAttributeClassName_s (IAttributeFields *cls, const char **p1) |
| static bool | OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false) |
| Open a given file with the default registered editor in the game engine. More... | |
Public Attributes inherited from ParaEngine::AssetEntity | |
| AssetKey | m_key |
| this is the unique key object. More... | |
| bool | m_bIsInitialized |
| whether this entity is initialized;Entity is by default lazily initialized | |
| bool | m_bIsValid |
| whether this is a valid resource object. More... | |
Protected Member Functions inherited from ParaEngine::IAttributeFields | |
| virtual CAttributeClass * | CreateAttributeClass () |
| initialize fields | |
| virtual CDynamicAttributesSet * | GetDynamicAttributes (bool bCreateIfNotExist=false) |
pool of vertex buffer object.
|
virtual |
clear all pooled objects.
Reimplemented from ParaEngine::AssetEntity.
| ParaVertexBuffer * ParaEngine::ParaVertexBufferPool::CreateBuffer | ( | uint32 | nBufferSize, |
| DWORD | dwFormat = 0, |
||
| DWORD | dwUsage = 0, |
||
| D3DPOOL | dwPool = D3DPOOL_MANAGED |
||
| ) |
recreate the buffer based on the new size.
it will create from pool if buffer equals GetFullSizedBufferSize() otherwise it will create a new buffer object.
| dwFormat | only used in DirectX, ignored in openGL |
| dwUsage | only used in DirectX, ignored in openGL |
| int ParaEngine::ParaVertexBufferPool::GetTotalBufferCount | ( | ) | const |
including active and unused buffer count.
|
virtual |
this class should be implemented if one wants to add new attribute.
This function is always called internally.
Reimplemented from ParaEngine::AssetEntity.
| void ParaEngine::ParaVertexBufferPool::ReleaseBuffer | ( | ParaVertexBuffer * | pBuffer | ) |
release the buffer.
If it is a full sized buffer we will not release it but add it to a pool for reuse.
| void ParaEngine::ParaVertexBufferPool::TickCache | ( | ) |
called between render tick to release some cached pool object if needed.
|
protected |
max number of pooled objects.
|
protected |
total number of bytes in memory.
1.8.12