Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
multires_nest_internal.h File Reference
#include <cstddef>
#include <cstdint>
#include <span>
#include <vector>
#include "common/multires_conduction.hlsli"
#include "sim/multires_nest.h"
Include dependency graph for multires_nest_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bicameral::sim::nest_detail::CpuTree
struct  bicameral::sim::nest_detail::BlockStepResult
class  bicameral::sim::nest_detail::CellThermals

Namespaces

namespace  bicameral
namespace  bicameral::sim
namespace  bicameral::sim::nest_detail

Functions

reaction::RxCell & bicameral::sim::nest_detail::UniformAt (MultiresNest &nest, uint32_t slot)
const reaction::RxCell & bicameral::sim::nest_detail::UniformAt (const MultiresNest &nest, uint32_t slot)
reaction::RxCell & bicameral::sim::nest_detail::PageCellAt (MultiresNest &nest, uint32_t page, uint32_t index)
reaction::RxCell & bicameral::sim::nest_detail::CellAt (MultiresNest &nest, uint32_t slot, uint32_t index)
uint32_t & bicameral::sim::nest_detail::FreePageAt (MultiresNest &nest, uint32_t position)
uint32_t bicameral::sim::nest_detail::PopPage (MultiresNest &nest)
multires::MrFraction bicameral::sim::nest_detail::FractionAt (const MultiresNest &nest, uint32_t fractionSlot, uint32_t index)
void bicameral::sim::nest_detail::SetFraction (MultiresNest &nest, uint32_t fractionSlot, uint32_t index, const multires::MrFraction &fraction)
std::vector< uint32_t > bicameral::sim::nest_detail::ExpandWantedPages (MultiresNest &nest)
size_t bicameral::sim::nest_detail::PageCellAddress (const MultiresNest &nest, uint32_t page, uint32_t index)
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< 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::ApplyEnergyDelta (MultiresNest &nest, uint32_t slot, uint32_t index, reaction::RxCell &cell, const multires::MrEnergyDelta &delta)
void bicameral::sim::nest_detail::WakeAround (MultiresNest &nest, uint32_t slot, uint32_t mark)
std::vector< uint8_t > bicameral::sim::nest_detail::MarkConductionWants (MultiresNest &nest, CellThermals &thermals, std::span< const uint8_t > stepped, const MultiresStepOptions &options)
void bicameral::sim::nest_detail::ComputeConduction (MultiresNest &nest, CellThermals &thermals, std::span< const uint8_t > stepped, std::span< const uint8_t > frozen, std::span< const uint8_t > wantsFraction, std::span< const uint8_t > implicitBlocks, const MultiresStepOptions &options, std::span< multires::MrEnergyDelta > deltas)
bool bicameral::sim::nest_detail::InImplicitConduction (const MultiresNest &nest, uint32_t slot, const MultiresStepOptions &options)
std::vector< uint8_t > bicameral::sim::nest_detail::MarkImplicitBlocks (MultiresNest &nest, CellThermals &thermals, std::span< const uint8_t > frozen, const MultiresStepOptions &options)
bool bicameral::sim::nest_detail::IsImplicitBlock (std::span< const uint8_t > implicitBlocks, uint32_t slot)
void bicameral::sim::nest_detail::AddImplicitConduction (MultiresNest &nest, CellThermals &thermals, std::span< const uint8_t > frozen, std::span< const uint8_t > implicitBlocks, const MultiresStepOptions &options, std::span< multires::MrEnergyDelta > deltas)
std::vector< MrEnergyDelta > bicameral::sim::nest_detail::StepConduction (MultiresNest &nest, const ReactionTableView &view, std::span< uint8_t > stepped, const MultiresStepOptions &options, uint32_t wakeMark, std::span< BlockStepResult > results)
std::vector< uint8_t > bicameral::sim::nest_detail::ExpandForStep (MultiresNest &nest, std::span< BlockStepResult > results)
void bicameral::sim::nest_detail::PokeBlock (MultiresNest &nest, uint32_t slot)