GLdc: an OpenGL implementation for the SEGA Dreamcast
containers | ||
GL | ||
include/GL | ||
samples | ||
toolchains | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
GLdc
Development of GLdc has moved to Gitlab
This is a partial implementation of OpenGL 1.2 for the SEGA Dreamcast for use with the KallistiOS SDK.
It began as a fork of libGL by Josh Pearson but has undergone a large refactor which is essentially a rewrite.
The aim is to implement as much of OpenGL 1.2 as possible, and to add additional features via extensions.
Things left to (re)implement:
- Spotlights (Trivial)
- Framebuffer extension (Trivial)
- Texture Matrix (Trivial)
Things I'd like to do:
- Use a clean "gl.h"
- Define an extension for modifier volumes
- Add support for point sprites
- Optimise, add unit tests for correctness
Compiling
GLdc uses CMake for its build system, it currently ships with two "backends":
- kospvr - This is the hardware-accelerated Dreamcast backend
- software - This is a stub software rasterizer used for testing testing and debugging
To compile for Dreamcast, you'll want to do something like the following:
mkdir dcbuild
cd dcbuild
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/Dreamcast.cmake -G "Unix Makefiles" ..
make
You will need KallistiOS compiled and configured (e.g. the KOS_BASE environment variable must be set)
To compile for PC:
mkdir pcbuild
cd pcbuild
cmake -G "Unix Makefiles" ..
make
Special Thanks!
- Massive shout out to Hayden Kowalchuk for diagnosing and fixing a large number of bugs while porting GL Quake to the Dreamcast. Absolute hero!