Giles is a basic SL->SLC compiler. It was originally written for use with Buffy and SLander. The shaders it produces should also be used with Angel. The code produced is intended to be compatable with BMRT, though I haven't tested it.

Giles has many limitations (most notably it doesn't support user defined functions), so you may prefer to use slc to compile your shaders. If you do so then make sure you conform to the BMRT license agreement.

The current release can be downloaded for OpenStep, Raspberry Pi, freeBSD, Linux, SGI, MacOS X, and NT. See the release notes for more info.

In order to use giles you'll need a C Pre-processor installed on your system.Most unix boxes have this as standard, but if you're running Win32 you'll need to install one. The one which comes with BMRT is known to work. You could also try this one. I've done very little testing with this cpp, as I rarely use win32 so would appreciate hearing how well it works.


Firstly let me say that this is NOT code that I'm proud of. It was hacked together quickly from some old code that wasn't up to much in the first place. Writing compilers is not something I'm strong at, and its a pretty specialised task. I'm therefore releasing this code in the hope that someone more suitable will take it on and turn it into something of higher quality.

This source code may be used as you see fit, provided credit is given, including a link to this site. You should also email DCT such that I can list your project here.

Though it's not compulsory, I'd prefer if any developments were rolled back into a core release which is maintained here. The current architecture generates code in the same pass as in the parser, which limits flexability, but try and keep any new code as compatable with the existing operation as possible, so your fixes can be shared by all.


Ian Stephenson.
DCT Systems
NCCA,Bournemouth University