summary refs log tree commit diff
path: root/third_party/gldc/README.md
blob: aedd7390dfa0a0f4d676919767c363f721643b9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
This is a fork of GLdc optimised for the Dreamcast port of ClassiCube, and unfortunately is essentially useless for any other project

---

# GLdc

**Development of GLdc has moved to [Gitlab](https://gitlab.com/simulant/GLdc)**

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!