Tower Mogul
by eSoft Interactive.
Click for larger version.
Made with GapiDraw.

Developers targetting Windows Mobile devices quickly realize two things:

  1. Compatibility Matters. If you want to release a software application for Windows Mobile today you want to make sure it works with most devices available. GapiDraw has been continuously developed over more than seven years, and has been tested on literally every Windows Mobile device ever produced.
  2. Performance Matters. Today there are just a few Windows Mobile devices that support hardware accelerated graphics. This means that you have to dig deep into the ARM CPU core to take advantage of features such as cache optimizations, precaching, memory bandwidth optimizations and byte alignments for maximum graphics performance. The technologies built into GapiDraw are so advanced that they have formed the basis for a complete Ph.D thesis and numerous M.Sc graduations, and we have made sure that the graphic routines work well on all Windows Mobile devices on the market!

Using GapiDraw we can help you achieve maximum compatibility and high graphics performance using a stable and production proven software platform!

  "We spent several months early on testing the available graphics APIs, as well as evaluating the development of our own in-house API, finally deciding that GapiDraw offered the most potential for a long-term solution."
G. R. Moore, Pocket PC Studios


When you build applications with GapiDraw you do not have to consider platform-specific details such as input management, interfacing with GAPI, RAWFRAMEBUFFER or DirectDraw, or interacting with the operating system to handle display rotations and incoming phonecalls. GapiDraw provides two simple to use interfaces that manage these tasks automatically:

  • The GapiDraw class library
  • The GapiApplication framework


Using GapiDraw and GapiApplication together you now have a solid, reliable and high performance platform upon which you can build your applications. GapiDraw will automatically choose the right graphics adapter based on the device and operating system (including but not limited to GAPI, RAWFRAMEBUFFER and DirectDraw), and GapiDraw will also interact with the operating system and let your application know when something important happens, such as when the user rotates the display by extending a built-in hardware keyboard.

You receive the full source code to GapiApplication with all GapiDraw distributions so you can modify and adapt the operating system interface as you see fit. GapiDraw can be purchased either as a closed source binary or as a full source code license, depending on your needs. It is our goal to help you achieve maximum productivity, focusing on content and design and letting us focus on device specific issues and performance tweaks!


GapiDraw versus DirectDraw

GapiDraw is not a replacement for DirectDraw, it is a complement to it.

Bubbles for HTC Touch
Click for larger version.
Made with GapiDraw.

If you plan to use DirectDraw on mobile devices, you should be aware that there are only few devices that support hardware acceleration through DirectDraw. This means that you cannot use the blitter functions provided through DirectDraw since they will be too slow on the vast majority of Windows Mobile units. This also means that you cannot easily rotate the display, since the rotation is run in emulated mode and is very slow.

GapiDraw complements DirectDraw as follows:

  • If the device has hardware accelerated DirectDraw graphics, GapiDraw will take full advantage of this. The GapiDraw documentation clearly marks the functions that are hardware accelerated.
  • If the device does not have hardware accelerated graphics, but supports DirectDraw, GapiDraw will only use DirectDraw for the final blit to the display. This ensures maximum compatibility and conformance on newer devices. GapiDraw will use its own optimized rotation algorithm that does not add any performance overhead when the display is rotated and will always blit 1:1 with DirectDraw from the backbuffer to the display.
  • If the device does not support either hardware accelerated graphics or DirectDraw, GapiDraw will use either the Microsoft GAPI or the Microsoft GETRAWFRAMEBUFFER methods for graphics access.

GapiDraw also provides numerous features not provided by DirectDraw, such as:

  • Rotation of the display without performance loss
  • Alpha blended graphics
  • Bitmapped font drawing
  • Gradients, anti-aliased lines, and rectangles
  • Blitter effects such as hue and saturation
  • Blitter operations such as rotation and scale
  • And much more, please see the feature list for details

As you can see, GapiDraw is the perfect complement to DirectDraw, providing compatibility with all Windows Mobile devices on the market (from Pocket PC 2003 and later) as well as providing extensive features not provided by DirectDraw.


GapiDraw versus Open GL ES

Today there are unsupported and undocumented versions of Open GL ES shipped with some of the newer Windows Mobile devices. Using Open GL ES on these devices will not only limit your market share for your application, but you will also risk that your application breaks on the next software update to the device.

As soon as there is a publicly available and supported Open GL ES API for Windows Mobile devices we plan to integrate support for it in GapiDraw. Until then we strongly recommend that you use the current standards such as DirectDraw or GapiDraw for Windows Mobile development.


GapiDraw versus writing it yourself

Dirk Spanner
for the Nokia NGage.
Click for larger version.
Made with GapiDraw.

Many developers are tempted to spend time to implement their own graphics library for mobile devices. It is important hower to know that It takes much time to develop such a library if you want very high performance and very high conformance of your library. GapiDraw has been tweaked and adjusted since 2002 when EverQuest for the Pocket PC was released by Sony Online Entertainment, and we believe we have the most stable and highest performing Windows Mobile graphics platform on the market today.

If you find optimizing 2D raster graphics fun, then by all means go ahead and put something together! On the other hand, if you instead would like to produce an advanced application then we would really like to at least recommend that you download and have a brief look at GapiDraw! Remember that you can purchase the source code if you want to know how we implemented it!


Copyright © 2004-2010 Develant Technologies. All rights reserved. Reproduction or copying of images prohibited.