VERTEX_CONTAINER documentation update

This commit is contained in:
Maciej Suminski 2017-08-21 13:30:35 +02:00
parent b5db6a7d5d
commit 91ed3e2bae
3 changed files with 33 additions and 59 deletions

View File

@ -67,14 +67,12 @@ public:
virtual void Clear() override;
/**
* Function GetBufferHandle()
* returns handle to the vertex buffer. It might be negative if the buffer is not initialized.
* Returns handle to the vertex buffer. It might be negative if the buffer is not initialized.
*/
virtual unsigned int GetBufferHandle() const = 0;
/**
* Function IsMapped()
* returns true if vertex buffer is currently mapped.
* Returns true if vertex buffer is currently mapped.
*/
virtual bool IsMapped() const = 0;
@ -106,8 +104,7 @@ protected:
unsigned int m_chunkOffset;
/**
* Function reallocate()
* resizes the chunk that stores the current item to the given size. The current item has
* Resizes the chunk that stores the current item to the given size. The current item has
* its offset adjusted after the call, and the new chunk parameters are stored
* in m_chunkOffset and m_chunkSize.
*
@ -117,8 +114,7 @@ protected:
bool reallocate( unsigned int aSize );
/**
* Function defragmentResize()
* removes empty spaces between chunks and optionally resizes the container.
* Removes empty spaces between chunks and optionally resizes the container.
* After the operation there is continous space for storing vertices at the end of the container.
*
* @param aNewSize is the new size of container, expressed in number of vertices
@ -134,15 +130,13 @@ protected:
void defragment( VERTEX* aTarget );
/**
* Function mergeFreeChunks()
* looks for consecutive free memory chunks and merges them, decreasing fragmentation of
* Looks for consecutive free memory chunks and merges them, decreasing fragmentation of
* memory.
*/
void mergeFreeChunks();
/**
* Function getChunkSize()
* returns size of the given chunk.
* Returns the size of a chunk.
*
* @param aChunk is the chunk.
*/
@ -152,8 +146,7 @@ protected:
}
/**
* Function getChunkOffset()
* returns offset of the chunk.
* Returns the offset of a chunk.
*
* @param aChunk is the chunk.
*/
@ -163,8 +156,7 @@ protected:
}
/**
* Function addFreeChunk
* Adds a chunk marked as free.
* Adds a chunk marked as a free space.
*/
void addFreeChunk( unsigned int aOffset, unsigned int aSize );

View File

@ -62,7 +62,7 @@ public:
virtual void Clear() override;
/// @copydoc VERTEX_CONTAINER::GetSize()
virtual inline unsigned int GetSize() const override
virtual unsigned int GetSize() const override
{
// As the m_freePtr points to the first free space, we can safely assume
// that this is the number of vertices stored inside

View File

@ -41,7 +41,6 @@ class VERTEX_CONTAINER
{
public:
/**
* Function MakeContainer()
* Returns a pointer to a new container of an appropriate type.
*/
static VERTEX_CONTAINER* MakeContainer( bool aCached );
@ -55,35 +54,29 @@ public:
virtual bool IsCached() const = 0;
/**
* Function Map()
* prepares the container for vertices updates.
* Prepares the container for vertices updates.
*/
virtual void Map() {}
/**
* Function Unmap()
* finishes the vertices updates stage.
* Finishes the vertices updates stage.
*/
virtual void Unmap() {}
/**
* Function SetItem()
* sets the item in order to modify or finishes its current modifications.
* Sets the item for the further actions.
* @param aItem is the item or NULL in case of finishing the item.
*/
virtual void SetItem( VERTEX_ITEM* aItem ) = 0;
/**
* Function FinishItem()
* does the cleaning after adding an item.
* Clean up after adding an item.
*/
virtual void FinishItem() {};
/**
* Function Allocate()
* returns allocated space (possibly resizing the used memory chunk or allocating a new
* chunk if it was not stored before) for the given number of vertices associated with the
* current item (set by SetItem()). The newly allocated space is added at the end of the chunk
* Returns allocated space for the requested number of vertices associated with the
* current item (set with SetItem()). The allocated space is added at the end of the chunk
* used by the current item and may serve to store new vertices.
* @param aSize is the number of vertices to be allocated.
* @return Pointer to the allocated space or NULL in case of failure.
@ -91,25 +84,20 @@ public:
virtual VERTEX* Allocate( unsigned int aSize ) = 0;
/**
* Function Delete()
* erases the selected item.
*
* Erases the data related to an item.
* @param aItem is the item to be erased.
*/
virtual void Delete( VERTEX_ITEM* aItem ) = 0;
/**
* Function Clear()
* removes all the data stored in the container and restores its original state.
* Removes all data stored in the container and restores its original state.
*/
virtual void Clear() = 0;
/**
* Function GetAllVertices()
* returns all the vertices stored in the container. It is especially useful for transferring
* data to the GPU memory.
* Returns pointer to the vertices stored in the container.
*/
inline virtual VERTEX* GetAllVertices() const
VERTEX* GetAllVertices() const
{
return m_vertices;
}
@ -119,7 +107,7 @@ public:
* returns vertices stored at the specific offset.
* @param aOffset is the offset.
*/
virtual inline VERTEX* GetVertices( unsigned int aOffset ) const
virtual VERTEX* GetVertices( unsigned int aOffset ) const
{
return &m_vertices[aOffset];
}
@ -128,31 +116,25 @@ public:
* Function GetSize()
* returns amount of vertices currently stored in the container.
*/
virtual inline unsigned int GetSize() const
virtual unsigned int GetSize() const
{
return m_currentSize;
}
/**
* Function IsDirty()
* returns information about container cache state. Clears the flag after calling the function.
* @return true in case the vertices have to be reuploaded.
* Returns information about the container cache state.
* @return True in case the vertices have to be reuploaded.
*/
inline bool IsDirty()
bool IsDirty() const
{
bool state = m_dirty;
m_dirty = false;
return state;
return m_dirty;
}
/**
* Function SetDirty()
* sets the dirty flag, so vertices in the container are going to be reuploaded to the GPU on
* Sets the dirty flag, so vertices in the container are going to be reuploaded to the GPU on
* the next frame.
*/
inline void SetDirty()
void SetDirty()
{
m_dirty = true;
}
@ -168,19 +150,19 @@ public:
protected:
VERTEX_CONTAINER( unsigned int aSize = DEFAULT_SIZE );
///< How many vertices we can store in the container
///> Free space left in the container, expressed in vertices
unsigned int m_freeSpace;
///< How big is the current container, expressed in vertices
///> Current container size, expressed in vertices
unsigned int m_currentSize;
///< Store the initial size, so it can be resized to this on Clear()
///> Store the initial size, so it can be resized to this on Clear()
unsigned int m_initialSize;
///< Actual storage memory (should be handled using malloc/realloc/free to speed up resizing)
///> Actual storage memory
VERTEX* m_vertices;
///< State flags
// Status flags
bool m_failed;
bool m_dirty;
@ -189,7 +171,7 @@ protected:
* returns size of the used memory space.
* @return Size of the used memory space (expressed as a number of vertices).
*/
inline unsigned int usedSpace() const
unsigned int usedSpace() const
{
return m_currentSize - m_freeSpace;
}