GLdc: an OpenGL implementation for the SEGA Dreamcast
Go to file
Falco Girgis b09e630304 Implemented support for all vertex attribute fmts.
1) GLdouble was incorrectly being treated as GLfloat which is now broken
   with -m4-single as default. Fixed.
2) Implemented all missing double-precision vertex attribute reader
   functions.
3) Implemented all missing vertex reader/extracter functions for
   unsigned/signed ints and unsigned/signed shorts.
4) Added (void) argument lists to every function missing them.
    - Not the same as accepting no arguments in C, as with C++.
5) Added KOS's __restrict to software.h so it can be used in common code.
2025-02-19 08:54:21 -06:00
containers Removed kos/string.h dependency. 2025-01-23 21:24:06 -06:00
GL Implemented support for all vertex attribute fmts. 2025-02-19 08:54:21 -06:00
include/GL API FP ABI conformity fixes. 2025-01-27 00:53:23 -06:00
samples Fix wrong glEnable call 2025-02-05 21:47:35 +11:00
tests
toolchains
tools
.gitattributes
.gitignore
.gitlab-ci.yml
CMakeLists.txt Calculate read attribute functions when attribute states changes, instead of at every draw call 2025-02-01 15:38:59 +11: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 ..

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!