galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
galaxy::App Class Referencefinal

Base level class for any galaxy app. More...

#include <Application.hpp>

+ Collaboration diagram for galaxy::App:

Public Member Functions

 App (const std::string &config_file="config.json")
 Default constructor.
 
 ~App ()
 Destructor.
 
void run ()
 Loads the default appdata file.
 
void set_update_func (LoopFunc &&update)
 Use a custom update step in game loop.
 
void set_render_func (LoopFunc &&render)
 Use a custom rendering step in game loop.
 
SDL_Event & events () noexcept
 Get event data.
 

Private Types

using LoopFunc = std::move_only_function<void(App* app)>
 Defines a callback for update() or render() loops in app.run().
 

Private Member Functions

 App (const App &)=delete
 Copy constructor.
 
 App (App &&)=delete
 Move constructor.
 
Appoperator= (const App &)=delete
 Copy assignment operator.
 
Appoperator= (App &&)=delete
 Move assignment operator.
 
void setup_async ()
 
void setup_logging ()
 
void setup_config (std::string_view config_file)
 
void setup_platform ()
 
void setup_fs ()
 
void setup_rendering ()
 
void setup_events ()
 
void setup_input ()
 
void setup_meta ()
 
void setup_services ()
 
void setup_scripting ()
 

Private Attributes

SDL_Event m_events
 Core event data.
 
LoopFunc m_update
 Update step in gameloop.
 
LoopFunc m_render
 Render step in gameloop.
 

Detailed Description

Base level class for any galaxy app.

Definition at line 21 of file Application.hpp.

Member Typedef Documentation

◆ LoopFunc

using galaxy::App::LoopFunc = std::move_only_function<void(App* app)>
private

Defines a callback for update() or render() loops in app.run().

Definition at line 26 of file Application.hpp.

Constructor & Destructor Documentation

◆ App() [1/3]

galaxy::App::App ( const std::string & config_file = "config.json")
explicit

Default constructor.

Sets up the engine. You need to inherit this and call it from a subclass. Also calls std::srand(std::time(nullptr)) for you.

Parameters
config_fileFilepath of config file.

Definition at line 41 of file Application.cpp.

+ Here is the call graph for this function:

◆ ~App()

galaxy::App::~App ( )

Destructor.

Definition at line 63 of file Application.cpp.

◆ App() [2/3]

galaxy::App::App ( const App & )
privatedelete

Copy constructor.

◆ App() [3/3]

galaxy::App::App ( App && )
privatedelete

Move constructor.

Member Function Documentation

◆ run()

void galaxy::App::run ( )

Loads the default appdata file.

Main game loop.

Definition at line 85 of file Application.cpp.

+ Here is the call graph for this function:

◆ set_update_func()

void galaxy::App::set_update_func ( LoopFunc && update)

Use a custom update step in game loop.

Parameters
updateCallback.

Definition at line 186 of file Application.cpp.

◆ set_render_func()

void galaxy::App::set_render_func ( LoopFunc && render)

Use a custom rendering step in game loop.

Parameters
renderCallback.

Definition at line 191 of file Application.cpp.

◆ events()

SDL_Event & galaxy::App::events ( )
noexcept

Get event data.

Returns
SDL_Event data.

Definition at line 196 of file Application.cpp.

◆ operator=() [1/2]

App & galaxy::App::operator= ( const App & )
privatedelete

Copy assignment operator.

◆ operator=() [2/2]

App & galaxy::App::operator= ( App && )
privatedelete

Move assignment operator.

◆ setup_async()

void galaxy::App::setup_async ( )
private

Definition at line 201 of file Application.cpp.

+ Here is the caller graph for this function:

◆ setup_logging()

void galaxy::App::setup_logging ( )
private

Definition at line 220 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_config()

void galaxy::App::setup_config ( std::string_view config_file)
private

Definition at line 236 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_platform()

void galaxy::App::setup_platform ( )
private

Definition at line 243 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_fs()

void galaxy::App::setup_fs ( )
private

Definition at line 312 of file Application.cpp.

+ Here is the caller graph for this function:

◆ setup_rendering()

void galaxy::App::setup_rendering ( )
private

Definition at line 317 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_events()

void galaxy::App::setup_events ( )
private

Definition at line 380 of file Application.cpp.

+ Here is the caller graph for this function:

◆ setup_input()

void galaxy::App::setup_input ( )
private

Definition at line 385 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setup_meta()

void galaxy::App::setup_meta ( )
private

Definition at line 411 of file Application.cpp.

+ Here is the caller graph for this function:

◆ setup_services()

void galaxy::App::setup_services ( )
private

Definition at line 445 of file Application.cpp.

+ Here is the caller graph for this function:

◆ setup_scripting()

void galaxy::App::setup_scripting ( )
private

Definition at line 463 of file Application.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_events

SDL_Event galaxy::App::m_events
private

Core event data.

Definition at line 114 of file Application.hpp.

◆ m_update

LoopFunc galaxy::App::m_update
private

Update step in gameloop.

Definition at line 119 of file Application.hpp.

◆ m_render

LoopFunc galaxy::App::m_render
private

Render step in gameloop.

Definition at line 124 of file Application.hpp.


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