30 lines
879 B
C++
30 lines
879 B
C++
#pragma once
|
|
|
|
#include <Core/Common/NonNullPtr.h>
|
|
|
|
struct Camera;
|
|
struct RenderPass;
|
|
struct CommandList;
|
|
struct Texture;
|
|
struct ColorTargetInfo;
|
|
struct DepthStencilTargetInfo;
|
|
struct Arena;
|
|
|
|
class IApplication
|
|
{
|
|
public:
|
|
virtual ~IApplication() = default;
|
|
virtual void Init(NonNullPtr<Arena> arena) = 0;
|
|
virtual void Shutdown() = 0;
|
|
virtual void Update(float deltaTime) = 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 ColorTargetInfo GetColorTargetInfo(Texture* swapchainTexture) = 0;
|
|
virtual DepthStencilTargetInfo* GetDepthTargetInfo() = 0;
|
|
};
|