3d graphics utility library.

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

Gavin c5adfd10d8 Gcovr working 10 месяцев назад
.cmake c5adfd10d8 Gcovr working 10 месяцев назад
.github c5adfd10d8 Gcovr working 10 месяцев назад
include 0a553ddba5 Reworked again 10 месяцев назад
test c5adfd10d8 Gcovr working 10 месяцев назад
.gitignore 0a553ddba5 Reworked again 10 месяцев назад
.gitlab-ci.yml d092061a00 updated gitlab-ci 1 год назад
CMakeLists.txt c5adfd10d8 Gcovr working 10 месяцев назад
README.md 5cfb7ce035 Updated Transform class 3 лет назад
conanfile.py 0a553ddba5 Reworked again 10 месяцев назад

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