You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.1 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # About
  2. The header-only part of the Lol Engine framework.
  3. ## Containers
  4. | header | description | examples |
  5. |--------|-------------|----------|
  6. | `<lol/narray>` | n-dimensional dynamic array containers | ● `lol::narray<int, 4>`<br>● `lol::array2d<float>`, `lol::array3d<uint8_t>`<br>● `lol::narray_span<int, 4>`<br>● `lol::span2d<uint8_t>`, `lol::span3d<float>` |
  7. ## Math
  8. | header | description | examples |
  9. |--------|-------------|----------|
  10. | `<lol/bigint>` | big integer calculations | |
  11. | `<lol/half>` | half-precision (16-bit) floating point numbers | `lol::half x = 2, y = 3;`<br>`x /= y;`<br>`float z = x;` |
  12. | `<lol/math>` | math constants, functions, random number generators, polynomials | |
  13. | `<lol/noise>` | Perlin and simplex noise | |
  14. | `<lol/real>` | arbitrary precision floating point numbers | |
  15. | `<lol/transform>` | quaternion, matrix and SQT transformation utilities | |
  16. | `<lol/vector>` | GLSL-compatible vector classes | ● `lol::vec2`, `lol::vec3`, `lol::vec4`<br>● `lol::ivec2`, `lol::ivec3`, `lol::ivec4`<br>● also: `lol::u8vec3`, `lol::f16vec4`, `lol::vec7`, `lol::ivec11`…<br>● swizzling: `v1 = v2.xyy;`, `v2 += v3.bgr;a`<br>● functions: `dot()`, `length()`, `min()`, `clamp()`… |
  17. ## Sytem
  18. | header | description | examples |
  19. |--------|-------------|----------|
  20. | `<lol/dialogs>` | portable file dialogs (imported from [samhocevar/portable-file-dialogs](https://github.com/samhocevar/portable-file-dialogs)) | |
  21. | `<lol/file>` | file reading utilities | ● `lol::read(filename, data)` for any `std::string` or `std::vector`<br>● `lol::write(filename, data)` |
  22. | `<lol/format>` | ensure `std::format` is available, using a fallback if necessary | |
  23. | `<lol/msg>` | simple message logging | ● `lol::msg::info("hello\n");`<br>● `lol::msg::debug("%d %d\n", x, y);`<br>● also `lol::msg::error`, `lol::msg::warn` |
  24. | `<lol/thread>` | threading and timing | ● `lol::thread`<br>● `lol::queue<int, 200>` (thread-safe FIFO queue)<br>● `lol::timer` (high precision timer) |
  25. | `<lol/utils>` | various utilities: environment variables, std::map and std::vector extensions… | |
  26. ## Text utilities
  27. | header | description | examples |
  28. |--------|-------------|----------|
  29. | `<lol/algo/suffix_array>` | suffix array for fast string searches (imported from [storm-ptr/step](https://github.com/storm-ptr/step)) | |
  30. ## Graphics
  31. | header | description | examples |
  32. |--------|-------------|----------|
  33. | `<lol/color>` | colorspace conversions (RGB, sRGB, HSV…) | |
  34. | `<lol/image>` | image loading, saving, and processing | |
  35. ## External libraries
  36. | header | description |
  37. |--------|-------------|
  38. | `<lol/lib/cli11>` | the CLI11 command-line parsing library (imported from [cliutils/cli11](https://github.com/CLIUtils/CLI11)) | |
  39. | `<lol/lib/doctest>` | the doctest unit test framework (imported from [doctest/doctest](https://github.com/doctest/doctest)) |
  40. | `<lol/lib/doctest_main>` | a version of doctest that implements `main()` |
  41. | `<lol/lib/pegtl>` | the PEGTL parser (imported from [taocpp/pegtl](https://github.com/taocpp/PEGTL)) |