About the release
GapiDraw 4.0 represents a major milestone for us. We have continuously been developing and improving GapiDraw since 2002, and this is our single largest update yet.
A year ago we announced that we had dropped future development for the Symbian platform to exclusively focus on Windows Mobile devices. Today we believe this was the right thing to do. Focusing on one platform has made it possible for us to add numerous exciting features to GapiDraw, and it will also enable us to continue expanding the platform for these devices in an unprecedented way. We have many features in development for GapiDraw, and we plan to keep supporting the platform for many years still to come.
Below we have chosen to highlight three new features in GapiDraw 4.0. For the complete list of new features please refer to the column to the right.
We have been working on DirectDraw support for Windows Mobile devices for almost two years now, and we finally felt that it was solid enough to release it. Currently there are numerous variations in Windows Mobile graphics drivers, where some devices support the now deprecated GAPI library, some devices have to be used with GETRAWFRAMEBUFFER, and some only responds to DirectDraw. We support all these standards and more!
Our Windows Mobile implementation of DirectDraw is based on our robust and production proven DirectDraw implementation for stationary PCs, and fully supports hardware acceleration on devices that provide it.
This feature called "Quartersize display" is something we thought up when we were developing a game of our own a few months ago. Our main issue was that all our graphics looked too small when run on one of these new 800x480 resolution displays, and we didn't really have the time to create all new graphics that were four times the size. So we added a new feature to GapiDraw called Quartersize display.
To the left: Quarter size display, to the right: Full resolution display
Click on the images for a full size version
What Quartersize display does is that it checks the resolution of your display. If either the width or the height of the display is larger than 320 pixels, GapiDraw will automatically define a backbuffer that is half the width and half the height of the display. So on a 800x480 pixel display the backbuffer will be 400x240 pixels! GapiDraw will then use a very high performance cache optimized blit scaler to stretch the quarter sized backbuffer to full size on the display.
Windowed mode support
With the introduction of full DirectDraw support in GapiDraw 4.0 it is now possible to run GapiDraw applications in windowed mode. This way your application can run at 30FPS or higher in a window, and the user can still switch programs or even use the SIP for application input. We have also added a fullscreen toggle switch, so that you can toggle between windowed and fullscreen mode at any time.
The new Breakout tutorial running in windowed mode.
GapiDraw will also of course detect if the display is rotated e.g. when a keyboard is extended and will notify your application accordingly.
The new GapiDraw 4.0 tutorial: Breakout!
New features in GapiDraw 4.0
DirectDraw support. GapiDraw will now use DirectDraw instead of GAPI or GETRAWFRAMEBUFFER to access the display on Windows Mobile 5.0 devices and later. Switching to DirectDraw means that GapiDraw applications can take advantage of hardware accelerated graphics and run in windowed mode, at the cost of slightly lower performance on devices without hardware acceleration.
Hardware-accelerated graphics. GapiDraw will now detect and use DirectDraw hardware acceleration on Windows Mobile devices if available. Functions supporting hardware accelerated graphics are marked in the documentation.
Windowed mode support. You can now run GapiDraw applications at high performance in windowed mode using DirectDraw on Windows Mobile 5.0 devices and later. In windowed mode you can take advantage of the SIP input panel to allow the user to enter text data.
Fullscreen toggle. You can now seamlessly switch between windowed mode and fullscreen mode on Windows Mobile 5.0 devices and later.
QuarterSize display. If you use the new display flag GDDISPLAY_QUARTERSIZE, GapiDraw will use a backbuffer that is half the width and half the height of the display, if either the width or the height of the display is greater than 320 pixels. This is a great option for developing and running mobile games on newer mobile devices with display resolutions of 800x480 pixels and more (in this particular example the backbuffer would be sized to 400x240 or 240x400 depending on display orientation).
GradientRect. GapiDraw 4.0 introduces an optimized gradient fill operation with support for opacity. GradientRect can draw top-to-bottom, bottom-to-top, left-to-right, and right-to-left, and prerenders the entire gradient in two directions for very fast performance.
Performance improvements. GapiDraw 4.0 adds StrongARM and XScale precaching (pre-reading four cache lines simultaneously) to BltFast and AlphaBltFast for important performance improvements. GapiDraw 4.0 also has improved performance on stationary PCs in windowed mode and much faster GDI surface locking.
Documentation improvements. All documentation was reviewed and much of it was rewritten. A new and easy to follow "Getting Started with GapiDraw" tutorial was added. Click here for the new and updated documentation.
New advanced tutorial: Breakout. Learn how to use GapiDraw to create a complete mobile game using the easy to follow tutorial "Breakout". You will find Breakout in the samples folder.
Improved Visual Studio 2008 support. All samples now include ready to run projects for Visual Studio 2008 mobile and stationary environments.
There were some changes introduced to the SDK as well, and you will find these details in the release notes.
Users of GapiDraw 3.5 and later can upgrade to GapiDraw 4.0 for 50% of the current price of GapiDraw 4.0. If you want to purchase an upgrade to GapiDraw 4.0 please contact us to send us proof of purchase.