/******************************************************************************* * This file is part of the "Enduro2D" * For conditions of distribution and use, see copyright notice in LICENSE.md * Copyright (C) 2018 Matvey Cherevko ******************************************************************************/ #include using namespace e2d; namespace { class game_system final : public ecs::system { public: void process(ecs::registry& owner) override { E2D_UNUSED(owner); const keyboard& k = the().keyboard(); if ( k.is_key_just_released(keyboard_key::f12) ) { the().toggle_visible(!the().visible()); } if ( k.is_key_just_released(keyboard_key::escape) ) { the().set_should_close(true); } if ( k.is_key_pressed(keyboard_key::lsuper) && k.is_key_just_released(keyboard_key::enter) ) { the().toggle_fullscreen(!the().fullscreen()); } } }; 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; } }; } int e2d_main(int argc, char *argv[]) { const auto params = starter::parameters( engine::parameters("bootstrap", "enduro2d") .timer_params(engine::timer_parameters() .maximal_framerate(100))); modules::initialize(argc, argv, params).start(); modules::shutdown(); return 0; }