Skip to content
/ qxLib Public

A few useful things for developing your own game engine

License

Notifications You must be signed in to change notification settings

n0lavar/qxLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qxLib

Donate Codacy Badge codecov licence

The library contains various classes, functions and macros that can be useful when developing games and game engines.
The code is designed to be as performant, extensible and generic as possible. It follows the style of the standard library in terms of code style, use of iterators, traits, etc. The library is intended to extend the functionality of the standard library and not copy it.

Some examples:

  • Implementations of observer, singleton, generic iterator patterns;
  • A string that fully follows the std::string interface and supports compile-time configuration of a large number of parameters (SSO size, alignment, hashing algorithms, comparison, formatting, etc.) and contains additional methods (format(), to_lower()/to_upper(), to<T>(), from<T>(), trim()/trim_right()/trim_left(), remove_prefix()/remove_suffix(), split() etc.);
  • Extension of standard library algorithms;
  • Macro based RTTI system;
  • Additional containers, e.g. cache friendly 2d vector, pool of unique objects, symmetric matrix container , etc.;
  • Easing algorithms for working with animation;
  • Streams based logging system;

...and much more. See doxygen documentation for more info.

Feel free to suggest any improvements.

Status:

Compiler Debug Release
Clang 16.0.4 ubuntu_clang_debug ubuntu_clang_release
GCC 13.0 ubuntu_gcc_debug ubuntu_gcc_release
MSVC 19.36.32532 windows_msvc_debug windows_msvc_release
Apple Clang 13.0
(broken until std::format is implemented)
macos_clang_debug macos_clang_release

Dependencies:

Required:

  • C++20
  • clang: 17+ or 14+ with -stdlib=libc++ -fexperimental-library

Optional:

  • glm (/gl, /render, /math)
  • glew (/gl)
  • boost (qx::unique_objects_pool)

License

qxLib is available under the MIT License. See LICENSE.txt.

Authors

qxLib was mainly written and is maintained by Nick Khrapov
([email protected]). See the git commit log for other authors.