Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
bicameral::sim::anonymous_namespace{multires_tree.cpp} Namespace Reference

Functions

uint32_t IndexMask (const MultiresNest &nest)
void IndexInsert (MultiresNest &nest, uint32_t slot)
void IndexRemove (MultiresNest &nest, uint32_t slot)
void Release (MrRequestState &state, uint32_t fractionSlot)
uint32_t PoppedBlock (const MultiresNest &nest, const MrRequestState &state, uint32_t i)
uint32_t PoppedPage (MultiresNest &nest, const MrRequestState &state, uint32_t i)
uint32_t PoppedFraction (const MultiresNest &nest, const MrRequestState &state, uint32_t i)
void ResolveRefine (MultiresNest &nest, uint32_t i)
MrChildren GatherChildren (const MultiresNest &nest, uint32_t childSlot, uint32_t fractionSlot, uint32_t local)
bool CoarsenFits (const MultiresNest &nest, uint32_t childSlot)
void ResolveCoarsen (MultiresNest &nest, uint32_t i)
void Resolve (MultiresNest &nest, uint32_t i)
void Settle (MultiresNest &nest, uint32_t i)
void Allocate (MultiresNest &nest, uint32_t count)
void RefineRequestLevel (MultiresNest &nest, uint32_t i, uint32_t depth, uint32_t parentSlot)
void ApplyRefine (MultiresNest &nest, uint32_t i)
void AddToLedger (MultiresNest &nest, int32_t level, uint32_t column, uint32_t lostBits)
void RecordCoarsened (MultiresNest &nest, const MrCoarsened &result, int32_t childLevel)
void ApplyCoarsen (MultiresNest &nest, uint32_t i)
void ReleaseAll (MultiresNest &nest, uint32_t count)
reaction::RxCell & CellAt (MultiresNest &nest, uint32_t slot, uint32_t index)
multires::MrFraction FractionAt (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index)
uint32_t & FreePageAt (MultiresNest &nest, uint32_t position)
reaction::RxCell & PageCellAt (MultiresNest &nest, uint32_t page, uint32_t index)
void PokeBlock (MultiresNest &nest, uint32_t slot)
void SetFraction (MultiresNest &nest, uint32_t fractionSlot, uint32_t index, const multires::MrFraction &fraction)
reaction::RxCell & UniformAt (MultiresNest &nest, uint32_t slot)

Function Documentation

◆ AddToLedger()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::AddToLedger ( MultiresNest & nest,
int32_t level,
uint32_t column,
uint32_t lostBits )

Definition at line 346 of file multires_tree.cpp.

References AddToLedger(), bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::ledger, and bicameral::sim::MultiresCapacity::ledgerColumns.

Referenced by AddToLedger(), and RecordCoarsened().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Allocate()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::Allocate ( MultiresNest & nest,
uint32_t count )

Definition at line 227 of file multires_tree.cpp.

References Allocate(), bicameral::sim::MultiresNest::counters, and bicameral::sim::MultiresNest::states.

Referenced by Allocate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyCoarsen()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::ApplyCoarsen ( MultiresNest & nest,
uint32_t i )

Definition at line 366 of file multires_tree.cpp.

References ApplyCoarsen(), bicameral::sim::MultiresNest::blocks, CellAt(), FractionAt(), GatherChildren(), IndexRemove(), PageCellAt(), PokeBlock(), PoppedFraction(), PoppedPage(), RecordCoarsened(), Release(), SetFraction(), bicameral::sim::MultiresNest::states, and UniformAt().

Referenced by ApplyCoarsen().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyRefine()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::ApplyRefine ( MultiresNest & nest,
uint32_t i )

Definition at line 336 of file multires_tree.cpp.

References ApplyRefine(), PoppedBlock(), RefineRequestLevel(), and bicameral::sim::MultiresNest::states.

Referenced by ApplyRefine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CellAt()

