3d graphics utility library.

#gamedev #library #3d #framework #gl #opengl #cpp #c++ #mesh-struct #types #structs

Gavin d092061a00 updated gitlab-ci 1 年之前
.cmake 25cc97d1f4 Updated to new cmake project 1 年之前
.github 25cc97d1f4 Updated to new cmake project 1 年之前
src 25cc97d1f4 Updated to new cmake project 1 年之前
.gitignore aa926450b3 Added initial files 4 年之前
.gitlab-ci.yml d092061a00 updated gitlab-ci 1 年之前
CMakeLists.txt 25cc97d1f4 Updated to new cmake project 1 年之前
README.md 5cfb7ce035 Updated Transform class 3 年之前
conanfile.txt 25cc97d1f4 Updated to new cmake project 1 年之前

README.md

Gavin's Utility Library

pipeline status coverage report Build status

This is a collection of single-header classes which I have developed over the years for various uses.

The following classes only require the STL library as a dependency

  • gul::uri - a Universal Resource Identifer class.
  • gul::thread_pool - A thread pool class.
  • gul::writer_preferred_shared_mutex - like std::shared_mutex but writers are given priority
  • gul::Image - A class used to manipulate image data with per-channel operators, eg: img.r = img.g + img.b
  • gul::MeshPrimitive - A class to hold mesh data and load OBJ models
  • gul::ResourceLocator - Works similar to the PATH variable. Provide a list of directories and search for files within them
  • gul::ResourceManager - A management system for loading resources.

The following classes require the GLM math library

  • gul::Transform - a non-matrix representation of the translate-rotate-scale transform
  • gul::Frustum - a frustum class used for culling
  • gul::Octree - an octree class for geometry culling

Using This Library

To use this library, simply add it as a submodule and link it with your binary.

add_subdirectory(third_party/gul)

target_link_libraries( myApp PUBLIC gul::gul)

Build Unit Tests

The unit tests use conan to download any third-party dependences (glm and catch2).

mkdir build
cd build
conan install .. -s compiler.libcxx=libstdc++11

cmake ..
cmake --build .

ctest --output-on-failure