I’ve known about JUCE for a while, but have shied away from it till now due to lack of Linux support. Needless to say, I was fairly well excited when I recently found out the library had gained both Linux and OpenGL support. However, I quickly discovered that OpenGL was unfortunately not available under Linux yet.
There were a few stumbling points, since I’ve never even used JUCE before, let alone worked on its internals, but after a couple nights of hacking around I got OpenGL support added for Linux. It’s still a little bit sloppy, but I’ve tried to model it as much after the other versions as possible. Since NativeDesktopWindow::getNativeHandle() doesn’t actually return a native X Window handle, but a pointer to an internal structure defined by the Linux layer of JUCE, I add a juce_linux_Windowing.h file, but other than that things were fairly smooth.
The patch for juce_1_10.zip is currently available from http://www.omphaloscoil.org/~noah/juce_linux_opengl.patch.bz2. To apply it, enter into your juce directory and execute
bunzip2 -c /path/to/juce_linux_opengl.patch.bz2 | patch -p1 and then just run make from build/linux.
Hopefully I can stay motivated and work on more nice stuff for JUCE on Linux (Xinerama awareness, COMPOSITE extension support, etc.) It is a really nice library, but can still be even better
Let me know if anyone finds this patch useful, has comments, suggestions, etc.