KiCad PCB EDA Suite
Loading...
Searching...
No Matches
KIGFX::GAL_MODERN::SCENE_ARENA< T > Struct Template Reference

Retained scene arena holding one slot per placed group, patched in place so changing one item uploads only that item. More...

Public Attributes

std::vector< T > elements
 CPU mirror of the GPU buffer, dead slots included.
 
RHI_BufferHandle buffer
 
size_t capacity = 0
 elements the GPU buffer can hold
 
uint32_t dead = 0
 elements sitting in freed slots
 
std::unordered_map< uint32_t, std::vector< uint32_t > > freeSlots
 Freed slot starts by slot length, reused last-in first-out so a group re-cached with the same size gets its own slot back.
 
std::vector< PATCH_SPAN > dirty
 spans to upload at the next Flush
 
bool uploadAll = false
 

Detailed Description

template<typename T>
struct KIGFX::GAL_MODERN::SCENE_ARENA< T >

Retained scene arena holding one slot per placed group, patched in place so changing one item uploads only that item.

Freed slots hold elements that rasterize nothing until a group of the same size reuses them.

Definition at line 667 of file gal_modern.h.

Member Data Documentation

◆ buffer

◆ capacity

template<typename T>
size_t KIGFX::GAL_MODERN::SCENE_ARENA< T >::capacity = 0

elements the GPU buffer can hold

Definition at line 671 of file gal_modern.h.

Referenced by KIGFX::GAL_MODERN::ReleaseBuffers(), and KIGFX::GAL_MODERN::uploadSceneArena().

◆ dead

template<typename T>
uint32_t KIGFX::GAL_MODERN::SCENE_ARENA< T >::dead = 0

elements sitting in freed slots

Definition at line 672 of file gal_modern.h.

Referenced by KIGFX::GAL_MODERN::allocSceneSlot(), KIGFX::GAL_MODERN::compactSceneArena(), and KIGFX::GAL_MODERN::freeSceneSlot().

◆ dirty

template<typename T>
std::vector<PATCH_SPAN> KIGFX::GAL_MODERN::SCENE_ARENA< T >::dirty

spans to upload at the next Flush

Definition at line 680 of file gal_modern.h.

Referenced by KIGFX::GAL_MODERN::compactSceneArena(), and KIGFX::GAL_MODERN::uploadSceneArena().

◆ elements

◆ freeSlots

template<typename T>
std::unordered_map<uint32_t, std::vector<uint32_t> > KIGFX::GAL_MODERN::SCENE_ARENA< T >::freeSlots

Freed slot starts by slot length, reused last-in first-out so a group re-cached with the same size gets its own slot back.

Definition at line 678 of file gal_modern.h.

Referenced by KIGFX::GAL_MODERN::allocSceneSlot(), KIGFX::GAL_MODERN::compactSceneArena(), KIGFX::GAL_MODERN::freeSceneSlot(), and KIGFX::GAL_MODERN::retainedTieOrderChanged().

◆ uploadAll


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