GLdc: an OpenGL implementation for the SEGA Dreamcast
Go to file
Paul Cercueil b10a2f5d54
CMake: Separate GLU into its own library
Some libraries expect GL and GLU to be separate.
Move our existing glu.c code to libGLU.a to keep them happy.

Note that some of the GLU code still exists in matrix.c, but that should
be fine as GLU has a dependency on GL anyway.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2026-06-27 12:16:28 +02:00
containers
GL
include/GL
samples
tests
toolchains
tools
.gitattributes
.gitignore
.gitlab-ci.yml
CMakeLists.txt CMake: Separate GLU into its own library 2026-06-27 12:16:28 +02:00
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 a Dreamcast debug build, you'll want to do something like the following:

mkdir dcbuild
cd dcbuild
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/Dreamcast.cmake -G "Unix Makefiles" ..
make

For a release build, replace the cmake line with with the following:

cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/Dreamcast.cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..

For a release build WITHOUT building samples and tests, enter the following:

cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/Dreamcast.cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFF ..

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!