template<typename Derived>
RendererCore class

Constructors, destructors, conversion operators

RendererCore() defaulted
~RendererCore() defaulted
RendererCore(const RendererCore&) deleted

Public functions

auto operator=(const RendererCore&) -> RendererCore& deleted
void Initialize(Registry* registry, LogicThreadBase* logic, const EngineConfig* config, VulkanContext* vkCtx, VulkanMemory* vkMem, SDL_Window* window, InputBuffer* vizInput)
void Start()
void Stop()
void Join()
auto IsRunning() const -> bool
void NotifyResize()
void WaitForGPU()
Block until all submitted GPU work completes. Call before freeing in-flight resources.

Protected functions

auto Self() -> Derived&
void FillGpuFrameData(FrameSync& frame)
void WriteToFrameSlab()
void FlushPendingSlabUpload()
void RecordCommandBuffer(FrameSync& frame, uint32_t imageIndex)

Protected variables

Registry* RegistryPtr
LogicThreadBase* LogicPtr
const EngineConfig* ConfigPtr
VulkanContext* VkCtx
VulkanMemory* VkMem
SDL_Window* WindowPtr
VkDevice Device
VkQueue GraphicsQueue
InputBuffer* VizInputPtr
std::thread Thread
std::atomic<bool> bIsRunning
std::atomic<bool> bResizeRequested
VkFormat DepthFormat
FrameSync Frames
std::vector<vk::raii::Semaphore> RenderedSemaphores
uint32_t CurrentFrame
uint32_t LastRenderedFrame
uint64_t LastVolatileFrame
uint64_t LastTemporalFrame
VkShaderModule VertShader
VkShaderModule FragShader
VulkanBuffer FieldSlabs
uint32_t PrevFieldSlab
uint32_t CurrentFieldSlab
uint32_t GPUActiveFrame
uint32_t GPUPrevFrame
uint64_t* DirtyPlanes
uint64_t* DirtySnapshot
uint32_t DirtyWordCount
bool FirstSlabWrite
SlabFieldUploadInfo SlabUploadFields
TrinyxJobs::JobCounter SlabUploadCounter
bool bSlabUploadPending
uint32_t PendingSlabIdx
uint64_t PendingRenderAckFrame
uint64_t PendingVolatileFrameLock
uint64_t PendingTemporalFrameLock
std::array<GpuSlabFieldDesc, GpuTotalFieldCount+1> SlabFieldDescs
SkinningPass Skinning
vk::raii::PipelineLayout PipelineLayout
vk::raii::Pipeline Pipeline
VkPipeline PredicatePipeline
VkPipeline PrefixSumPipeline
VkPipeline ScatterPipeline
VkPipeline BuildDrawsPipeline
VkPipeline SortInstancesPipeline
double RenderFpsTimer
double RenderLastFPSCheck
uint32_t RenderFrameCount