Note: This website is archived. For up-to-date information about D projects and development, please visit

Testing Rae

Currently I'm doing all my development on OS X 10.5 (with GLFW and Gtk+Quartz native) and Ubuntu Linux (the latest LTS version, what ever that is...)

currently using:
OS X: Some nice GDC and tango installers. DSSS has to be 0.75. Tango 0.99.8.
Linux: Tango 0.99.8 with GDC.
Windows: Tango 0.99.9. Quick notes on building on Windows

This document will tell you how to build and test the current svn version of the Rae GUI library.


Rae is currently D 1.0/Tango only. I use GDC on OS X as my main environment, and Linux as my other environment. Windows will come at some point. I try not to change my compilers too often. The alternative standard library Tango is needed. I use the Tango bundled installers if they happen to work, and if they don't, then I do manual install with the instructions on the Tango wiki. DSSS build tool is also usually bundled with some their bundles, but it's also available from DSource. I usually don't use Tango trunk, but I try to follow the latest released version but I skip some versions if my current version works for me.

You'll need to get GtkD. There are install instructions on the GtkD page. You also need to install the GTK+ packages for your platform, before you install GtkD. I'm using an old slightly customized version of GtkD, but the latest version might work, or then it might need a little extra effort...

Currently also depending on Freetype and Derelict. GraphicsMagick? is optional.

Depending on GTK+ might seem like a big dependency, and it is. But with Rae, I try not to focus on things that I can't do well. GTK+ is actually not the only backend that I use. It's also possible to use GLFW for the handling of windows and input. Other backends could be added quite easily. I'm also considering trying out Dog for that, but that would mean that other backends could not be used, because Dog also wraps OpenGL (At some point I hope I'll only be supporting one backend). But even with the GLFW backend you still need Pango and Cairo, which are used with the GtkD bindings, so you still need GtkD (for now, this might change at some point, but Pango and Cairo are not likely to go away from Rae). Pango is a nice library that allows one to draw nice, modern, professional looking and internationalized fonts. Cairo is a 2D vector graphics library. Pango and Cairo are used, because they are ready, and work reasonably well. If equivalent D libraries would appear, I would change to using those, if they had the potential to become as good or better. It might be possible to use Rae without GTK+, by just installing GLFW, Pango, Cairo and GtkD, but I haven't tested this. Oh yeah, the latest GtkD licence is an LGPL licence which allows static linking (at least temporarily, but that bit is a bit unclear, unfortunately.)

That should be it. Hope I didn't forget some tiny little dependency.

Building Rae

Rae doesn't work as an actual library yet, because dsss doesn't allow a lib to depend on a lib. So, ignore the dsss.conf found in the root folder. Instead try the individual dsss.conf found in each of the examples and unittests.

Most of them won't work under Windows or OS X. Propably only Helloworld works on Windows. (But they'll propably work if you use the dsss.conf file from helloworld...)

I don't have any good examples in there yet, but I hope to get that fixed soon.

If you get it to work, then you might want to try: examples/helloworld examples/pictureviewer (works on OS X too. Give it a .png image file or a folder with only .PNG images in it, and it should show them. There must not be any other files in that folder... If you get it to work, you can test the filechooser, which doesn't work yet... Also click on maximize and i button on the right of the filechooser window.)

unittests/rtree is also propably working. And the others are just tests that might work or not.


Rae is not in a usable state yet. All little things suck here and there. Rounding issues, jittery animations, unfinished examples, non-working dsss.conf files. That's what you can expect from the current rough Rae experience. But I'm frantically trying to fix the issues. Ask stuff in the forum and then please do join the effort or just test it a bit. If there's somebody who'd just want to design some good APIs for doing stuff, and make the Rae structurally better, then that would be great.