├── .clang-format ├── .github └── workflows │ └── cmake-build.yaml ├── .gitignore ├── CMakeLists.txt ├── ReadMe.md ├── Todo.md ├── demo ├── CMakeLists.txt ├── cmake │ ├── FindSDL2.cmake │ ├── copydll.cmake │ ├── fetch_sdl.cmake │ └── utility.cmake ├── include │ ├── anim.hpp │ ├── common_systems.hpp │ ├── consts.hpp │ ├── defs.hpp │ ├── game_ctx.hpp │ ├── gaming_systems.hpp │ ├── pch.hpp │ ├── physics.hpp │ ├── renderer.hpp │ ├── restart_systems.hpp │ ├── sprite.hpp │ ├── tank.hpp │ ├── texture.hpp │ ├── ticker.hpp │ ├── vmath.hpp │ ├── welcome_systems.hpp │ └── window.hpp ├── resources │ ├── bomb.bmp │ ├── falling_stone.bmp │ ├── gameover.bmp │ ├── how-to-play.bmp │ ├── how_to_start.bmp │ ├── land.bmp │ ├── numbers.bmp │ ├── shell.bmp │ └── tank.bmp └── src │ ├── common_systems.cpp │ ├── game_ctx.cpp │ ├── gaming_systems.cpp │ ├── main.cpp │ ├── renderer.cpp │ ├── restart_systems.cpp │ ├── texture.cpp │ ├── welcome_systems.cpp │ └── window.cpp ├── snapshot └── snapshot.png ├── src └── gecs │ ├── config │ └── config.hpp │ ├── container │ ├── compress_pair.hpp │ └── dense_map.hpp │ ├── core │ ├── ident.hpp │ ├── singlton.hpp │ ├── type_list.hpp │ └── utility.hpp │ ├── entity │ ├── commands.hpp │ ├── entity.hpp │ ├── event_dispatcher.hpp │ ├── fwd.hpp │ ├── querier.hpp │ ├── registry.hpp │ ├── registry_wrapper.hpp │ ├── resource.hpp │ ├── sigh_mixin.hpp │ ├── sparse_set.hpp │ ├── storage.hpp │ ├── system_constructor.hpp │ └── world.hpp │ ├── gecs.hpp │ └── signal │ ├── delegate.hpp │ ├── dispatcher.hpp │ ├── fwd.hpp │ ├── sigh.hpp │ └── sink.hpp └── test ├── CMakeLists.txt ├── catch.hpp ├── core ├── CMakeLists.txt ├── type_list.cpp └── utility.cpp ├── entity ├── CMakeLists.txt ├── commands.cpp ├── entity.cpp ├── event_dispatcher.cpp ├── querier.cpp ├── registry.cpp ├── resource.cpp ├── sparse_set.cpp └── storage.cpp ├── gecs_example.cpp └── signal ├── CMakeLists.txt ├── delegate.cpp ├── sigh.cpp └── sink.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/.clang-format -------------------------------------------------------------------------------- /.github/workflows/cmake-build.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/.github/workflows/cmake-build.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cmake-build 2 | .vscode 3 | compile_commands.json -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /ReadMe.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/ReadMe.md -------------------------------------------------------------------------------- /Todo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/Todo.md -------------------------------------------------------------------------------- /demo/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/CMakeLists.txt -------------------------------------------------------------------------------- /demo/cmake/FindSDL2.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/cmake/FindSDL2.cmake -------------------------------------------------------------------------------- /demo/cmake/copydll.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/cmake/copydll.cmake -------------------------------------------------------------------------------- /demo/cmake/fetch_sdl.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/cmake/fetch_sdl.cmake -------------------------------------------------------------------------------- /demo/cmake/utility.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/cmake/utility.cmake -------------------------------------------------------------------------------- /demo/include/anim.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/anim.hpp -------------------------------------------------------------------------------- /demo/include/common_systems.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/common_systems.hpp -------------------------------------------------------------------------------- /demo/include/consts.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/consts.hpp -------------------------------------------------------------------------------- /demo/include/defs.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/defs.hpp -------------------------------------------------------------------------------- /demo/include/game_ctx.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/game_ctx.hpp -------------------------------------------------------------------------------- /demo/include/gaming_systems.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/gaming_systems.hpp -------------------------------------------------------------------------------- /demo/include/pch.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/pch.hpp -------------------------------------------------------------------------------- /demo/include/physics.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/physics.hpp -------------------------------------------------------------------------------- /demo/include/renderer.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/renderer.hpp -------------------------------------------------------------------------------- /demo/include/restart_systems.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/restart_systems.hpp -------------------------------------------------------------------------------- /demo/include/sprite.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/sprite.hpp -------------------------------------------------------------------------------- /demo/include/tank.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct Tank final { }; -------------------------------------------------------------------------------- /demo/include/texture.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/texture.hpp -------------------------------------------------------------------------------- /demo/include/ticker.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/ticker.hpp -------------------------------------------------------------------------------- /demo/include/vmath.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/vmath.hpp -------------------------------------------------------------------------------- /demo/include/welcome_systems.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/welcome_systems.hpp -------------------------------------------------------------------------------- /demo/include/window.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/include/window.hpp -------------------------------------------------------------------------------- /demo/resources/bomb.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/bomb.bmp -------------------------------------------------------------------------------- /demo/resources/falling_stone.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/falling_stone.bmp -------------------------------------------------------------------------------- /demo/resources/gameover.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/gameover.bmp -------------------------------------------------------------------------------- /demo/resources/how-to-play.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/how-to-play.bmp -------------------------------------------------------------------------------- /demo/resources/how_to_start.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/how_to_start.bmp -------------------------------------------------------------------------------- /demo/resources/land.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/land.bmp -------------------------------------------------------------------------------- /demo/resources/numbers.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/numbers.bmp -------------------------------------------------------------------------------- /demo/resources/shell.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/shell.bmp -------------------------------------------------------------------------------- /demo/resources/tank.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/resources/tank.bmp -------------------------------------------------------------------------------- /demo/src/common_systems.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/common_systems.cpp -------------------------------------------------------------------------------- /demo/src/game_ctx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/game_ctx.cpp -------------------------------------------------------------------------------- /demo/src/gaming_systems.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/gaming_systems.cpp -------------------------------------------------------------------------------- /demo/src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/main.cpp -------------------------------------------------------------------------------- /demo/src/renderer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/renderer.cpp -------------------------------------------------------------------------------- /demo/src/restart_systems.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/restart_systems.cpp -------------------------------------------------------------------------------- /demo/src/texture.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/texture.cpp -------------------------------------------------------------------------------- /demo/src/welcome_systems.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/welcome_systems.cpp -------------------------------------------------------------------------------- /demo/src/window.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/demo/src/window.cpp -------------------------------------------------------------------------------- /snapshot/snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/snapshot/snapshot.png -------------------------------------------------------------------------------- /src/gecs/config/config.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/config/config.hpp -------------------------------------------------------------------------------- /src/gecs/container/compress_pair.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/container/compress_pair.hpp -------------------------------------------------------------------------------- /src/gecs/container/dense_map.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/container/dense_map.hpp -------------------------------------------------------------------------------- /src/gecs/core/ident.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/core/ident.hpp -------------------------------------------------------------------------------- /src/gecs/core/singlton.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/core/singlton.hpp -------------------------------------------------------------------------------- /src/gecs/core/type_list.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/core/type_list.hpp -------------------------------------------------------------------------------- /src/gecs/core/utility.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/core/utility.hpp -------------------------------------------------------------------------------- /src/gecs/entity/commands.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/commands.hpp -------------------------------------------------------------------------------- /src/gecs/entity/entity.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/entity.hpp -------------------------------------------------------------------------------- /src/gecs/entity/event_dispatcher.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/event_dispatcher.hpp -------------------------------------------------------------------------------- /src/gecs/entity/fwd.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/fwd.hpp -------------------------------------------------------------------------------- /src/gecs/entity/querier.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/querier.hpp -------------------------------------------------------------------------------- /src/gecs/entity/registry.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/registry.hpp -------------------------------------------------------------------------------- /src/gecs/entity/registry_wrapper.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/registry_wrapper.hpp -------------------------------------------------------------------------------- /src/gecs/entity/resource.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/resource.hpp -------------------------------------------------------------------------------- /src/gecs/entity/sigh_mixin.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/sigh_mixin.hpp -------------------------------------------------------------------------------- /src/gecs/entity/sparse_set.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/sparse_set.hpp -------------------------------------------------------------------------------- /src/gecs/entity/storage.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/storage.hpp -------------------------------------------------------------------------------- /src/gecs/entity/system_constructor.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/system_constructor.hpp -------------------------------------------------------------------------------- /src/gecs/entity/world.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/entity/world.hpp -------------------------------------------------------------------------------- /src/gecs/gecs.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/gecs.hpp -------------------------------------------------------------------------------- /src/gecs/signal/delegate.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/signal/delegate.hpp -------------------------------------------------------------------------------- /src/gecs/signal/dispatcher.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/signal/dispatcher.hpp -------------------------------------------------------------------------------- /src/gecs/signal/fwd.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/signal/fwd.hpp -------------------------------------------------------------------------------- /src/gecs/signal/sigh.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/signal/sigh.hpp -------------------------------------------------------------------------------- /src/gecs/signal/sink.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/src/gecs/signal/sink.hpp -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/CMakeLists.txt -------------------------------------------------------------------------------- /test/catch.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/catch.hpp -------------------------------------------------------------------------------- /test/core/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/core/CMakeLists.txt -------------------------------------------------------------------------------- /test/core/type_list.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/core/type_list.cpp -------------------------------------------------------------------------------- /test/core/utility.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/core/utility.cpp -------------------------------------------------------------------------------- /test/entity/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/CMakeLists.txt -------------------------------------------------------------------------------- /test/entity/commands.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/commands.cpp -------------------------------------------------------------------------------- /test/entity/entity.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/entity.cpp -------------------------------------------------------------------------------- /test/entity/event_dispatcher.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/event_dispatcher.cpp -------------------------------------------------------------------------------- /test/entity/querier.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/querier.cpp -------------------------------------------------------------------------------- /test/entity/registry.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/registry.cpp -------------------------------------------------------------------------------- /test/entity/resource.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/resource.cpp -------------------------------------------------------------------------------- /test/entity/sparse_set.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/sparse_set.cpp -------------------------------------------------------------------------------- /test/entity/storage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/entity/storage.cpp -------------------------------------------------------------------------------- /test/gecs_example.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/gecs_example.cpp -------------------------------------------------------------------------------- /test/signal/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/signal/CMakeLists.txt -------------------------------------------------------------------------------- /test/signal/delegate.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/signal/delegate.cpp -------------------------------------------------------------------------------- /test/signal/sigh.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/signal/sigh.cpp -------------------------------------------------------------------------------- /test/signal/sink.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VisualGMQ/gecs/HEAD/test/signal/sink.cpp --------------------------------------------------------------------------------