A three-dimensional header-only graphics library written in C++13 and accelerated with CUDA/Apple Metal.
Before attempting to build this project, make sure you have Simple DirectMedia Layer (SDL 2), GNU Make, and CMake installed on your machine.
Additionally, if you wish to utilize the GPU acceleration features, you will need to have CUDA Toolkit or Apple Metal installed on your machine.
To get a local copy of the project up and running on your machine, follow these simple steps:
-
Clone the project repository
git clone https://github.com/Kaweees/kiwigl.git cd kiwigl
-
Create a fresh build directory and navigate to it
rm -rf build mkdir build cd build
-
Generate build files using CMake
cmake -S .. -B . -DCMAKE_BUILD_TYPE=Debug
-
Build the entire project
cmake --build .
-
Build only the tests
cmake --build . --target tests
-
Run all tests
ctest --output-on-failure
-
Run a specific test suite
./tests/test_suite_name
-
Build only the examples
cmake --build . --target examples
-
Run a specific example
./examples/example_name
Kiwigl uses the following conventions:
- left-handed coordinate system
- counter-clockwise winding order for triangle vertices
Kiwigl uses the following keyboard shortcuts:
Command Keybind | Command Description |
---|---|
CTRL + q | Quit the application |
graphics/
βββ .github/ - GitHub Actions CI/CD workflows
βββ include/ - project header files
βββ src/ - project source files
β βββ main.c - Entry point, main function
βββ CMakeLists.txt - CMake build script
βββ LICENSE - project license
βββ README.md - you are here
The source code for kiwigl is distributed under the terms of the GNU General Public License v3.0, as I firmly believe that collaborating on free and open-source software fosters innovations that mutually and equitably beneficial to both collaborators and users alike. See LICENSE
for details and more information.