Skip to content

Commit 95e2ed8

Browse files
committed
added documentation to the Application struct
1 parent a647f21 commit 95e2ed8

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

src/application.hpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
#include "types.hpp"
99
#include "window.hpp"
1010

11+
/**
12+
* @brief Abstract base for an application. Inherit from this struct to create an application and customize the
13+
* behavior. Do not create multiple instances of this struct.
14+
*/
1115
struct Application : public EventListener {
1216
private:
1317
SdlContext context;
@@ -21,6 +25,14 @@ struct Application : public EventListener {
2125
EventDispatcher m_event_dispatcher;
2226

2327
protected:
28+
/**
29+
* @brief Creates a new application.
30+
* @param title The text in the window title bar.
31+
* @param position The position where the window should spawn at.
32+
* @param width The width of the window.
33+
* @param height The height of the window.
34+
* @param command_line_arguments The command line arguments.
35+
*/
2436
Application(
2537
const std::string& title,
2638
WindowPosition position,
@@ -33,30 +45,68 @@ struct Application : public EventListener {
3345
Application(const Application&) = delete;
3446
Application& operator=(const Application&) = delete;
3547

48+
/**
49+
* @brief Starts the main game loop.
50+
*/
3651
void run();
3752

53+
/**
54+
* @brief Obtains the renderer for this application's window.
55+
* @return The renderer.
56+
*/
3857
[[nodiscard]] const Renderer& renderer() const {
3958
return m_renderer;
4059
}
4160

61+
/**
62+
* @brief Obtains the window for this application.
63+
* @return The window.
64+
*/
4265
[[nodiscard]] const Window& window() const {
4366
return m_window;
4467
}
4568

69+
/**
70+
* @brief Returns the elapsed time (in seconds) since the SDL2 library has been initialized.
71+
* @return The elapsed time in seconds.
72+
*/
4673
static double elapsed_time() {
4774
return static_cast<double>(SDL_GetTicks()) / 1000.0;
4875
}
4976

77+
/**
78+
* @brief Returns the index of the current simulation step. The application tries to execute a certain number
79+
* of simulation steps per second. This is specified in the command line arguments (passed to the constructor).
80+
* @return The index of the current simulation step.
81+
*/
5082
static u64 simulation_step_index() {
5183
return s_num_steps_simulated;
5284
}
5385

86+
/**
87+
* @brief Implements the EventListener. If the escape key is pressed or the windows is closed, the application
88+
* gets closed.
89+
* @param event The SDL event to handle.
90+
*/
5491
void handle_event(const SDL_Event& event) override;
5592

5693
protected:
94+
/**
95+
* @brief This function gets called from within the main game loop (i.e. by the run() function). Override this
96+
* function to specify what should be done in every simulation step.
97+
*/
5798
virtual void update() = 0;
99+
100+
/**
101+
* @brief Clears the contents of the window with a black color. Override this function to render additional
102+
* window contents.
103+
*/
58104
virtual void render() const;
59105

106+
/**
107+
* @brief Returns the CommandLineArguments instance passed to this struct's constructor.
108+
* @return The command line arguments.
109+
*/
60110
[[nodiscard]] const CommandLineArguments& command_line_arguments() const {
61111
return m_command_line_arguments;
62112
}

0 commit comments

Comments
 (0)