reaction::RxCell & bicameral::sim::nest_detail::CellAt ( MultiresNest & nest,
uint32_t slot,
uint32_t index )
inline

Definition at line 40 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), and RefineRequestLevel().

Here is the caller graph for this function:

◆ CoarsenFits()

bool bicameral::sim::anonymous_namespace{multires_tree.cpp}::CoarsenFits ( const MultiresNest & nest,
uint32_t childSlot )

Definition at line 145 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, CoarsenFits(), and GatherChildren().

Referenced by CoarsenFits(), and ResolveCoarsen().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FractionAt()

multires::MrFraction bicameral::sim::nest_detail::FractionAt ( const MultiresNest & nest,
uint32_t fractionSlot,
uint32_t index )
inline

Definition at line 59 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), GatherChildren(), and RefineRequestLevel().

Here is the caller graph for this function:

◆ FreePageAt()

uint32_t & bicameral::sim::nest_detail::FreePageAt ( MultiresNest & nest,
uint32_t position )
inline

Definition at line 47 of file multires_nest_internal.h.

Referenced by PoppedPage(), and ReleaseAll().

Here is the caller graph for this function:

◆ GatherChildren()

MrChildren bicameral::sim::anonymous_namespace{multires_tree.cpp}::GatherChildren ( const MultiresNest & nest,
uint32_t childSlot,
uint32_t fractionSlot,
uint32_t local )

Definition at line 133 of file multires_tree.cpp.

References FractionAt(), GatherChildren(), and bicameral::sim::LoadNestCell().

Referenced by ApplyCoarsen(), CoarsenFits(), and GatherChildren().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IndexInsert()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexInsert ( MultiresNest & nest,
uint32_t slot )

Definition at line 35 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::index, bicameral::sim::MultiresCapacity::indexEntries, IndexInsert(), and IndexMask().

Referenced by IndexInsert(), and RefineRequestLevel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IndexMask()

uint32_t bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexMask ( const MultiresNest & nest)

Definition at line 31 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresCapacity::indexEntries, and IndexMask().

Referenced by IndexInsert(), IndexMask(), and IndexRemove().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IndexRemove()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::IndexRemove ( MultiresNest & nest,
uint32_t slot )

Definition at line 51 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::index, bicameral::sim::MultiresCapacity::indexEntries, IndexMask(), and IndexRemove().

Referenced by ApplyCoarsen(), and IndexRemove().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PageCellAt()

reaction::RxCell & bicameral::sim::nest_detail::PageCellAt ( MultiresNest & nest,
uint32_t page,
uint32_t index )
inline

Definition at line 35 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), and RefineRequestLevel().

Here is the caller graph for this function:

◆ PokeBlock()

void bicameral::sim::nest_detail::PokeBlock ( MultiresNest & nest,
uint32_t slot )
inline

Definition at line 171 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), and RefineRequestLevel().

Here is the caller graph for this function:

◆ PoppedBlock()

uint32_t bicameral::sim::anonymous_namespace{multires_tree.cpp}::PoppedBlock ( const MultiresNest & nest,
const MrRequestState & state,
uint32_t i )

Definition at line 77 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::freeBlocks, and PoppedBlock().

Referenced by ApplyRefine(), PoppedBlock(), and RefineRequestLevel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PoppedFraction()

uint32_t bicameral::sim::anonymous_namespace{multires_tree.cpp}::PoppedFraction ( const MultiresNest & nest,
const MrRequestState & state,
uint32_t i )

Definition at line 87 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::freeFractions, and PoppedFraction().

Referenced by ApplyCoarsen(), PoppedFraction(), and RefineRequestLevel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PoppedPage()

uint32_t bicameral::sim::anonymous_namespace{multires_tree.cpp}::PoppedPage ( MultiresNest & nest,
const MrRequestState & state,
uint32_t i )

Definition at line 81 of file multires_tree.cpp.

References FreePageAt(), and PoppedPage().

