GLdc
GLdc: an OpenGL implementation for the SEGA Dreamcast
Install / Use
/learn @Kazade/GLdcREADME
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!
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
