Files
Juliet/Juliet/include/Core/Application/IApplication.h
Patedam 891c404889 Added debug renderer + imgui renderer
All code made by gemini with some help
2026-01-20 22:46:10 -05:00

32 lines
1.1 KiB
C++

#pragma once
namespace Juliet
{
struct RenderPass;
struct CommandList;
struct Texture;
struct ColorTargetInfo;
struct DepthStencilTargetInfo;
class IApplication
{
public:
virtual ~IApplication() = default;
virtual void Init() = 0;
virtual void Shutdown() = 0;
virtual void Update() = 0;
virtual bool IsRunning() = 0;
// Accessors for Engine Systems
virtual struct Window* GetPlatformWindow() = 0;
virtual struct GraphicsDevice* GetGraphicsDevice() = 0;
// Render Lifecycle (Engine-Managed Render Loop)
virtual void OnPreRender(CommandList* cmd) = 0;
virtual void OnRender(RenderPass* pass, CommandList* cmd) = 0;
virtual ColorTargetInfo GetColorTargetInfo(Texture* swapchainTexture) = 0;
virtual DepthStencilTargetInfo* GetDepthTargetInfo() = 0;
virtual struct Camera GetDebugCamera() = 0;
};
} // namespace Juliet