Skip to content
/ kiwiGL Public
generated from Kaweees/KiwiCPP

πŸ”­ A three-dimensional graphics engine from scratch written in C++13 and accelerated with CUDA/Apple Metal

License

Notifications You must be signed in to change notification settings

Kaweees/kiwiGL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Contributors Forks Stargazers

C++ Logo

A three-dimensional header-only graphics library written in C++13 and accelerated with CUDA/Apple Metal.

Built With

C++ CUDA Apple GitHub Actions

Preview

Video demonstration

Getting Started

Prerequisites

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.

Installation

To get a local copy of the project up and running on your machine, follow these simple steps:

  1. Clone the project repository

    git clone https://github.com/Kaweees/kiwigl.git
    cd kiwigl
  2. Create a fresh build directory and navigate to it

    rm -rf build
    mkdir build
    cd build
  3. Generate build files using CMake

    cmake -S .. -B . -DCMAKE_BUILD_TYPE=Debug
  4. Build the entire project

    cmake --build .

Building and Running Tests

  1. Build only the tests

    cmake --build . --target tests
  2. Run all tests

    ctest --output-on-failure
  3. Run a specific test suite

    ./tests/test_suite_name

Building and Running Examples

  1. Build only the examples

    cmake --build . --target examples
  2. Run a specific example

    ./examples/example_name

Usage

Convention

Kiwigl uses the following conventions:

Keyboard Controls

Kiwigl uses the following keyboard shortcuts:

Command Keybind Command Description
CTRL + q Quit the application

Project Structure

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

License

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.

About

πŸ”­ A three-dimensional graphics engine from scratch written in C++13 and accelerated with CUDA/Apple Metal

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published