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; }