diff --git a/sources/main.cpp b/sources/main.cpp
index 8a86548..e0a5a9e 100644
--- a/sources/main.cpp
+++ b/sources/main.cpp
@@ -9,17 +9,31 @@ using namespace e2d;
namespace
{
- class game final : public application {
+ class game_system final : public ecs::system {
public:
- bool frame_tick() final {
+ void process(ecs::registry& owner) override {
+ E2D_UNUSED(owner);
const keyboard& k = the().keyboard();
- while ( the().should_close() || k.is_key_just_released(keyboard_key::escape) ) {
- return false;
+ if ( k.is_key_just_released(keyboard_key::f12) ) {
+ the().toggle_visible(!the().visible());
}
- the().execute(render::command_block<64>()
- .add_command(render::clear_command()
- .color_value({1.f, 0.4f, 0.f, 1.f}))
- .add_command(render::swap_command(true)));
+ if ( k.is_key_just_released(keyboard_key::escape) ) {
+ the().set_should_close(true);
+ }
+ }
+ };
+
+ class game final : public high_application {
+ public:
+ bool initialize() final{
+ ecs::registry_filler(the().registry())
+ .system(world::priority_update);
+
+ ecs::entity camera_e = the().registry().create_entity();
+ ecs::entity_filler(camera_e)
+ .component(camera()
+ .background({1.f, 0.4f, 0.f, 1.f}))
+ .component(node::create(camera_e));
return true;
}
};
@@ -31,5 +45,6 @@ int e2d_main(int argc, char *argv[]) {
.timer_params(engine::timer_parameters()
.maximal_framerate(100)));
modules::initialize(argc, argv, params).start();
+ modules::shutdown();
return 0;
}