3#include "../platform/IWindow.h"
4#include "../scene/SceneManager.h"
5#include "../graphics/renderer/Renderer.h"
6#include "../graphics/managers/ShaderManager.h"
7#include "hellfire/Interfaces/IApplicationPlugin.h"
40 std::string
title =
"Hellfire Engine";
45 explicit Application(
int width = 800,
int height = 600, std::string title =
"hellfire Application");
62 plugins_.push_back(std::move(plugin));
107 template<
typename Func>
109 for (
auto &plugin: plugins_) {
114 template<
typename Func>
116 for (
auto &plugin: plugins_) {
117 if (func(*plugin))
return true;
std::vector< std::unique_ptr< IApplicationPlugin > > plugins_
std::function< bool()> exit_condition_
AppInfo & get_window_info()
void on_mouse_move(float x, float y) override
void set_exit_condition(std::function< bool()> condition)
ShaderManager shader_manager_
std::unique_ptr< IWindow > window_
ShaderRegistry shader_registry_
bool call_plugins_until_consumed(Func &&func)
void on_render() override
std::unique_ptr< InputManager > input_manager_
Application(int width=800, int height=600, std::string title="hellfire Application")
void handle_cursor_warping(float x, float y) const
bool handle_first_mouse_movement(float x, float y)
void on_key_up(int key) override
void on_key_down(int key) override
void on_window_minimize(bool minimized) override
void register_plugin(std::unique_ptr< IApplicationPlugin > plugin)
Method for registering plugins.
Shader * ensure_fallback_shader()
void on_mouse_button(int button, bool pressed) override
void call_plugins(Func &&func)
uint32_t create_minimal_fallback_shader()
void on_window_resize(int width, int height) override
virtual bool on_mouse_move(float x, float y, float x_offset, float y_offset)
virtual bool on_mouse_button(int button, bool pressed)
virtual void on_end_frame()
virtual bool on_key_down(int key)
virtual void on_begin_frame()
virtual Entity * get_render_camera_override()
virtual void on_initialize(Application &app)
virtual void on_window_resize(int width, int height)
virtual void on_mouse_button(int button, bool pressed)
Manages a collection of entities and their hierarchical relationships.