|
KiCad PCB EDA Suite
|
Specialization of CACHED_CONTAINER that stores data in video memory via memory mapping. More...
#include <cached_container_gpu.h>
Public Member Functions | |
| CACHED_CONTAINER_GPU (unsigned int aSize=DEFAULT_SIZE) | |
| ~CACHED_CONTAINER_GPU () | |
| unsigned int | GetBufferHandle () const override |
| Return handle to the vertex buffer. | |
| bool | IsMapped () const override |
| Return true if vertex buffer is currently mapped. | |
| void | Abandon () override |
| Give up ownership of any GL objects without deleting them. | |
| void | Map () override |
| Prepare the container for vertices updates. | |
| void | Unmap () override |
| Finish the vertices updates stage. | |
| virtual unsigned int | AllItemsSize () const override |
| bool | IsCached () const override |
| Return true if the container caches vertex data in RAM or video memory. | |
| virtual void | SetItem (VERTEX_ITEM *aItem) override |
| Set the item for the further actions. | |
| virtual void | FinishItem () override |
| Clean up after adding an item. | |
| virtual VERTEX * | Allocate (unsigned int aSize) override |
| Return allocated space for the requested number of vertices associated with the current item (set with SetItem()). | |
| virtual void | Delete (VERTEX_ITEM *aItem) override |
| Erase the data related to an item. | |
| virtual void | Clear () override |
| Remove all data stored in the container and restores its original state. | |
| VERTEX * | GetAllVertices () const |
| Return pointer to the vertices stored in the container. | |
| virtual VERTEX * | GetVertices (unsigned int aOffset) const |
| Return vertices stored at the specific offset. | |
| virtual unsigned int | GetSize () const |
| Return amount of vertices currently stored in the container. | |
| bool | IsDirty () const |
| Return information about the container cache state. | |
| void | SetDirty () |
| Set the dirty flag, so vertices in the container are going to be reuploaded to the GPU on the next frame. | |
| void | ClearDirty () |
| Clear the dirty flag to prevent reuploading vertices to the GPU memory. | |
Static Public Member Functions | |
| static VERTEX_CONTAINER * | MakeContainer (bool aCached) |
| Return a pointer to a new container of an appropriate type. | |
Protected Types | |
| typedef std::pair< unsigned int, unsigned int > | CHUNK |
| Maps size of free memory chunks to their offsets. | |
| typedef std::multimap< unsigned int, unsigned int > | FREE_CHUNK_MAP |
Protected Member Functions | |
| bool | defragmentResize (unsigned int aNewSize) override |
| Remove empty spaces between chunks and optionally resizes the container. | |
| bool | defragmentResizeMemcpy (unsigned int aNewSize) |
| bool | defragmentResizeStaged (unsigned int aNewSize) |
| Grow the buffer while keeping the peak video memory at max(old, new) rather than old + new, by staging the compacted vertices through host memory and releasing the old buffer before allocating the replacement. | |
| bool | reallocate (unsigned int aSize) |
| Resize the chunk that stores the current item to the given size. | |
| void | defragment (VERTEX *aTarget) |
| Transfer all stored data to a new buffer, removing empty spaces between the data chunks in the container. | |
| void | mergeFreeChunks () |
| Look for consecutive free memory chunks and merges them, decreasing fragmentation of memory. | |
| int | getChunkSize (const CHUNK &aChunk) const |
| Return the size of a chunk. | |
| unsigned int | getChunkOffset (const CHUNK &aChunk) const |
| Return the offset of a chunk. | |
| void | addFreeChunk (unsigned int aOffset, unsigned int aSize) |
| Add a chunk marked as a free space. | |
| unsigned int | usedSpace () const |
| Return size of the used memory space. | |
Protected Attributes | |
| bool | m_isMapped |
| Flag saying if vertex buffer is currently mapped. | |
| unsigned int | m_glBufferHandle |
| Vertex buffer handle. | |
| bool | m_useCopyBuffer |
| Flag saying whether it is safe to use glCopyBufferSubData. | |
| FREE_CHUNK_MAP | m_freeChunks |
| Store size & offset of free chunks. | |
| std::set< VERTEX_ITEM * > | m_items |
| Stored VERTEX_ITEMs. | |
| VERTEX_ITEM * | m_item |
| Currently modified item. | |
| unsigned int | m_chunkSize |
| Properties of currently modified chunk & item. | |
| unsigned int | m_chunkOffset |
| unsigned int | m_maxIndex |
| Maximal vertex index number stored in the container. | |
| unsigned int | m_freeSpace |
| Free space left in the container, expressed in vertices. | |
| unsigned int | m_currentSize |
| Current container size, expressed in vertices. | |
| unsigned int | m_initialSize |
| Store the initial size, so it can be resized to this on Clear() | |
| VERTEX * | m_vertices |
| Actual storage memory. | |
| bool | m_failed |
| bool | m_dirty |
Static Protected Attributes | |
| static constexpr unsigned int | DEFAULT_SIZE = 1048576 |
| Default initial size of a container (expressed in vertices) | |
Private Member Functions | |
| void | showFreeChunks () |
| Debug & test functions. | |
| void | showUsedChunks () |
| void | test () |
Specialization of CACHED_CONTAINER that stores data in video memory via memory mapping.
Definition at line 34 of file cached_container_gpu.h.
|
protectedinherited |
Maps size of free memory chunks to their offsets.
Definition at line 97 of file cached_container.h.
|
protectedinherited |
Definition at line 98 of file cached_container.h.
| CACHED_CONTAINER_GPU::CACHED_CONTAINER_GPU | ( | unsigned int | aSize = DEFAULT_SIZE | ) |
Definition at line 51 of file cached_container_gpu.cpp.
References KIGFX::CACHED_CONTAINER::CACHED_CONTAINER(), checkGlError(), KIGFX::VERTEX_CONTAINER::m_currentSize, m_glBufferHandle, m_isMapped, m_useCopyBuffer, traceGalProfile, and KIGFX::VERTEX_SIZE.
| CACHED_CONTAINER_GPU::~CACHED_CONTAINER_GPU | ( | ) |
Definition at line 89 of file cached_container_gpu.cpp.
References m_glBufferHandle, m_isMapped, and Unmap().
|
overridevirtual |
Give up ownership of any GL objects without deleting them.
Used when the owning context can no longer be made current, so a delete would be executed against whichever context is, possibly one from another share group. The names are released when the owning context is destroyed.
Reimplemented from KIGFX::VERTEX_CONTAINER.
Definition at line 81 of file cached_container_gpu.cpp.
References m_glBufferHandle, and m_isMapped.
|
protectedinherited |
Add a chunk marked as a free space.
Definition at line 403 of file cached_container.cpp.
References KIGFX::VERTEX_CONTAINER::m_currentSize, m_freeChunks, and KIGFX::VERTEX_CONTAINER::m_freeSpace.
Referenced by Delete(), FinishItem(), and reallocate().
|
overridevirtual |
Reimplemented from KIGFX::CACHED_CONTAINER.
Definition at line 438 of file cached_container_gpu.cpp.
References KIGFX::CACHED_CONTAINER::m_items.
Referenced by defragmentResize(), defragmentResizeMemcpy(), and defragmentResizeStaged().
|
overridevirtualinherited |
Return 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.
| aSize | is the number of vertices to be allocated. |
| bad_alloc | exception if allocation fails. |
Implements KIGFX::VERTEX_CONTAINER.
Definition at line 108 of file cached_container.cpp.
References IsMapped(), m_chunkOffset, m_chunkSize, KIGFX::VERTEX_CONTAINER::m_dirty, KIGFX::VERTEX_CONTAINER::m_failed, m_item, KIGFX::VERTEX_CONTAINER::m_vertices, reallocate(), showFreeChunks(), showUsedChunks(), and test().
|
overridevirtualinherited |
Remove all data stored in the container and restores its original state.
Implements KIGFX::VERTEX_CONTAINER.
Definition at line 198 of file cached_container.cpp.
References KIGFX::VERTEX_CONTAINER::m_currentSize, KIGFX::VERTEX_CONTAINER::m_failed, m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_items, and m_maxIndex.
|
inlineinherited |
Clear the dirty flag to prevent reuploading vertices to the GPU memory.
Definition at line 157 of file vertex_container.h.
References m_dirty.
Referenced by KIGFX::GPU_CACHED_MANAGER::EndDrawing().
|
protectedinherited |
Transfer all stored data to a new buffer, removing empty spaces between the data chunks in the container.
| aTarget | is the destination for the defragmented data. |
Definition at line 288 of file cached_container.cpp.
References m_chunkOffset, m_item, m_items, m_maxIndex, KIGFX::VERTEX_CONTAINER::m_vertices, KIGFX::VERTEX_CONTAINER::usedSpace(), and KIGFX::VERTEX_SIZE.
Referenced by KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeMemcpy(), and KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged().
|
overrideprotectedvirtual |
Remove empty spaces between chunks and optionally resizes the container.
After the operation there is continuous space for storing vertices at the end of the container.
| aNewSize | is the new size of container, expressed in number of vertices. |
Implements KIGFX::CACHED_CONTAINER.
Definition at line 147 of file cached_container_gpu.cpp.
References AllItemsSize(), checkGlError(), KIGFX::chooseResizeStrategy(), defragmentResizeMemcpy(), defragmentResizeStaged(), KIGFX::VERTEX_ITEM::GetOffset(), KIGFX::VERTEX_ITEM::GetSize(), KIGFX::GPU_COPY, IsMapped(), KIGFX::CACHED_CONTAINER::m_chunkOffset, KIGFX::VERTEX_CONTAINER::m_currentSize, KIGFX::CACHED_CONTAINER::m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_glBufferHandle, m_isMapped, KIGFX::CACHED_CONTAINER::m_item, KIGFX::CACHED_CONTAINER::m_items, m_useCopyBuffer, Map(), PROF_TIMER::msecs(), KIGFX::queryFreeVideoMemoryBytes(), KIGFX::RAM_STAGE, KIGFX::REFUSE, KIGFX::VERTEX_ITEM::setOffset(), PROF_TIMER::Stop(), traceGalCachedContainerGpu, traceGalProfile, KIGFX::VERTEX_CONTAINER::usedSpace(), and KIGFX::VERTEX_SIZE.
|
protected |
Definition at line 281 of file cached_container_gpu.cpp.
References AllItemsSize(), checkGlError(), KIGFX::CACHED_CONTAINER::defragment(), IsMapped(), KIGFX::VERTEX_CONTAINER::m_currentSize, KIGFX::CACHED_CONTAINER::m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_glBufferHandle, Map(), PROF_TIMER::msecs(), PROF_TIMER::Stop(), traceGalCachedContainerGpu, traceGalProfile, Unmap(), KIGFX::VERTEX_CONTAINER::usedSpace(), and KIGFX::VERTEX_SIZE.
Referenced by defragmentResize().
|
protected |
Grow the buffer while keeping the peak video memory at max(old, new) rather than old + new, by staging the compacted vertices through host memory and releasing the old buffer before allocating the replacement.
| aNewSize | is the new size of the container, expressed in number of vertices. |
Definition at line 367 of file cached_container_gpu.cpp.
References AllItemsSize(), checkGlError(), KIGFX::CACHED_CONTAINER::defragment(), IsMapped(), KIGFX::VERTEX_CONTAINER::m_currentSize, KIGFX::CACHED_CONTAINER::m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_glBufferHandle, KIGFX::VERTEX_CONTAINER::m_vertices, Map(), traceGalCachedContainerGpu, traceGalProfile, Unmap(), KIGFX::VERTEX_CONTAINER::usedSpace(), and KIGFX::VERTEX_SIZE.
Referenced by defragmentResize().
|
overridevirtualinherited |
Erase the data related to an item.
| aItem | is the item to be erased. |
Implements KIGFX::VERTEX_CONTAINER.
Definition at line 157 of file cached_container.cpp.
References addFreeChunk(), defragmentResize(), KIGFX::VERTEX_ITEM::GetOffset(), KIGFX::VERTEX_ITEM::GetSize(), KIGFX::VERTEX_CONTAINER::m_currentSize, KIGFX::VERTEX_CONTAINER::m_freeSpace, KIGFX::VERTEX_CONTAINER::m_initialSize, m_items, KIGFX::VERTEX_ITEM::setSize(), and test().
|
overridevirtualinherited |
Clean up after adding an item.
Reimplemented from KIGFX::VERTEX_CONTAINER.
Definition at line 75 of file cached_container.cpp.
References addFreeChunk(), m_chunkOffset, m_chunkSize, m_item, m_items, m_maxIndex, and test().
|
inlineinherited |
Return pointer to the vertices stored in the container.
Definition at line 112 of file vertex_container.h.
References m_vertices.
|
inlineoverridevirtual |
Return handle to the vertex buffer.
It might be negative if the buffer is not initialized.
Implements KIGFX::CACHED_CONTAINER.
Definition at line 40 of file cached_container_gpu.h.
References m_glBufferHandle.
|
inlineprotectedinherited |
Return the offset of a chunk.
| aChunk | is the chunk. |
Definition at line 150 of file cached_container.h.
Referenced by reallocate().
|
inlineprotectedinherited |
Return the size of a chunk.
| aChunk | is the chunk. |
Definition at line 140 of file cached_container.h.
Referenced by reallocate(), and test().
|
inlinevirtualinherited |
Return amount of vertices currently stored in the container.
Reimplemented in KIGFX::NONCACHED_CONTAINER.
Definition at line 130 of file vertex_container.h.
References m_currentSize.
|
inlinevirtualinherited |
Return vertices stored at the specific offset.
| aOffset | is the offset. |
Definition at line 122 of file vertex_container.h.
References m_vertices.
|
inlineoverridevirtualinherited |
Return true if the container caches vertex data in RAM or video memory.
Otherwise it is a single batch draw which is later discarded.
Implements KIGFX::VERTEX_CONTAINER.
Definition at line 48 of file cached_container.h.
|
inlineinherited |
Return information about the container cache state.
Definition at line 140 of file vertex_container.h.
References m_dirty.
|
inlineoverridevirtual |
Return true if vertex buffer is currently mapped.
Implements KIGFX::CACHED_CONTAINER.
Definition at line 45 of file cached_container_gpu.h.
References m_isMapped.
Referenced by defragmentResize(), defragmentResizeMemcpy(), defragmentResizeStaged(), Map(), and Unmap().
|
staticinherited |
Return a pointer to a new container of an appropriate type.
Definition at line 38 of file vertex_container.cpp.
References VERTEX_CONTAINER().
Referenced by KIGFX::VERTEX_MANAGER::VERTEX_MANAGER().
|
overridevirtual |
Prepare the container for vertices updates.
Implements KIGFX::CACHED_CONTAINER.
Definition at line 99 of file cached_container_gpu.cpp.
References checkGlError(), IsMapped(), m_glBufferHandle, m_isMapped, and KIGFX::VERTEX_CONTAINER::m_vertices.
Referenced by defragmentResize(), defragmentResizeMemcpy(), and defragmentResizeStaged().
|
protectedinherited |
Look for consecutive free memory chunks and merges them, decreasing fragmentation of memory.
Definition at line 348 of file cached_container.cpp.
References m_freeChunks, and test().
|
protectedinherited |
Resize 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.
| aSize | is the requested chunk size. |
Definition at line 217 of file cached_container.cpp.
References addFreeChunk(), defragmentResize(), getChunkOffset(), getChunkSize(), IsMapped(), m_chunkOffset, m_chunkSize, KIGFX::VERTEX_CONTAINER::m_currentSize, m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_item, KIGFX::VERTEX_CONTAINER::m_vertices, result, and KIGFX::VERTEX_SIZE.
Referenced by Allocate().
|
inlineinherited |
Set the dirty flag, so vertices in the container are going to be reuploaded to the GPU on the next frame.
Definition at line 149 of file vertex_container.h.
References m_dirty.
|
overridevirtualinherited |
Set the item for the further actions.
| aItem | is the item or NULL in case of finishing the item. |
Implements KIGFX::VERTEX_CONTAINER.
Definition at line 62 of file cached_container.cpp.
References KIGFX::VERTEX_ITEM::GetOffset(), KIGFX::VERTEX_ITEM::GetSize(), m_chunkOffset, m_chunkSize, and m_item.
|
privateinherited |
Debug & test functions.
Definition at line 413 of file cached_container.cpp.
Referenced by Allocate().
|
privateinherited |
Definition at line 418 of file cached_container.cpp.
Referenced by Allocate().
|
privateinherited |
Definition at line 423 of file cached_container.cpp.
References getChunkSize(), m_chunkSize, KIGFX::VERTEX_CONTAINER::m_currentSize, m_freeChunks, KIGFX::VERTEX_CONTAINER::m_freeSpace, m_item, and m_items.
Referenced by Allocate(), Delete(), FinishItem(), and mergeFreeChunks().
|
overridevirtual |
Finish the vertices updates stage.
Implements KIGFX::CACHED_CONTAINER.
Definition at line 124 of file cached_container_gpu.cpp.
References checkGlError(), IsMapped(), m_isMapped, and KIGFX::VERTEX_CONTAINER::m_vertices.
Referenced by defragmentResizeMemcpy(), defragmentResizeStaged(), and ~CACHED_CONTAINER_GPU().
|
inlineprotectedinherited |
Return size of the used memory space.
Definition at line 170 of file vertex_container.h.
References m_currentSize, and m_freeSpace.
Referenced by KIGFX::CACHED_CONTAINER::defragment(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeMemcpy(), and KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged().
|
staticconstexprprotectedinherited |
Default initial size of a container (expressed in vertices)
Definition at line 192 of file vertex_container.h.
|
protectedinherited |
Definition at line 167 of file cached_container.h.
Referenced by Allocate(), CACHED_CONTAINER(), defragment(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), FinishItem(), reallocate(), and SetItem().
|
protectedinherited |
Properties of currently modified chunk & item.
Definition at line 166 of file cached_container.h.
Referenced by Allocate(), CACHED_CONTAINER(), FinishItem(), reallocate(), SetItem(), and test().
|
protectedinherited |
Current container size, expressed in vertices.
Definition at line 179 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::addFreeChunk(), KIGFX::NONCACHED_CONTAINER::Allocate(), KIGFX::CACHED_CONTAINER_GPU::CACHED_CONTAINER_GPU(), KIGFX::CACHED_CONTAINER::Clear(), KIGFX::NONCACHED_CONTAINER::Clear(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeMemcpy(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged(), KIGFX::CACHED_CONTAINER::Delete(), GetSize(), KIGFX::CACHED_CONTAINER::reallocate(), KIGFX::CACHED_CONTAINER::test(), usedSpace(), and VERTEX_CONTAINER().
|
protectedinherited |
Definition at line 189 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::Allocate(), ClearDirty(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), IsDirty(), SetDirty(), KIGFX::CACHED_CONTAINER_RAM::Unmap(), and VERTEX_CONTAINER().
|
protectedinherited |
Definition at line 188 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::Allocate(), KIGFX::CACHED_CONTAINER::Clear(), and VERTEX_CONTAINER().
|
protectedinherited |
Store size & offset of free chunks.
Definition at line 161 of file cached_container.h.
Referenced by addFreeChunk(), CACHED_CONTAINER(), Clear(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeMemcpy(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged(), mergeFreeChunks(), reallocate(), and test().
|
protectedinherited |
Free space left in the container, expressed in vertices.
Definition at line 176 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::addFreeChunk(), KIGFX::NONCACHED_CONTAINER::Allocate(), KIGFX::CACHED_CONTAINER::Clear(), KIGFX::NONCACHED_CONTAINER::Clear(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeMemcpy(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged(), KIGFX::CACHED_CONTAINER::Delete(), KIGFX::CACHED_CONTAINER::reallocate(), KIGFX::CACHED_CONTAINER::test(), usedSpace(), and VERTEX_CONTAINER().
|
protected |
Vertex buffer handle.
Definition at line 89 of file cached_container_gpu.h.
Referenced by Abandon(), CACHED_CONTAINER_GPU(), defragmentResize(), defragmentResizeMemcpy(), defragmentResizeStaged(), GetBufferHandle(), Map(), and ~CACHED_CONTAINER_GPU().
|
protectedinherited |
Store the initial size, so it can be resized to this on Clear()
Definition at line 182 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::Delete(), and VERTEX_CONTAINER().
|
protected |
Flag saying if vertex buffer is currently mapped.
Definition at line 86 of file cached_container_gpu.h.
Referenced by Abandon(), CACHED_CONTAINER_GPU(), defragmentResize(), IsMapped(), Map(), Unmap(), and ~CACHED_CONTAINER_GPU().
|
protectedinherited |
Currently modified item.
Definition at line 163 of file cached_container.h.
Referenced by Allocate(), CACHED_CONTAINER(), defragment(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), FinishItem(), reallocate(), SetItem(), and test().
|
protectedinherited |
Stored VERTEX_ITEMs.
Definition at line 162 of file cached_container.h.
Referenced by KIGFX::CACHED_CONTAINER_GPU::AllItemsSize(), Clear(), defragment(), KIGFX::CACHED_CONTAINER_GPU::defragmentResize(), Delete(), FinishItem(), and test().
|
protectedinherited |
Maximal vertex index number stored in the container.
Definition at line 170 of file cached_container.h.
Referenced by CACHED_CONTAINER(), Clear(), defragment(), FinishItem(), and KIGFX::CACHED_CONTAINER_RAM::Unmap().
|
protected |
Flag saying whether it is safe to use glCopyBufferSubData.
Definition at line 92 of file cached_container_gpu.h.
Referenced by CACHED_CONTAINER_GPU(), and defragmentResize().
|
protectedinherited |
Actual storage memory.
Definition at line 185 of file vertex_container.h.
Referenced by KIGFX::CACHED_CONTAINER::Allocate(), KIGFX::NONCACHED_CONTAINER::Allocate(), KIGFX::CACHED_CONTAINER_RAM::CACHED_CONTAINER_RAM(), KIGFX::CACHED_CONTAINER::defragment(), KIGFX::CACHED_CONTAINER_RAM::defragmentResize(), KIGFX::CACHED_CONTAINER_GPU::defragmentResizeStaged(), GetAllVertices(), GetVertices(), KIGFX::CACHED_CONTAINER_GPU::Map(), KIGFX::NONCACHED_CONTAINER::NONCACHED_CONTAINER(), KIGFX::CACHED_CONTAINER::reallocate(), KIGFX::CACHED_CONTAINER_GPU::Unmap(), KIGFX::CACHED_CONTAINER_RAM::Unmap(), VERTEX_CONTAINER(), KIGFX::CACHED_CONTAINER_RAM::~CACHED_CONTAINER_RAM(), and KIGFX::NONCACHED_CONTAINER::~NONCACHED_CONTAINER().