Raven Engine v0.1
Loading...
Searching...
No Matches
Raven::Framework Class Reference

Core application manager handling initialization, update loop, rendering, and shutdown. More...

#include <Framework.h>

Public Member Functions

void Initialize ()
 Initializes all core subsystems and configures the application.
void Update ()
 Performs a single update tick for the framework.
void Shutdown ()
 Cleans up and shuts down all subsystems and renderer.
void BeginRender () const
 Begins the rendering process for the current frame.
void EndRender () const
 Ends the rendering process and presents the frame.
void UpdateWindow () const noexcept
 Updates the window state, polling events and platform messages.
bool OnWindowResize (WindowResizeEvent &event)
 Handles window resize events.
bool OnWindowClose (WindowCloseEvent &event)
 Handles window close events.
void ProcessEvents (Event &event)
 Dispatches an event to internal handlers and systems.
Timestep GetTimestep () const
 Gets the time elapsed since last frame.
bool IsRunning () const
 Checks if the framework is currently running.
bool IsMinimized () const
 Checks if the window is minimized.

Static Public Member Functions

static WindowGetWindow ()
 Access the singleton Window instance.
static ConfigurationManagerGetConfigManager ()
 Access the singleton ConfigurationManager instance.
static SystemManagerGetSystemManager ()
 Access the singleton SystemManager instance.
static UIManagerGetUIManager ()
 Access the singleton UIManager instance.
static DeferredDeletionQueueGetDeletionQueue ()
static ApplicationSpecificationGetAppSettings ()
static std::string GetConfiguration ()
 Returns the current build configuration as a string.
static std::string GetPlatform ()
 Returns the platform the application is running on as a string.

Detailed Description

Core application manager handling initialization, update loop, rendering, and shutdown.

The Framework class manages the application's lifecycle including window creation, event processing, system updates, renderer coordination, and UI management. It provides static access to core singletons like Window, ConfigurationManager, SystemManager, and UIManager, and manages timing and running state.

Member Function Documentation

◆ BeginRender()

void Raven::Framework::BeginRender ( ) const

Begins the rendering process for the current frame.

Handles swapchain recreation and prepares renderer and UI for drawing.

◆ EndRender()

void Raven::Framework::EndRender ( ) const

Ends the rendering process and presents the frame.

Completes rendering, presents the swapchain, and cleans up UI renderer resources.

◆ GetAppSettings()

ApplicationSpecification & Raven::Framework::GetAppSettings ( )
inlinestatic
Returns
Reference to the ApplicationSpecification structure.

◆ GetConfigManager()

ConfigurationManager & Raven::Framework::GetConfigManager ( )
inlinestatic

Access the singleton ConfigurationManager instance.

Returns
Reference to the ConfigurationManager object.

◆ GetConfiguration()

std::string Raven::Framework::GetConfiguration ( )
inlinestatic

Returns the current build configuration as a string.

Returns
Build configuration ("Debug", "Release", "Distribution", or "Unknown").

◆ GetDeletionQueue()

DeferredDeletionQueue & Raven::Framework::GetDeletionQueue ( )
inlinestatic

◆ GetPlatform()

std::string Raven::Framework::GetPlatform ( )
inlinestatic

Returns the platform the application is running on as a string.

Returns
Platform name ("Windows", "Linux", "OSX", or "Unknown").

◆ GetSystemManager()

SystemManager & Raven::Framework::GetSystemManager ( )
inlinestatic

Access the singleton SystemManager instance.

Returns
Reference to the SystemManager object.

◆ GetTimestep()

Timestep Raven::Framework::GetTimestep ( ) const
inline

Gets the time elapsed since last frame.

Returns
Timestep representing delta time.

◆ GetUIManager()

UIManager & Raven::Framework::GetUIManager ( )
inlinestatic

Access the singleton UIManager instance.

Returns
Reference to the UIManager object.

◆ GetWindow()

Window & Raven::Framework::GetWindow ( )
inlinestatic

Access the singleton Window instance.

Returns
Reference to the Window object.

◆ Initialize()

void Raven::Framework::Initialize ( )

Initializes all core subsystems and configures the application.

Loads configuration, initializes logger, hardware checks, window, renderer, system manager, and UI manager.

◆ IsMinimized()

bool Raven::Framework::IsMinimized ( ) const
inline

Checks if the window is minimized.

Returns
true if minimized, false otherwise.

◆ IsRunning()

bool Raven::Framework::IsRunning ( ) const
inline

Checks if the framework is currently running.

Returns
true if running, false otherwise.

◆ OnWindowClose()

bool Raven::Framework::OnWindowClose ( WindowCloseEvent & event)

Handles window close events.

Parameters
eventThe window close event.
Returns
false to continue event propagation.

◆ OnWindowResize()

bool Raven::Framework::OnWindowResize ( WindowResizeEvent & event)

Handles window resize events.

Parameters
eventThe resize event data.
Returns
false to continue event propagation.

◆ ProcessEvents()

void Raven::Framework::ProcessEvents ( Event & event)

Dispatches an event to internal handlers and systems.

Parameters
eventThe event to process.

◆ Shutdown()

void Raven::Framework::Shutdown ( )

Cleans up and shuts down all subsystems and renderer.

◆ Update()

void Raven::Framework::Update ( )

Performs a single update tick for the framework.

Calculates delta time, updates all registered systems, and handles minimized state.

◆ UpdateWindow()

void Raven::Framework::UpdateWindow ( ) const
noexcept

Updates the window state, polling events and platform messages.


The documentation for this class was generated from the following files: