A subatomic OpenGL graphics library.
quarkGL uses Bazel as its build system. To begin, first install Bazel.
To be able to actually compile the dependencies, run the following to install the appropriate tools and headers (on Ubuntu/Debian):
$ sudo apt-get install build-essential xorg-dev libgl1-mesa-dev libglu1-mesa-dev
To get the linters, also run (you'll need to install pip to get cpplint):
$ sudo apt-get install clang-tidy
$ sudo pip install cpplint
Then build the examples, and run them:
$ bazel build examples:all
$ bazel run examples:learn_opengl
In addition to the build tooling, you may also want to build a compilation
database in order to
enable the linter and semantic completion in your editor. The database is
processed through some Python tooling that requires the google.protobuf
library in order to work properly.
To install google.protobuf
, first install
pip
, the Python package
installer, and then run:
$ sudo pip install protobuf
Afterwards, execute the following script to generate the compilation database:
$ ./build_compile_commands.sh
Once the compile_commands.json
file exists, run the following to execute the
linter:
$ ./run_linters.sh
This library was built as a way to learn modern OpenGL and graphics techniques. A big thank you goes to the wonderful tutorials by Joey de Vries at learnopengl.com!
quarkGL uses several open source libraries itself. Thanks goes to the following projects that were used:
- GLFW
- GLAD
- GLM
- stb_image
- assimp