Core utilities for graphics and game programming
- C++ 94.7%
- CMake 5.2%
- Python 0.1%
| cmake | ||
| docs | ||
| include/beyond | ||
| src | ||
| test | ||
| test_package | ||
| .clang-format | ||
| .clang-tidy | ||
| .gitignore | ||
| beyond_core.natvis | ||
| cmake-format.yaml | ||
| CMakeLists.txt | ||
| codecov.yml | ||
| LICENSE | ||
| README.md | ||
| vcpkg.json | ||
Beyond Core
Mirrors: git.lesleylai.info | Codeberg
beyond::core is a library with a bunch of utilities that are associated with graphics and game programming.
It is initially intended to be the core component of "Beyond Game Engine," which unfortunately never becomes a thing. However, I use this library a lot in various other personal projects.
Codemap
beyond::core contains the following C++ library components:
algorithm
additional STL-style algorithm library.concurrency
A work-stealing thread-pool based task systemcoroutines
C++20 coroutine supporting library.container
contains additional STL-style containers.ecs(incomplete and unusable)
contains an implementation of an entity component system.math
contains a mathematics library with a graphics focus.types
contains non-container utility types, like theoptionalandexpectedtypes with monadic extensions.utils
contains utility and helper code.
Usage
This library is not in a usable state to the public yet. The features are incomplete and are coded as need. I will also make breaking changes frequently.
Build
Important
This project uses C++20 modules. You need a module-ready compiler and build system toolchain
CMake Options
BEYOND_CORE_BUILD_TESTS(OFFby default) build testsBEYOND_CORE_BUILD_TESTS_COVERAGE(OFFby default) test coverage withgcovandlcovBEYOND_CORE_BUILD_DOCUMENTATION(OFFby default) build doxygen documentation
Other useful options for developing purpose
BEYOND_CORE_WARNING_AS_ERROR(ONby default) treat compiler warnings as errorsBEYOND_CORE_USE_ASAN(OFFby default) address sanitizerBEYOND_CORE_USE_TSAN(OFFby default) thread sanitizerBEYOND_CORE_USE_MSAN(OFFby default) memory sanitizerBEYOND_CORE_USE_UBSAN(OFFby default) undefined behavior sanitizer
Acknowledgements
- The
optionalandexpectedtypes are modified from Sy Brand's tl::optional and tl::expected libraries
License
This repository is released under MIT License. See License for more information.