Skip to content
/ lol Public

๐Ÿ˜‚ Small multiple purpose C++ framework

License

Notifications You must be signed in to change notification settings

lolengine/lol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

About

The header-only part of the Lol Engine framework.

Containers

header description examples
<lol/narray> n-dimensional dynamic array containers โ— lol::narray<int, 4>
โ— lol::array2d<float>, lol::array3d<uint8_t>
โ— lol::narray_span<int, 4>
โ— lol::span2d<uint8_t>, lol::span3d<float>

Math

header description examples
<lol/bigint> big integer calculations
<lol/half> half-precision (16-bit) floating point numbers lol::half x = 2, y = 3;
x /= y;
float z = x;
<lol/math> math constants, functions, random number generators, polynomials
<lol/noise> Perlin and simplex noise
<lol/real> arbitrary precision floating point numbers
<lol/transform> quaternion, matrix and SQT transformation utilities
<lol/vector> GLSL-compatible vector classes โ— lol::vec2, lol::vec3, lol::vec4
โ— lol::ivec2, lol::ivec3, lol::ivec4
โ— also: lol::u8vec3, lol::f16vec4, lol::vec7, lol::ivec11โ€ฆ
โ— swizzling: v1 = v2.xyy;, v2 += v3.bgr;a
โ— functions: dot(), length(), min(), clamp()โ€ฆ

Sytem

header description examples
<lol/dialogs> portable file dialogs (imported from samhocevar/portable-file-dialogs)
<lol/file> file reading utilities โ— lol::read(filename, data) for any std::string or std::vector
โ— lol::write(filename, data)
<lol/format> ensure std::format is available, using a fallback if necessary
<lol/msg> simple message logging โ— lol::msg::info("hello\n");
โ— lol::msg::debug("%d %d\n", x, y);
โ— also lol::msg::error, lol::msg::warn
<lol/thread> threading and timing โ— lol::thread
โ— lol::queue<int, 200> (thread-safe FIFO queue)
โ— lol::timer (high precision timer)
<lol/utils> various utilities: environment variables, std::map and std::vector extensionsโ€ฆ

Text utilities

header description examples
<lol/algo/suffix_array> suffix array for fast string searches (imported from storm-ptr/step)

Graphics

header description examples
<lol/color> colorspace conversions (RGB, sRGB, HSVโ€ฆ)
<lol/image> image loading, saving, and processing

External libraries

header description
<lol/lib/cli11> the CLI11 command-line parsing library (imported from cliutils/cli11)
<lol/lib/doctest> the doctest unit test framework (imported from doctest/doctest)
<lol/lib/doctest_main> a version of doctest that implements main()
<lol/lib/pegtl> the PEGTL parser (imported from taocpp/pegtl)