Awesome
swGL
A (reasonably fast) multithreaded software rasterizer implementation of OpenGL 1.3(ish).
Screenshots
<p align="center"> <img src="https://user-images.githubusercontent.com/5739639/33936619-76436544-e000-11e7-83e8-381c4143cc81.jpg" width="24%" alt="Quake 3 - Q3CTF3" title="Quake 3 - Q3CTF3" /> <img src="https://user-images.githubusercontent.com/5739639/33936620-765ddf14-e000-11e7-8f5c-576b427f487e.jpg" width="24%" alt="Quake 3 - NOR3CTF1" title="Quake 3 - NOR3CTF1" /> <img src="https://user-images.githubusercontent.com/5739639/33936624-76b65004-e000-11e7-8a2f-cbe363ab9459.jpg" width="24%" alt="Star Trek - Elite Force II" title="Star Trek - Elite Force II" /> <img src="https://user-images.githubusercontent.com/5739639/33936625-76d4b7b0-e000-11e7-9731-dc3eb1459c53.jpg" width="24%" alt="Star Trek - Elite Force II" title="Star Trek - Elite Force II" /> <img src="https://user-images.githubusercontent.com/5739639/33936626-76f98310-e000-11e7-8293-598596de3470.jpg" width="24%" alt="Half Life 1" title="Half Life 1" /> <img src="https://user-images.githubusercontent.com/5739639/33936627-7715c714-e000-11e7-919c-a0041f8d3550.jpg" width="24%" alt="Half Life 1" title="Half Life 1" /> <img src="https://user-images.githubusercontent.com/5739639/33936628-773c8dea-e000-11e7-9617-eaeb0fc4c132.jpg" width="24%" alt="Unreal Tournament 99" title="Unreal Tournament 99" /> <img src="https://user-images.githubusercontent.com/5739639/33936629-775d5b74-e000-11e7-820c-b8ff2c836a70.jpg" width="24%" alt="Unreal Tournament 99" title="Unreal Tournament 99" /> <img src="https://user-images.githubusercontent.com/5739639/33936631-777b51e2-e000-11e7-9bc7-7952f3e8b22c.jpg" width="24%" alt="Heavy Metal: F.A.K.K.²" title="Heavy Metal: F.A.K.K.²" /> <img src="https://user-images.githubusercontent.com/5739639/35512540-5be18ec2-0500-11e8-9d39-ad44d468f4e3.jpg" width="24%" alt="Serious Sam - The First Encounter" title="Serious Sam - The First Encounter" /> <img src="https://user-images.githubusercontent.com/5739639/35512591-9499425a-0500-11e8-84f5-a23dbe748f9e.jpg" width="24%" alt="Serious Sam - The First Encounter" title="Serious Sam - The Second Encounter" /> <img src="https://user-images.githubusercontent.com/5739639/35512933-aa06cd0a-0501-11e8-89c8-5134b5f22d8d.jpg" width="24%" alt="Doom 3" title="Doom 3" /> </p>How fast is it
Reasonably fast for a software rasterizer :). You'll get good framerates if you stick to 640x480 or 800x600 resolutions.
How to get it running
For most games it's enough to put the resulting file OpenGL32.dll
right into the game directory. Games like Half Life 1, Star Trek - Elite Force I or Heavy Metal F.A.K.K.² however need some config file modifications before they use the custom OpenGL driver. For this games you have to rename the OpenGL32.dll
file you just compiled to something else - like swGL.dll
for example - or they will just use the OpenGL driver provided from your graphics card vendor!
Half Life 1
Put swGL.dll
into Half Life 1's gldrv
directory and modify the file drvmap.txt
accordingly. Then select the driver from the Options menu in Half Life 1.
Star Trek - Elite Force I / Heavy Metal F.A.K.K.²
Put swGL.dll
into the game directory. Modify the config file inside the BaseEF
/ fakk
directory to use the new custom OpenGL driver. To do this, add the command r_gldriver "swGL.dll"
.
Supported Games
As far as I can tell Quake 3, Star Trek Elite Force I & II, Half Life 1, Unreal, Unreal Tournament 99, Heavy Metal: F.A.K.K.², Serious Sam - The First & Second Encounter and Warcraft III work pretty well for the most part. Homeworld, Enclave and Doom 3 work okay. Blade Of Darkness isn't really playable as I haven't implemented display lists. I haven't tried other titles so far.
Have fun.