Well, I could barely believe this myself: I checked out Cafu on a Raspberry Pi
2 for the very first time, compiled – and without further ado, it worked!
Simple as that.
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
RendererARBprogs
renderer. Using the proper command
line in order to use the OpenGL 1.2 renderer instead worked immediately:
./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...!