|
Bicameral Engine
GPU-resident engine for a magic-research open-world game
|
#include <sim_scheduler.h>
Public Member Functions | |
| SimScheduler (uint32_t unitsPerTick, const SimSchedulerSettings &settings={}) | |
| void | AddRealTime (double seconds, double speedScale=1.0) |
| void | ClearBacklog () |
| void | AddTicks (uint32_t ticks) |
| void | SetStopTick (uint64_t tick) |
| bool | ReachedStopTick () const |
| void | SetBreakInterval (uint64_t ticks) |
| void | Rewind (uint64_t tick) |
| void | ReportUnitTime (uint32_t unit, double gpuMilliseconds) |
| void | ReportRenderTime (double gpuMilliseconds) |
| uint32_t | TakeUnits () |
| SimCursor | Cursor () const |
| uint32_t | UnitsPerTick () const |
| double | BudgetMilliseconds () const |
| double | UnitMilliseconds (uint32_t unit) const |
| double | RenderMilliseconds () const |
| double | PendingTicks () const |
| uint64_t | DroppedTicks () const |
Private Member Functions | |
| double | EstimateMilliseconds (uint32_t unit, double budgetMilliseconds) const |
Private Attributes | |
| SimSchedulerSettings | m_settings |
| uint32_t | m_unitsPerTick = 1 |
| SimCursor | m_cursor |
| uint64_t | m_stopTick = UINT64_MAX |
| uint64_t | m_breakInterval = 0 |
| double | m_pendingTicks = 0.0 |
| uint64_t | m_droppedTicks = 0 |
| double | m_renderMilliseconds = 0.0 |
| std::vector< double > | m_unitMilliseconds |
Definition at line 42 of file sim_scheduler.h.
| bicameral::frame::SimScheduler::SimScheduler | ( | uint32_t | unitsPerTick, |
| const SimSchedulerSettings & | settings = {} ) |
Definition at line 16 of file sim_scheduler.cpp.
References m_settings, m_unitMilliseconds, and m_unitsPerTick.
| void bicameral::frame::SimScheduler::AddRealTime | ( | double | seconds, |
| double | speedScale = 1.0 ) |
Definition at line 19 of file sim_scheduler.cpp.
References m_droppedTicks, m_pendingTicks, and m_settings.
Referenced by bicameral::editor::TimeControl::AdvanceRealTime().
|
inline |
Definition at line 53 of file sim_scheduler.h.
References m_pendingTicks.
Referenced by bicameral::editor::TimeControl::Apply().
|
nodiscard |
Definition at line 46 of file sim_scheduler.cpp.
References m_renderMilliseconds, and m_settings.
Referenced by TakeUnits().
|
inline |
Definition at line 52 of file sim_scheduler.h.
References m_pendingTicks.
Referenced by bicameral::editor::TimeControl::Apply().
|
inlinenodiscard |
Definition at line 75 of file sim_scheduler.h.
References m_cursor.
|
inlinenodiscard |
Definition at line 83 of file sim_scheduler.h.
References m_droppedTicks.
|
nodiscardprivate |
Definition at line 53 of file sim_scheduler.cpp.
References m_unitMilliseconds.
Referenced by TakeUnits().
|
inlinenodiscard |
Definition at line 82 of file sim_scheduler.h.
References m_pendingTicks.
|
inlinenodiscard |
Definition at line 57 of file sim_scheduler.h.
References m_cursor, and m_stopTick.
|
inlinenodiscard |
Definition at line 81 of file sim_scheduler.h.
References m_renderMilliseconds.
| void bicameral::frame::SimScheduler::ReportRenderTime | ( | double | gpuMilliseconds | ) |
Definition at line 39 of file sim_scheduler.cpp.
References m_renderMilliseconds, and m_settings.
| void bicameral::frame::SimScheduler::ReportUnitTime | ( | uint32_t | unit, |
| double | gpuMilliseconds ) |
Definition at line 32 of file sim_scheduler.cpp.
References m_settings, m_unitMilliseconds, and m_unitsPerTick.
|
inline |
Definition at line 63 of file sim_scheduler.h.
References m_cursor.
|
inline |
Definition at line 61 of file sim_scheduler.h.
References m_breakInterval.
|
inline |
Definition at line 56 of file sim_scheduler.h.
References m_stopTick.
|
nodiscard |
Definition at line 58 of file sim_scheduler.cpp.
References BudgetMilliseconds(), EstimateMilliseconds(), m_breakInterval, m_cursor, m_pendingTicks, m_settings, m_stopTick, and m_unitsPerTick.
|
inlinenodiscard |
Definition at line 80 of file sim_scheduler.h.
References m_unitMilliseconds.
|
inlinenodiscard |
Definition at line 76 of file sim_scheduler.h.
References m_unitsPerTick.
|
private |
Definition at line 94 of file sim_scheduler.h.
Referenced by SetBreakInterval(), and TakeUnits().
|
private |
Definition at line 92 of file sim_scheduler.h.
Referenced by Cursor(), ReachedStopTick(), Rewind(), and TakeUnits().
|
private |
Definition at line 96 of file sim_scheduler.h.
Referenced by AddRealTime(), and DroppedTicks().
|
private |
Definition at line 95 of file sim_scheduler.h.
Referenced by AddRealTime(), AddTicks(), ClearBacklog(), PendingTicks(), and TakeUnits().
|
private |
Definition at line 99 of file sim_scheduler.h.
Referenced by BudgetMilliseconds(), RenderMilliseconds(), and ReportRenderTime().
|
private |
Definition at line 88 of file sim_scheduler.h.
Referenced by AddRealTime(), BudgetMilliseconds(), ReportRenderTime(), ReportUnitTime(), SimScheduler(), and TakeUnits().
|
private |
Definition at line 93 of file sim_scheduler.h.
Referenced by ReachedStopTick(), SetStopTick(), and TakeUnits().
|
private |
Definition at line 100 of file sim_scheduler.h.
Referenced by EstimateMilliseconds(), ReportUnitTime(), SimScheduler(), and UnitMilliseconds().
|
private |
Definition at line 89 of file sim_scheduler.h.
Referenced by ReportUnitTime(), SimScheduler(), TakeUnits(), and UnitsPerTick().