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