Reputation: 868
I've bought a Raspberry Pi, featuring a 300 Mhz CPU, but it does has a pretty good GPU. It can even run XBMC. I want to program a GUI for it, which needs to be responsive and good-looking, while taking optimal use of the hardware available (which isn't too good, unfortunately..). The Raspberry Pi runs Debian minimal, and I've put the X Windowing System on it, the rest is up to me to code.
What is the best way to dive into this? I've already looked into HTML5 and jQuery (via Python and PyWebkit), but they seem to be too CPU-intensive (unless someone knows how to get (Py)WebKit use the GPU, instead of the CPU).
To avoid confusion, this system will be hooked up to televisions and the like, and will be primarily pointed on home entertainment. I don't want this to be a desktop or desktop-like system, I'd just like to know what you guys think would work smooth on the Raspberry Pi box, so that I can program my UI upon that framework.
Upvotes: 5
Views: 15320
Reputation: 8467
Having done a custom non-desktop UI on underpowered hardware (litl.com) and having hacked on both GTK and Clutter a fair bit, I'd reframe the question slightly.
The main issue is you MUST use the GPU rather than be "lightweight" - usually when something says it's lightweight that just means it doesn't have many features or something. Too vague a word. The key is GPU.
The hard part about using the GPU is a working driver. I don't know what the raspberry pi people have focused on here. For ARM in general the most reliable way to get a working driver might be to use Android; maybe not the stock Android UI but their drivers and basic framework, then replace the UI.
X11 drivers, if they exist are often broken on ARM. This is the real problem with X, rather than lightweight vs heavyweight. By broken, I mean maybe the driver kinda boots and runs a desktop, but it's slow in important cases or missing things like hardware video decoding.
Short answer: use the framework (and window system) with the best 3D driver that supports your features you need, like video decode. Again, I haven't looked at raspberry pi but I bet there are only one or two choices that meet this criterion.
Upvotes: 5
Reputation: 1449
Depending on what you actually need the ui for.
If you want to plug monitor and have rich UI - X11+LXDE is maybe the lightest combo (or slightly heavier Xfce) - and you have standard desktop
If you want to access it remotely for specific tasks - probably a apache/php web site will work for you.
If you want to create ya-window-manager but without X - SDL will probably do. But it will run only your UI apps because of non-standard wm.
Upvotes: 0
Reputation: 328614
If you program the GUI yourself, then "good looking" just depends on your design skills. No UI framework can create "good looking" UIs without your help.
And I can't really get "X11" and "lightweight" under one hat. If you really need something that doesn't get in your way at all, look at a game framework like SDL.
If you want most of the work done for you, then you have a price to pay and that price comes in the form of performance. In that case, I suggest X11 + Qt. Qt is not the most lightweight UI framework out there but it's the one in which most people are most productive and it really tries hard to be nice to the hardware.
Upvotes: 0