Since 2.1.5

startTimer/stopTimer have been added as a way to keep a constant framerate. Just tell it how often you want the timer to go off and it will generate a timer event every interval. You can look at the number of times the timer went off with getTimerCount or recieve each one with getTimerEvent.

A number of bugs have been fixed, including an off-by-one error with glut (causing the strange line at the top of the window sometimes).

isAutoPageFlipEnabled was added .

Some other minor bugs were fixed, but let us know if anything seems amiss.

Functions to allow you to reposition, resize and retitle windows were added. See resize(), setPosition() and setTitle().

Since 2.1.4

The FullScreenWindow class provides a more sensible way to construct a full-screen window.

When writing a game you will probably find it much easier to use functions such as isKeyDown, isButtonDown and isModifierDown. Read the documentation to see how to use them and what other new functions appeared with them.

Since 2.1.2

Full screen mode can be acheived by passing an additional boolean to the Window constructor:

Window myWindow(640, 480, "hi", true);

And myWindow will be full screen. "false" instead of "true" will make the window normal size. Images work as before:

Image scslogo("scslogo.png",Image::PNG);

But you can also grab a portion of that image out and use it as an image (this is very useful for doing sprite animations -- one image can have the different poses and you grab out an array with a series of Image objects, each one representing a different pose):

Image cutout = scslogo.subImage(0,30,40,42);

\This makes an Image object called cutout that's 40x42 starting at 0,30 in scslogo. You can use cutout as if you loaded it from a file.

Scaling and rotating images works using Transform objects. Consider the following calls to drawImage:

myWindow.drawImage(cutout,x,y,Transform(i));
myWindow.drawImage(cutout,x,y,Transform(0.5,2));
myWindow.drawImage(cutout,x,y,Transform(i,-1,1));
The first call draws the cutout image at (x,y) rotated i degrees. The second call draws the same image, but scaled by 1/2 along the x dimension and by 2 along the y dimension (but not rotated). The third call rotates by i degrees, scales by -1 along the x dimension (effectively flipping the image) and by 1 along the y dimension. Note that there is some abuse of notation here, 1 parameter to Transform is a rotate, 2 is a scale and 3 is (rotation, scale_x, scale_y).

There are also some built in fonts so that you don't have to have a font file to use fonts:

Font myFont(Font::ROMAN, 14);

The built in fonts Font::ROMAN and Font::MONO_ROMAN can be used at any size. Font::HELVETICA must be used at one of 10, 12 or 18 and Font::TIMES must be used at 10 or 24. You can still use truetype font files if you are using a PC.

These are all the latest features that have been added directly as a result of user feature requests, so keep the input coming! =)