Channels ▼
RSS

Embedded Systems

OpenGL & Mobile Devices

Source Code Accompanies This Article. Download It Now.


When it comes to games, visualization, and even video-stream processing, OpenGL is the de facto standard for cross-platform real-time 3D graphics. So when I first heard that OpenGL was being adapted for things like cell phones and PDAs, I was, well, skeptical. After being spoiled by workstation-class 3D graphics, going back to software rendering on a display half the size of a note card was underwhelming, to say the least.

Two things changed my mind—Sony's PSP and Nintendo's GameBoy DS. When I saw their displays, I knew 3D hardware in handheld devices was a reality. For the first time, I had a real reason to dive into OpenGL ES, a royalty-free, cross-platform API for full-function 2D and 3D graphics for the "embedded space" (www.khronos.org/opengles). About the same time I was working to incorporate OpenGL ES into my OpenGL class at Full Sail (www.fullsail.com), I was also working with Software Bisque (www.bisque.com) on some OpenGL-based astronomy projects. NVidia heard what we were up to and contacted us about moving TheSky Pocket Edition to OpenGL ES-enabled platforms. NVidia supplied me with a development kit (developer.nvidia.com/page/handheld.html), which included the Gizmondo handheld gaming unit. Alas, the company behind the unit is gone, but the Gizmondo still proved to be a valuable prototyping and evaluation tool. Getting something running on the Gizmondo was straightforward because it runs on Windows CE, which lets me use Microsoft's Embedded Visual C++.

The Gizmondo is not a Pocket PC or PDA — it was solely intended as a handheld gaming device—so there are a few hurdles most PDA developers are spared. For instance, I had to use a special "Developers" version of the USB driver to form a regular partnership with the device and copy files back and forth to protected areas. There was also a special program that had to be integrated into Embedded Visual C++'s build steps to digitally sign the executables, or the Gizmondo would not execute them.

The Gizmondo unit contains a 400-MHz ARM9 CPU, and has 64 MB of RAM. The 320×240, 16-bit color (5-6-5 dither) display was driven by a 72-MHz NVidia GoForce 4500 3D GPU, which supports OpenGL ES 1.0 with some extensions. This is more power than was available when 3D games first came to PCs, and I was eager to see my first 3D program running on a handheld device.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video