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 .

 

 

RSSComments

Finally

fitzek | 02/03/2009, 22:24

fitzek

Good article. Very useful. Hopefully there will be soon more devices with OpenGL ES 2.0!

gtk/hildon integration?

harbaum | 03/03/2009, 14:19

All the talk about opengl mentions the qt integration, but no word about gtk/hildon. The alpha sdk also doesn't seem to include the clutter-gtk bindings. Is a clutter/opengl/gtk/hildon integration planned? How are gtk/hildon apps supposed to take advantage of clutter/opengl?

OpenGL 2

shniager | 08/03/2009, 03:06

So, how much time to wait for OpenGL 2 API?

Re: Developing accelerated graphics with Maemo 5 Fremantle

Sir Pulse | 02/04/2009, 09:22

Good news, but what ideas do you have about testing application?

your wrapper

NeoStrider | 15/10/2009, 03:26

Hello Kate,
Im a maemo game developer since its annoucement, back in 2005 and Im very excited to get things going with GL ES. While I cant buy a beagleboard (it is in my plans), can you please send me your wrapper?

You must login to post comments. Login
 

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: qdcZdescriptionQSxkateE2ealholaE20E7cE2027E20SeptemberE2cE202008E2000E3a40E20MaemoE20summitE202008E20wasE20greatE20successE2cE20goodE20E22hackerE20spiritE22E20conferenceE20inE20plceE20thatE20eE78actlyE20fitsE20toE20thisE2cE20cE2dbaseE20inE20BerlinE2eE20KaroliinaE20madeE20eE78ellentE20videoE20compositionE20aboutE20maemoE20spiritE202008E2eE20IfE20youE20likeE20toE20seeE20videoE20inE20betterE20E71ualityE2cE20checkE20followingE20VimeoE20linkE20MaemoE20SummitE202008E20fromE20KaroliinaE20SalminenE20onE20VimeoE2eE20IE20thinkE20thatE20NokiaE20announcedE20thereE20twoE20mostE20wantedE20newE20featuresE20toE20neE78tE20generationE20maemoE20FremantleE2cE20theE20CellularE20HSPAE20supportE20andE20OpenGE4cE2dE45SE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fkateE2dalholasE2dforumE2dnokiaE2dblogE2f2008E2f09E2f27E2fmaemoE2dsummitE2d2008X qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxKateE20AlholaE27sE20ForumE20NokiaE20BlogE20E7cE20MaemoE20summitE202008X qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZBlogE45ntryQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxkateE2ealholaE20E7cE2027E20SeptemberE2cE202008E2000E3a40E20MaemoE20summitE202008E20wasE20greatE20successE2cE20goodE20E22hackerE20spiritE22E20conferenceE20inE20plceE20thatE20eE78actlyE20fitsE20toE20thisE2cE20cE2dbaseE20inE20BerlinE2eE20KaroliinaE20madeE20eE78ellentE20videoE20compositionE20aboutE20maemoE20spiritE202008E2eE20IfE20youE20likeE20toE20seeE20videoE20inE20betterE20E71ualityE2cE20checkE20followingE20VimeoE20linkE20MaemoE20SummitE202008E20fromE20KaroliinaE20SalminenE20onE20VimeoE2eE20IE20thinkE20thatE20NokiaE20announcedE20thereE20twoE20mostE20wantedE20newE20featuresE20toE20neE78tE20generationE20maemoE20FremantleE2cE20theE20CellularE20HSPAE20supportE20andE20OpenGE4cE2dE45SE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtopicQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fFNE2d1E2fBlogTopicE2fgeneralXRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtopicQUqfnTopicZmaemoQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZBlogE45ntryQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZupdatedQDx2008E2d09E2d26X qfnZuserE5ftagQSxmaemoX qmarsZdescriptionQSxkateE2ealholaE20E7cE2027E20SeptemberE2cE202008E2000E3a40E20MaemoE20summitE202008E20wasE20greatE20successE2cE20goodE20E22hackerE20spiritE22E20conferenceE20inE20plceE20thatE20eE78actlyE20fitsE20toE20thisE2cE20cE2dbaseE20inE20BerlinE2eE20KaroliinaE20madeE20eE78ellentE20videoE20compositionE20aboutE20maemoE20spiritE202008E2eE20IfE20youE20likeE20toE20seeE20videoE20inE20betterE20E71ualityE2cE20checkE20followingE20VimeoE20linkE20MaemoE20SummitE202008E20fromE20KaroliinaE20SalminenE20onE20VimeoE2eE20IE20thinkE20thatE20NokiaE20announcedE20thereE20twoE20mostE20wantedE20newE20featuresE20toE20neE78tE20generationE20maemoE20FremantleE2cE20theE20CellularE20HSPAE20supportE20andE20OpenGE4cE2dE45SE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZBlogE45ntryQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