Just wanted to let you all know that I'm putting the finishing touches on v0.7.0, and I expect to have it out to you all in a day or two (certainly no later than the weekend).
It has actually turned into a much more substantial release than I first intended, but I think what's in it will make many of you happy. Here is a list thus far (and I actually expect this to be the final list... the only thing not completed is the last item)...
+ Added "desktopZoom" attribute to m_config structure. This allows you to zoom the window size to any multiple on a desktop PC. You CAN use this on a PocketPC device as well, it won't bomb or anything, but it's pretty much pointless there, so generally you should simply not set any value at all, which will zoom to 1x, a 240x320 window as usual in other words. Setting it to zero or one does the same thing. Any other value will simply multiply the width and height by that amount. So, if you do m_config.desktopZoom = 2; in your Init method, you will get a window that is 480x640, = 3 would give you 720x960, etc.
+ Built lib files are now included with the PF distribution. I'm not sure if they were prior to 0.6.1, but they weren't in that release, and they probably should be, if for no other reason than convenience.
+ Added sample "hekkus" to show how to hook into that sound library without needing to use PocketFrogPlus (PF development can now continue independant of Hekkus!)
+ Added two methods to Game class: void GameSuspend() and void GameResume(). These are called, as you would expect when the application is suspended (i.e., low battery warning message) and resumed (i.e., message is dismissed) accordingly. These are needed to properly hook into sound libraries such as Hekkus. Override them and do whatever you please with them. See the Hekkus sample for usage example.
+ Added Rasterizer::FillPoly to draw filled polygons. Pass it (Point[], int pointCount, Pixel). The method only handles convex polygons and polygons that are vertically concave, that is, a polygon cannot have more than two edge points on the same horizontal line. Thanks to Andreas Hedström for optimizing and improving my original code for this.
+ Added Rasterizer::BlitRotatedStretch to draw surfaces that are both stretched and rotated at the same time. Pass it (int destx, int desty, float angle, const Surface* source, int stretch_xsize, int stretch_ysize, Surface* stretch_surface, const Rect* src_rect). Note that the stretch_surface MUST be created with the dimensions stretch_xsize and stretch_ysize (see SuperSample for usage example). Note that you SHOULD NOT delete this surface yourself, it is done by the function. Note in the SuperSample example that it is created locally in the method call. I suggest only doing it that way so you don't forget. Thanks to Andreas Hedström for this implementation.
- Removed all sample projects from the "Make" workspace.
! Fixed a bug in the VGADrawText function that caused the X location to be ignored in all cases. You should now be able to position text anywhere on the screen. At the same time, fixed an compatibility between the desktop and PPC builds (it wouldn't compile on one or the other depending on how it was coded, now it works fine on both).
! Fixed some errors that would keep PF from compiling on Win32 (I had never done that in the prior version so I didn't see the errors). Also made similar changes to the samples so they will compile when targeted to Win32, so everything should now compile and run properly on a desktop as well as a PocketPC device.
+ A sample app by Damian Ancukiewicz to show how to use pixel shaders. Included are three useful shaders: greyscale shader, fade shader and an 8-bit shader.
+ Frame rate limiting. Set the value of m_config.frameRate to the maximum rate you want your app to run at, and PF will do it's best to fulfill your wishes. Not setting anything results in maximum frame rate, as PF does now.
Any comments before release are of course welcome.