Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

README.md 2.8 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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/cli>` | command-line parsing (imported from [cliutils/cli11](https://github.com/CLIUtils/CLI11)) | |
  21. | `<lol/dialogs>` | portable file dialogs (imported from [samhocevar/portable-file-dialogs](https://github.com/samhocevar/portable-file-dialogs)) | |
  22. | `<lol/file>` | file reading utilities | ● `lol::read(filename, data)` for any `std::string` or `std::vector`<br>● `lol::write(filename, data)` |
  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/unit_test>` | unit test framework | |
  26. | `<lol/utils>` | various utilities: environment variables, string formatting, std::map and std::vector extensions… | |
  27. ## Text utilities
  28. | header | description | examples |
  29. |--------|-------------|----------|
  30. | `<lol/pegtl>` | the PEGTL parser (imported from [taocpp/pegtl](https://github.com/taocpp/PEGTL)) | |
  31. | `<lol/algo/suffix_array>` | suffix array for fast string searches (imported from [storm-ptr/step](https://github.com/storm-ptr/step)) | |
  32. ## Graphics
  33. | header | description | examples |
  34. |--------|-------------|----------|
  35. | `<lol/color>` | colorspace conversions (RGB, sRGB, HSV…) | |
  36. | `<lol/image>` | image loading, saving, and processing | |