GLdc: an OpenGL implementation for the SEGA Dreamcast
Go to file
Luke Benstead a4fb80c279 Merge branch 'mirrored_repeat' into 'master'
Mirrored repeat should not touch clamp state.

See merge request simulant/GLdc!164
2025-07-16 21:12:10 +00:00
containers Change all ifdefs to support both DC & Naomi 2025-02-22 14:42:00 +01:00
GL Merge branch 'mirrored_repeat' into 'master' 2025-07-16 21:12:10 +00:00
include/GL initial support for GL_MIRRORED_REPEAT 2025-07-12 12:07:04 -04:00
samples Merge branch 'tnl_effects' into 'master' 2025-05-24 20:19:01 +00:00
tests Change all ifdefs to support both DC & Naomi 2025-02-22 14:42:00 +01:00
toolchains Fix .elf extension on C example executables 2023-03-04 16:11:11 -06:00
tools Implement defragmenting the memory 2023-09-08 17:49:46 +01:00
.gitattributes Ignore the noise... Just testing something. 2014-08-30 13:33:02 -04:00
.gitignore Add dcbuild & pcbuild folders to .gitignore 2023-03-04 16:10:34 -06:00
.gitlab-ci.yml Build out to libGL.a instead of libGLdc.a 2023-11-29 11:25:52 +00:00
CMakeLists.txt Merge branch 'master' into tnl_effects 2025-02-22 22:35:41 +11:00
LICENSE Create LICENSE 2018-05-20 19:51:36 +01:00
README.md Update README 2023-04-17 19:35:06 +02:00

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 ..

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!