Hi,
As you are probably aware of, there are new PocketPC devices available on the market with built in graphics acceleration. It is not uncommon to reason "as soon as DirectDraw becomes available, why should anyone want to use GapiDraw?" I will try to outline some of these reasons below.
(1) The availability of DirectDraw does not make it any easier to write games than with the current availability of GAPI (gx.dll). On the contrary, DirectDraw introduces issues such as lost surfaces and COM interface programming. DirectDraw is a bare bones blit library, nothing more. Several of its features are also poorly supported by current hardware manufacturers (such as masked stretch blit for example, which is unsupported by NVidia).
(2) GapiDraw will support hardware surfaces in an upcoming release. It will be implemented as a simple flag in the call to CreateSurface. To check if a surface is stored in video memory or not, a surface flag will be set. Since the interface of GapiDraw (Blt and BltFast) is identical to DirectDraw, GapiDraw will use the hardware versions of Blt and BltFast (if available) for maximum performance.
(3) If you build your game using GapiDraw today, your game will automatically be accelerated by the hardware blitter as soon as support for it is available from either Microsoft or the hardware provider.
(4) Since DirectDraw only contains some of the Blt and BltFast operations offered by GapiDraw, all other features such as creating surfaces from BMP, JPG, GIF and PNG, emulator support, CGapiApplication, Bitmapped fonts (with and without kerning), Surface intersections, Collision masks, High performance timers, Animated mouse cursors, Animated alpha blends, Surface tint, Surface colorization, Rotozoom are not available and would have to be implemented as well. If you use GapiDraw, most of these functions (such as bitmapped fonts) will be fully accelerated by DirectDraw once hardware support is available.
(5) If you build your game using GapiDraw today, not only will it be fully accelerated by the new hardware blitters, but it will also be one of the fastest on devices without the proper graphics hardware (such as all 12-bit and 16-bit Pocket PCs on the market today). The game will also work in both accelerated windowed and full screen mode on Windows 98/ME, 2000, and XP.
To summarize: a possible introduction of DirectDraw for Pocket PCs will only make GapiDraw even faster on those devices that support it. The forthcoming introduction of hardware surface support on Stationary PCs as well makes it possible to build really advanced 2D games such as DiabloII with GapiDraw.
/Johan