What Will Be The Ui?


TomCooksey

Still Fresh
Joined
Apr 3, 2008
Messages
63
Hiya,

I'm a developer working on OpenGL ES integration in Qt/Embedded Linux. One of the main things I'm doing is getting shiny iPhone-like window transitions to work. I was just wondering what people were intending to do for the UI of the Pandora? I'm currently working with an OMAP 3430 SDP development kit, so I'm confident the driver I'm writing for Qt/Embedded will work pretty well on the Pandora, assuming it has PowerVR's SGX Null-Window-System drivers on it.

If no-one has a UI ready, I'd love you to choose Qtopia or some other framework based on Qt/Embedded. I would do my best to support any efforts along these lines too. I can tell you that you should be able to get Compiz/iPhone like window transitions at the very least!


Cheers,

Tom

PS: Sorry if this sounds like a sales pitch!
 
Tom Cooksey said:
If no-one has a UI ready, I'd love you to choose Qtopia or some other framework based on Qt/Embedded. I would do my best to support any efforts along these lines too. I can tell you that you should be able to get Compiz/iPhone like window transitions at the very least!
I pretty sure the default UI interface is still open. Sounds like you have something that would be very nice.
 
Last edited by a moderator:
Laurent said:
Well Qtopia licensing is restrictive. You can't do commercial development without paying.
Yup, that's true. If you want to use Qt without releasing the source you have to pay for a commercial licence. But it is my intention to allow Qt/Embedded to be suspended & resumed when a game starts and ends.

Assumuing games are full-screen, you want whatever windowing system & UI to get out of the game's way. That's what I'm intending to do anyway. The only thing you'd need a licence for is if you develop an "application" like an instant messenger or something using Qt, but don't want to release the source code.
 
Last edited by a moderator:
Tom Cooksey said:
Yup, that's true. If you want to use Qt without releasing the source you have to pay for a commercial licence. But it is my intention to allow Qt/Embedded to be suspended & resumed when a game starts and ends.

Assumuing games are full-screen, you want whatever windowing system & UI to get out of the game's way. That's what I'm intending to do anyway. The only thing you'd need a licence for is if you develop an "application" like an instant messenger or something using Qt, but don't want to release the source code.
I'm very interested about this. I want to develop a gui and I was developing my own toolkit for it. Perhaps it's a better idea to use Qt/Embedded. Can you tell me more about it?

Anyway, I don't know what craigix & co think about the licensing...They said if someone wants to develop the official gui, he/she can code it for pc and then show it to them, and if they like it they will use it as the official interface.



Oh, althought I've never coded using the Qt toolkit, I'm a big fan of it, I use KDE all the day!!
 