Referenced by ApplyCoarsen(), PoppedPage(), and RefineRequestLevel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordCoarsened()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::RecordCoarsened ( MultiresNest & nest,
const MrCoarsened & result,
int32_t childLevel )

Definition at line 356 of file multires_tree.cpp.

References AddToLedger(), bicameral::sim::MultiresNest::counters, and RecordCoarsened().

Referenced by ApplyCoarsen(), and RecordCoarsened().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RefineRequestLevel()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::RefineRequestLevel ( MultiresNest & nest,
uint32_t i,
uint32_t depth,
uint32_t parentSlot )

Definition at line 269 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, CellAt(), FractionAt(), IndexInsert(), PageCellAt(), PokeBlock(), PoppedBlock(), PoppedFraction(), PoppedPage(), RefineRequestLevel(), Release(), bicameral::sim::MultiresNest::requests, SetFraction(), bicameral::sim::MultiresNest::states, and UniformAt().

Referenced by ApplyRefine(), and RefineRequestLevel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Release()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::Release ( MrRequestState & state,
uint32_t fractionSlot )

Definition at line 71 of file multires_tree.cpp.

References Release().

Referenced by ApplyCoarsen(), RefineRequestLevel(), and Release().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReleaseAll()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::ReleaseAll ( MultiresNest & nest,
uint32_t count )

Definition at line 433 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::claims, bicameral::sim::MultiresNest::counters, bicameral::sim::MultiresNest::freeBlocks, bicameral::sim::MultiresNest::freeFractions, FreePageAt(), bicameral::sim::MultiresCapacity::indexEntries, ReleaseAll(), and bicameral::sim::MultiresNest::states.

Referenced by ReleaseAll().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Resolve()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::Resolve ( MultiresNest & nest,
uint32_t i )

Definition at line 179 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::requests, Resolve(), ResolveCoarsen(), ResolveRefine(), bicameral::sim::MultiresCapacity::rootLevel, and bicameral::sim::MultiresNest::states.

Referenced by Resolve().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ResolveCoarsen()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveCoarsen ( MultiresNest & nest,
uint32_t i )

Definition at line 155 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::claims, CoarsenFits(), bicameral::sim::LookupBlock(), bicameral::sim::MultiresNest::requests, ResolveCoarsen(), and bicameral::sim::MultiresNest::states.

Referenced by Resolve(), and ResolveCoarsen().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ResolveRefine()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::ResolveRefine ( MultiresNest & nest,
uint32_t i )

Definition at line 96 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::capacity, bicameral::sim::MultiresNest::claims, bicameral::sim::LookupBlock(), bicameral::sim::MultiresNest::requests, ResolveRefine(), bicameral::sim::MultiresCapacity::rootLevel, and bicameral::sim::MultiresNest::states.

Referenced by Resolve(), and ResolveRefine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetFraction()

void bicameral::sim::nest_detail::SetFraction ( MultiresNest & nest,
uint32_t fractionSlot,
uint32_t index,
const multires::MrFraction & fraction )
inline

Definition at line 66 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), and RefineRequestLevel().

Here is the caller graph for this function:

◆ Settle()

void bicameral::sim::anonymous_namespace{multires_tree.cpp}::Settle ( MultiresNest & nest,
uint32_t i )

Definition at line 198 of file multires_tree.cpp.

References bicameral::sim::MultiresNest::blocks, bicameral::sim::MultiresNest::claims, bicameral::sim::MultiresNest::requests, Settle(), bicameral::sim::MultiresNest::states, and UniformAt().

Referenced by Settle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UniformAt()

reaction::RxCell & bicameral::sim::nest_detail::UniformAt ( MultiresNest & nest,
uint32_t slot )
inline

Definition at line 27 of file multires_nest_internal.h.

Referenced by ApplyCoarsen(), RefineRequestLevel(), and Settle().

Here is the caller graph for this function: