For a long time the most common way to get direct access to a Windows Mobile device’s framebuffer (i.e. pointer to the screen) was to use the GAPI (Game API) – Microsoft’s helper API for direct screen access and direct hardware input. Many mobile games that needed fast screen blitting utilized this API (most notably the DOOM port for Pocket PC). Unfortunately Microsoft has recently deemed the graphics portions of GAPI to be obsolete (the hardware input portions are not obsolete yet).
The announcement came from Microsoft about one and a half months ago. Fortunately, they’ve replaced it with DirectDraw and Direct3D Mobile. Here are a couple links you’ll find useful:
So far I’ve played around a little bit with DirectDraw on my Pocket PC doing some simple 2D graphics. It was quite easy to start plotting pixels and drawing things in full screen mode. I used Visual Studio 2005, Windows Mobile SDK 6 Professional, and the default Win32 Smart Device project. Here’s the code:
This is one area where mobile DirectX beats OpenGL ES, in my opinion. I’m always able to write OpenGL applications faster and with much less code than DirectX, but from what I’ve seen here, DirectX is the better way to go if you’re doing 2D.
-Greg Dolley
*Get new posts automatically! Subscribe via RSS here . Want email updates instead? Click here.