Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
multires_nest.cpp File Reference
#include "sim/multires_nest.h"
#include <algorithm>
#include <span>
#include "sim/multires_nest_internal.h"
Include dependency graph for multires_nest.cpp:

Go to the source code of this file.

Namespaces

namespace  bicameral
namespace  bicameral::sim
namespace  bicameral::sim::anonymous_namespace{multires_nest.cpp}
namespace  bicameral::sim::nest_detail

Functions

bool bicameral::sim::anonymous_namespace{multires_nest.cpp}::IsObserverSlot (const MultiresNest &nest, uint32_t slot)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::RefineShadowLevel (MultiresNest &nest, uint32_t parentSlot, uint32_t childSlot, const MultiresPoint &point)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::PullBackLevel (MultiresNest &nest, const ReactionTableView &table, uint32_t shadowSlot)
Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::MakeWide256 (uint64_t high, uint64_t low, bool negative)
Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::ShiftLeft (const Wide256 &value, uint32_t bits)
Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::MultiplySmall (Wide256 value, uint32_t factor)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddTo (Wide256 &sum, const Wide256 &value)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddCellTotals (ConservedTotals &totals, const BakedReactionTable &table, const RxCell &cell, const MrFraction &fraction, uint32_t shiftBits)
Wide256 bicameral::sim::anonymous_namespace{multires_nest.cpp}::LedgerValue (uint64_t value, int32_t level, int32_t finestLevel)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerColumn (ConservedTotals &totals, const BakedReactionTable &table, uint32_t column, const Wide256 &amount)
void bicameral::sim::anonymous_namespace{multires_nest.cpp}::AddLedgerTotals (ConservedTotals &totals, const MultiresNest &nest, const BakedReactionTable &table, int32_t finestLevel)
uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::HashFraction (const MrFraction &fraction)
uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::HashBlock (const MrBlock &block)
uint64_t bicameral::sim::anonymous_namespace{multires_nest.cpp}::FractionEnergy (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index)
nest_detail::BlockStepResult bicameral::sim::anonymous_namespace{multires_nest.cpp}::StepPagedBlock (MultiresNest &nest, const ReactionTableView &view, uint32_t slot, uint64_t worldSeed, uint64_t tick, bool react, std::span< const MrEnergyDelta > deltas)
void bicameral::sim::nest_detail::ApplyEnergyDelta (MultiresNest &nest, uint32_t slot, uint32_t index, RxCell &cell, const MrEnergyDelta &delta)
std::vector< uint8_t > bicameral::sim::nest_detail::ExpandForStep (MultiresNest &nest, std::span< BlockStepResult > results)
std::vector< BlockStepResult > bicameral::sim::nest_detail::StepBlocks (MultiresNest &nest, const ReactionTableView &view, std::span< uint8_t > stepped, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options, uint32_t wakeMark)
void bicameral::sim::nest_detail::ResolvePokes (MultiresNest &nest, uint64_t tick)
void bicameral::sim::nest_detail::RecordWaitResults (MultiresNest &nest, std::span< const BlockStepResult > results, uint64_t tick)
std::vector< uint32_t > bicameral::sim::nest_detail::ExpandWantedPages (MultiresNest &nest)
RxCell bicameral::sim::LoadNestCell (const MultiresNest &nest, uint32_t slot, uint32_t index)
uint32_t bicameral::sim::UsedWorldPages (const MultiresNest &nest)
MultiresNest bicameral::sim::MakeMultiresNest (const MultiresCapacity &capacity)
void bicameral::sim::PlaceMirrorBlock (MultiresNest &nest, uint32_t slot, int32_t level, int64_t originX, int64_t originY, int64_t originZ, std::span< const RxCell > cells)
void bicameral::sim::RefineShadowChain (MultiresNest &nest, uint32_t parentSlot, uint32_t firstChildSlot, uint32_t levelCount, const MultiresPoint &point)
void bicameral::sim::RemoveShadowChain (MultiresNest &nest, uint32_t firstSlot, uint32_t levelCount)
void bicameral::sim::StepNest (MultiresNest &nest, const BakedReactionTable &table, uint64_t worldSeed, uint64_t tick, const MultiresStepOptions &options)
void bicameral::sim::PullBackShadowChain (MultiresNest &nest, const BakedReactionTable &table, uint32_t firstShadowSlot, uint32_t levelCount)
uint64_t bicameral::sim::HashRealLeaves (const MultiresNest &nest)
uint64_t bicameral::sim::HashWholeNest (const MultiresNest &nest)
ConservedTotals bicameral::sim::ComputeConservedTotals (const MultiresNest &nest, const BakedReactionTable &table, int32_t finestLevel)
reaction::RxCell & bicameral::sim::anonymous_namespace{multires_nest.cpp}::CellAt (MultiresNest &nest, uint32_t slot, uint32_t index)
multires::MrFraction bicameral::sim::anonymous_namespace{multires_nest.cpp}::FractionAt (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index)
reaction::RxCell & bicameral::sim::anonymous_namespace{multires_nest.cpp}::PageCellAt (MultiresNest &nest, uint32_t page, uint32_t index)
reaction::RxCell & bicameral::sim::anonymous_namespace{multires_nest.cpp}::UniformAt (MultiresNest &nest, uint32_t slot)