Last edited by a moderator:
atomicthumbs said:
I think CraigIX was going with a KDE- or Qt- based system. (Either or both; I can't remember.)
Did you just make that up?
 
Last edited by a moderator:
efegea said:
I'm very interested about this. I want to develop a gui and I was developing my own toolkit for it. Perhaps it's a better idea to use Qt/Embedded. Can you tell me more about it?
Ok, it goes something like this: Qt is a C++ API (with Python & Java bindings). The Qt library is avaliable on 5 different platforms: X11, Windows, OS X, Embedded Linux & WinCE/Mobile. The idea is that if you write your application using Qt, you can just re-compile it against any of the 5 platform-specific libraries and it will just work. Write code once, deploy on any platform.

Qt for Embedded Linux (the bit I work on) is a bit of a special case. Instead of integrating with the platform's windowing system, it implements it's own. Normally it just uses the standard Linux framebuffer to put pixels on the screen, but we also have other drivers for things like DirectFB & SVGAlib. What we're working on now is using OpenGL ES to put pixels on the screen.

Qtopia is a suite of applications (& support libraries) which are written using Qt. They are designed with embedded devices in mind and include applications like contact list, instant messenger (the usual PIM suspects) plus others (like a web browser).

The Qt library for all platforms and Qtopia (all variants) is released under the GPLv2 or GPLv3. This means if you link against them, your application becomes GPL too and you must publish your source code. If you don't want to publish your source code, you must purchase a commercial license from Trolltech.
 
Last edited by a moderator:
Tom Cooksey said:
If you want to use Qt without releasing the source you have to pay for a commercial licence.
So if you do commercial development and offer the source code to anyone who requests it, there's no license fees? Or do you have to bundle the code with the app? (and what kind of license can you release the coder under?)
 
Last edited by a moderator:
Squidge said:
Tom Cooksey said:
If you want to use Qt without releasing the source you have to pay for a commercial licence.
So if you do commercial development and offer the source code to anyone who requests it, there's no license fees? Or do you have to bundle the code with the app? (and what kind of license can you release the coder under?)


It's whatever the GPLv2 or GPLv3 says. I'm no expert but I believe having a tar-ball of source avaliable somewhere on the internet is sufficient. E.g. KDE is often distributed as a binary package without the source code, but the source code is avaliable to download if you want and therefore doesn't violate the GPL.
 
Last edited by a moderator:
Tom Cooksey said:
The Qt library for all platforms and Qtopia (all variants) is released under the GPLv2 or GPLv3. This means if you link against them, your application becomes GPL too and you must publish your source code. If you don't want to publish your source code, you must purchase a commercial license from Trolltech.
GPL is certainly too restrictive from my point of view. I'm OK with LGPL for libraries.

Also Qt license says this:
QUOTE
* Make the complete source code of your program available to all end users
* Allow all users to re-use, modify and re-distribute the code
* Give up your right to demand compensation for re-use and re-distribution
* Add a notice to your program that it is GPL licensed when it runs

So basically I ask for the source, modify a few things and then I can distribute freely. So it's a no-no for commercial developers :)
 
Last edited by a moderator:
Laurent said:
Also Qt license says this:
QUOTE
* Make the complete source code of your program available to all end users
* Allow all users to re-use, modify and re-distribute the code
* Give up your right to demand compensation for re-use and re-distribution
* Add a notice to your program that it is GPL licensed when it runs

So basically I ask for the source, modify a few things and then I can distribute freely. So it's a no-no for commercial developers :)
Well, it just means if you make money from using Qt, you have to give something back to Trolltech in the way of a developer's license. But, yes, your right. If you don't want to distribute your own code you have to pay.

BUT... This point I want to stress - This does not apply to full-screen games! You write your game using whatever you want, OpenGL, linuxFB, etc. You don't touch any of Qt but assume your the only program running and have exclusive access to the framebuffer.

To launch the game, a simple launcher program is used. The launcher program instructs the Qt/Embedded server to detach from the display device. Once the launcher has received confirmation from the server that it is no longer using the graphics hardware, it fork/exec's the game and waits for it to exit. Once the game exits, it contacts the server again and tells it to re-initialize the display and you're dropped back into the UI again.

The only thing which needs to link against the Qt libraries is the launcher, and that will probably be written by me, released under the GPL.

So commercial companies can still write games without needing to purchase a Qt license, if they choose to do so.
 
Last edited by a moderator:
Tom Cooksey said:
Ok, it goes something like this: Qt is a C++ API (with Python & Java bindings). The Qt library is avaliable on 5 different platforms: X11, Windows, OS X, Embedded Linux & WinCE/Mobile. The idea is that if you write your application using Qt, you can just re-compile it against any of the 5 platform-specific libraries and it will just work. Write code once, deploy on any platform.

Qt for Embedded Linux (the bit I work on) is a bit of a special case. Instead of integrating with the platform's windowing system, it implements it's own. Normally it just uses the standard Linux framebuffer to put pixels on the screen, but we also have other drivers for things like DirectFB & SVGAlib. What we're working on now is using OpenGL ES to put pixels on the screen.

Qtopia is a suite of applications (& support libraries) which are written using Qt. They are designed with embedded devices in mind and include applications like contact list, instant messenger (the usual PIM suspects) plus others (like a web browser).

The Qt library for all platforms and Qtopia (all variants) is released under the GPLv2 or GPLv3. This means if you link against them, your application becomes GPL too and you must publish your source code. If you don't want to publish your source code, you must purchase a commercial license from Trolltech.
But if I want to use the special features you are working on, should I use an special version? Is there an open SVN server with the current code? and documentation (about the new features, I already know the great Qt documentation)? can I test the code on the pc (I'll have to show the gui to the pandora's developers as a pc application)? links, links, I need links :D

But we still don't know if the Pandora will come with an X11 server or a "simple" framebuffer (with simple I mean without the features of an X server, i.e windowing). Or perhaps the OpenGL ES driver you are working on will work on whatever it comes with assuming it is capable of OpenGL ES? Perhaps you have an idea of what it will come with because you have worked with the omap 3430.. :)
 
Last edited by a moderator:
efegea said:
But if I want to use the special features you are working on, should I use an special version? Is there an open SVN server with the current code? and documentation (about the new features, I already know the great Qt documentation)? can I test the code on the pc (I'll have to show the gui to the pandora's developers as a pc application)? links, links, I need links :D
The next release of Qt is 4.4.0, with the first release candidate out today. 4.4.0 adds WebKit (HTML/JavaScript rendering engine) and Phonon (Multimedia API - wrapper for GStreamer on Linux).

The OpenGL ES integration will be released as part of 4.5.0 which I believe is currently slated for Autumn. The only thing this will give you is fancy window transition animations, it wont add anything to the API. So you can start developing today. Your Linux distribution will normally include Qt development packages, so if you want to develop your own GUI, I'd start with those packages (I.e. start with Qt/X11). You can always re-compile for Qt/Embedded at a later date.

http://doc.trolltech.com

efegea said:
But we still don't know if the Pandora will come with an X11 server or a "simple" framebuffer (with simple I mean without the features of an X server, i.e windowing). Or perhaps the OpenGL ES driver you are working on will work on whatever it comes with assuming it is capable of OpenGL ES? Perhaps you have an idea of what it will come with because you have worked with the omap 3430.. :)
OpenGL ES has a companion API called EGL, which is used for context management. What I'm writing assumes there's no native window system (as it is itself a windowing system). I suspect Pandora could ship with X11, but probably just X11 sitting on the framebuffer (I.e. no acceleration). I think Qt/Embedded would be way faster, but then I'm probably a little biased :).
 
Last edited by a moderator:
Tom Cooksey said:
It's whatever the GPLv2 or GPLv3 says. I'm no expert but I believe having a tar-ball of source avaliable somewhere on the internet is sufficient. E.g. KDE is often distributed as a binary package without the source code, but the source code is avaliable to download if you want and therefore doesn't violate the GPL.
Ah, if it's GPL, then thats fair enough.

I was thinking commercial in the sense of being sold with the Pandora. I think it would only be a plus point that the launcher was open source.

Since the toolkit is multi-platform, how about showing us a few screenshots of your launcher (and perhaps an interactive demo built for Windows ?)
 
Last edited by a moderator:
Squidge said:
Since the toolkit is multi-platform, how about showing us a few screenshots of your launcher (and perhaps an interactive demo built for Windows ?)
The launcher I'm thinking about would be a command line program where you pass it the path to the game you want to execute.

If you want to see some Qtopia applications running, just search for "Qtopia" on youtube. There's some videos of Qtopia running on the Neo1973 and on the Nokia N800.
 
Last edited by a moderator:
Back
Top