You Are Here:

Community: Blogs

Kate Alhola's Forum Nokia Blog

Developing accelerated graphics with Maemo 5 Fremantle

kate.alhola | 02 March, 2009 14:16

Beagleboard running maemo Qt opengl

Nokia just announced today alpha version of Maemo 5 ( Fremantle ) SDK. This is the first maemo SDK version with accelerated OpenGL-ES2 graphics support. There are both, kernel drivers and user mode OpenGL-ES2 libraries included.

You can use OpenGL-ES2 directly using C API without need to use GTK+ or Qt. In Qt you can embed OpenGL-ES2 code inside to QGLWidget and then you have all power of Qt and OpenGL-ES2 combined. The easiest way is to use animated graphics libraries like Qt GraphicsView or Clutter that hides all of the OpenGL stuff inside and you have common API regardless what OpenGL version you have.

It is important to know that all OpenGL variants are not similar nor compatible. In Desktop newer OpenGL variants are upward compatible with older variants. OpenGL 2 introduced programmable pipeline, programmable shaders but it still had also traditional OpenGL 1.x API. OpenGL ES 1.0 was made  to be compact, light weight optimized to Mobile devices. Many API's that had duplicated functionality or did not provide optimum performance were removed. For example direct API's glBegin/glVertex/glEnd were removed and parsing vertex arrays with glVertexAttribPointer is the only method. OpenGL-ES2 went even further, now using the programmable pipeline and then write approprite shader program implementing wanted function. On the other hand, you can now implement things that were impossible with OpenGL-ES 1.x. Same thing said in simpler way, simple things became more dificult with OpenGL-ES2.0 but it also has made  new complex things possible.

If you would like to learn more about OpenGL-ES, couple of good  book recommendation is  "Mobile 3D graphics with OpenGL-ES and M3G" and other "OpenGL ES 2.0 programming guide"

Good starting point to start experimenting OpenGL-ES2.0 programming is to download Imagination Technologes OpenGL-ES 2.0 SDK .  SDK is free of charge but requires registration. The SDK contains good set of examples from simple rotating triangle to complicated shader applications. The desktop Linux SDk has OpenGL-ES2.0 wrapper library that implements OpenGL-ES2.0 API over OpenGL-drivers. I have used this SDK in Ubuntu. Compiling basic examples from SDK to maemo arm binaries is straight forward and they will run for example under maemo in Beagleboard. I made just a wrapper debian package to install Imagination SDK OpenGL-ES2.0 emulation library under Frematle SDK x86 Scratchbox target. With this wrapper, you can compile and run same applications under Scratchbox x86 target. The SDK contains as source some other utility libraries needed for more complex examples but I have not yet tried to make maemo arm/x86 packages from them. Even if the SDK is free, I am not yet sure if I could redistribute ready debian packages or just instructions how to pack files from SDK by yourself.

If you would like to know how your application will run in final maemo based mobile products, running application in desktop PC with high performance GPU does not give any usefull information exept that if it do not perform well in desktop, it definetelly won't do it in OMAP3. Omap CPU does not have same floating point power than desktop CPU and also GPU is pover battery life optimized, not maximum performance one.

To run OpenGL-ES2 accelerated graphics in ARM hardware, you need to have TI OPAMP3 based hardware. Untill a Nokia maemo 5 based device is released, you can use the Beagleboard as a development platform. Beagleboard gives a good feeling what will be the aproximate performance in a real device but it is not an exact match. At least in my experience the Beagleboard is not as fast as a well performing OMAP3 device could be. You can find moore about Beagleboard from Maemo Beagleboard garage project and Juha Kallioinen's presentaion in Fosdem 2009 .

 

 

Qt4.5 for maemo 5 fremantle SDK

kate.alhola | 02 March, 2009 14:13

Arora browser in fremantle  

 

We announce together with Maemo 5 fremantle SDK alpha Qt4.5 for Fremantle. Qt release is based on Qt4.5 release candidate 1. In this version we have all major functionality of Qt including OpenGL-ES2, Webkit with and Mysql support.We have maemo Hildon compatibility including Hildon menus, Hildon style support, Hildon input menu support. The release includes support for both Arm and x86 targets. The release is still alpha level and wish all comments, suggestions and bug reports welcome.

You can read more from maemo Qt 4 pages  . At this moment, the debian packages are in temporary repository that you get in  use including following line In your /etc/apt/sources.list. It will be in maemo extras-devel as soon than maemo.org is getting repository up.

deb http://qt4.garage.maemo.org/ fremantle extras 

The picture is Arora browser running under scratchbox x86 target. Arora browser is Qt application using Webkit engine and it is build with our Qt release but it is not part of the Qt package. In my other blog entry you can see Qt OpenGL-ES2.0 application in Beagleboard. To run OpenGL-ES2.0 applications you need to have Imagination OpenGL-ES2.0 emulation library installed.

Happy hacking with maemo Qt

 

 

 
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2ftastyE2dmultimediaE2djournalsE2dforumE2dnokiaE2dblogE2fgeneralX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxTastyE20MultimediaE20JournalE27sE20ForumE20NokiaE20BlogE20E7cE20GeneralX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZupdatedQDx2008E2d10E2d03X qmarsZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