This is remarkable because Cafu, even though designed for cross-platform portability, has never been run on an ARM architecture before. I'm very glad that making it operational went so smoothly!
There were some issues with some of our subsystems, but all minor: Vendor libraries that are available only for x32/x64 architectures had to be omitted, specifically the Cg based renderers and the FMOD based sound system, whereas the pure OpenGL and OpenAL based graphics and sound systems compiled flawlessly.
The Raspberry Pi's OpenGL driver is still rated as experimental, and it turned out that it could not run our
RendererARBprogsrenderer. Using the proper command line in order to use the OpenGL 1.2 renderer instead worked immediately:
Code: Select all
./build/linux2/g++/release/Ca3DE/Cafu -clRenderer Libs/build/linux2/g++/release/MaterialSystem/libRendererOpenGL12.so
Yes, I know, OpenGL 1.2 is ancient and lame. But it was readily available, and as soon the the Raspberry Pi's driver improves, we can switch to the ARBprogs renderer at once. Also note that the frame rate in the screenshots is low, mostly because I took them with the debug build of Cafu. Using the release build, it is more than 3 times the value indicated in the screenshots. And of course, nothing has been optimized specifically for the Raspberry Pi yet.
The point of running Cafu on the Raspberry Pi though is that it is proven to flawlessly work on the ARM architecture. That means that it will work on other platforms that use the ARM architecture as well – and that means that we're very well prepared for all these mobile devices out there...!