27struct ImGui_ImplDX12_InitInfo;
90 [[nodiscard]]
static std::expected<std::unique_ptr<EditorOverlay>, std::string>
Create(
91 Window& window, ID3D12Device* device,
gpu::Queue& direct, DXGI_FORMAT format, uint32_t frameCount);
109 D3D12_CPU_DESCRIPTOR_HANDLE renderTargetView);
118 [[nodiscard]]
bool CreateGpuObjects(ID3D12Device* device, uint32_t frameCount);
123 static void AllocateDescriptor(::ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE* cpuHandle,
124 D3D12_GPU_DESCRIPTOR_HANDLE* gpuHandle);
125 static void FreeDescriptor(::ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE cpuHandle,
126 D3D12_GPU_DESCRIPTOR_HANDLE gpuHandle);
149 ComPtr<ID3D12GraphicsCommandList>
m_list;
EditorOverlay & operator=(EditorOverlay &&)=delete
static void AllocateDescriptor(::ImGui_ImplDX12_InitInfo *info, D3D12_CPU_DESCRIPTOR_HANDLE *cpuHandle, D3D12_GPU_DESCRIPTOR_HANDLE *gpuHandle)
EditorOverlay(EditorOverlay &&)=delete
bool CreateGpuObjects(ID3D12Device *device, uint32_t frameCount)
EditorOverlay & operator=(const EditorOverlay &)=delete
EditorOverlay(const EditorOverlay &)=delete
std::unique_ptr< LabPanel > m_lab
void BuildStatusPanel(const EditorStatus &status) const
TimeRequest TakeShortcuts(const TimeControl &time) const
ComPtr< ID3D12DescriptorHeap > m_srvHeap
bool Submit(gpu::Queue &direct, ID3D12Resource *backBuffer, D3D12_CPU_DESCRIPTOR_HANDLE renderTargetView)
uint64_t BuildRewind(const EditorStatus &status) const
bool WantsKeyboard() const
void BuildReactionTable(const ReactionTableStatus &table) const
TimeRequest BuildTimePanel(const EditorStatus &status, const TimeControl &time) const
static std::expected< std::unique_ptr< EditorOverlay >, std::string > Create(Window &window, ID3D12Device *device, gpu::Queue &direct, DXGI_FORMAT format, uint32_t frameCount)
static void FreeDescriptor(::ImGui_ImplDX12_InitInfo *info, D3D12_CPU_DESCRIPTOR_HANDLE cpuHandle, D3D12_GPU_DESCRIPTOR_HANDLE gpuHandle)
ComPtr< ID3D12GraphicsCommandList > m_list
std::vector< uint32_t > m_freeSrvSlots
bool WantsPointer() const
bool InitializeBackends(ID3D12Device *device, gpu::Queue &direct, DXGI_FORMAT format)
TimeRequest Build(const EditorStatus &status, const TimeControl &time)
std::vector< FrameSlot > m_frames
ComPtr< ID3D12CommandAllocator > allocator
std::vector< uint64_t > savePointTicks
ReactionTableStatus reactionTable
uint64_t energyMillijoules
double budgetMilliseconds
double renderGpuMilliseconds
std::string rewindUnavailable
uint64_t saveIntervalTicks
double simGpuMilliseconds