# This is a list of changes in pygame's history.
# CVS tag names are placed before the date
# BREAK = change breaks existing code
# BUG = fixed a bug that was (or could have been) crashing
[SVN 2295] June 1, 2009
Added abort() and close() to midi Output/Input. Only close on __dealloc__
[SVN 2290] May 31, 2009
let Surface methods accept and return Color instances
[SVN 2268] May 27, 2009
updated docs for cursors.load_xbm, thanks Saul Spatz, and Thomas Ibbotson
[SVN 2259] May 26, 2009
[BUG] surflock.c PySurface_LockBy was leaking weakrefs.
Thanks Tom Rothamel for the patch!
[SVN 2118] May 12, 2009
[BUG] Fixed bug in font.c where pygame.font.Font returned the wrong
exception type and message when a font file was not found.
Thanks Bo Jangeborg.
[SVN 2114] May 10, 2009
Add <module>_tags.py modules to pygame.tests. This is an alternative
module level __tags__ globals in the unit test <module>_test.py files
themselves. The __tags__ global is placed in the corresponding
<module>_tags.py file instead. This means test modules can be skipped
by the pygame.tests.go test framework without actually loading the
test module and running possibly problematic code. It also means
the test framework can report on which test modules were skipped
[SVN 2104] May 9, 2009
[BUG] pygame.transform.threshold behaved incorrectly when passed a
Python long for the threshold argument.
[SVN 2112] May 9, 2009
Pygame unit test framework now works with Python 3.1. This includes the
[SVN 2080] May 7, 2009
Increase timeout limit to 2 min. for run_tests.py subprocesses.
This allows surface_test.py more time to complete (timed out on
automated build sites Mac.)
[SVN 2078] May 7, 2009
All standard Pygame extension modules compile and run with Python 3.
For a Python 3 build setup.py skips unsupported modules.
[SVN 2075] May 6, 2009
For OS X Skip scrap test in base_test.py which was causing some unit
tests to fail. scrap not properly supported on OS X anyway.
[SVN 2047] May 1, 2009
Merge python3 branch back into trunk. This allows a minimal Pygame
system to be built for Python 3. It also improves error checking
in module init functions.
[SVN 2040] Apr 24, 2009
SDL_gfx module officially added to Pygame.
[BUG] SDL_gfx used WIN32 macro instead of _WIN32 to detected Windows.
[SVN 2017] Apr 13, 2009
Add equality/inequality Event comparison as per mailing list request.
[SVN 1953] Feb 22, 2009
Add 8 bit-per-pixel support to Surface.blit blends.
[SVN 1952] Feb 22, 2009
Added Surface.scroll method along with the scroll.py example.
[SVN 1947] Feb 21, 2009
Made colorkey and blanket alpha blits handle a surface blit to self.
This addresses Bugzilla bug 19.
[SVN 1937] Feb 19, 2009
Add self-blit capacity to Pygame surfaces.
[SVN 1934] Feb 18, 2009
Surface raises a ValueError if the mask argument is rejected by SDL.
Before this the mangled, and invalid, SDL value was used.
[SVN 1924] Feb 12, 2009
Add Rect.copy method as per Bugzilla feature request 25.
[SVN 1923] Feb 11, 2009
[BUG] Fix per-pixel-alpha unpacking in surface fill-blends.
[SVN 1922] Feb 11, 2009
[BUG] Fix 24 bit-per-pixel fill-blends.
[SVN 1920] Feb 11, 2009
The Pygame documents and examples are now part of the Pygame package,
directories docs and examples respectively.
[SVN 1916] Feb 8, 2009
[BUG] Fix segmentation fault with register_quit, Bugzilla bug 20.
[SVN 1912] Feb 6, 2009
[BUG] Extension modules failed to raise an error when required modules
failed to import, as can happen with an incomplete py2exe/py2app
executable. This would later lead to mysterious segfaults. Extension
modules now forward import errors in the init function.
[SVN 1903] Feb 3, 2009
[BUG] _numpysurfarray.array_alpha() when a per-pixel alpha surface also
has blanket alpha.
[SVN 1893] Jan 29, 2009
[BUG] Documentation infers that mixer.init and mixer.pre_init have keyword
arguments. Added as per Bugzilla issue 6.
[BUG] Documentation states that mixer buffer sizes must be a power of 2.
New default buffer size is 4096. This was the implicit size anyway as
buffer size values were rounded up the the nearest power of 2.
[SVN 1889] Jan 29, 2009
sound_array_demos.py now uses either NumPy or Numeric.
[SVN 1881] Jan 26, 2009
For 16 bit surfaces make surfarray.array_alpha values consistent with those
returned by Surface.unmap_rgb.
[SVN 1859] Jan 22, 2009
NumPy now preferred over Numeric by surfarray and sndarray.
[SVN 1852] Jan 22, 2009
[BUG] Fix Bugzilla bug 24 where surfarray.blit_array fails with a
24 bit surface. A new blit_array, using the array structure interface,
was added to a new _arraysurfarray extension module.
[SVN 1846] Jan 18, 2009
The Pygame examples is now a Pygame subpackage. Example programs can be
imported as modules and run by their main functions. The package
documentation is now part of the Pygame module docs.
[SVN 1839] Jan 14, 2009
Color objects now support equality/inequality comparison with other
Color objects and color tuples.
[SVN 1820] Jan 11, 2009
Pygame documents now installed as part of the pygame package directory.
[SVN 1814] Jan 09, 2009
Pygame unit test suite is now the pygame.tests package. For Pygame
development the unit tests still run from test in the installation
directory without conflicts.
[SVN 1803] Jan 6, 2009
Add midi.py keyboard example.
[SVN 1794] Jan 3, 2009
Add scripts to build Python 2.6/3.0 Windows dependencies linked to msvcr90.
Dec 05, 2008
exposed mask C API from Michael George. Thanks!
Aug 30, 2008
[BUG] Fixed CREATE_PIXEL macro's use of Aloss
which was making surface.fill with surfaces with no alpha go green
Jul 18, 2008
Added Surface.set_masks and .set_shifts useful for using data in
b,g,r,a mode... and other fun hacks.
Jul 14, 2008
[BUG] Fixed bug with transform.threshold() not honoring third surface
Updated transform.threshold() docs Thanks Nirav Patel
Jul 10, 2008
Added patch for filelikes in mixer.music.load thanks Forrest Voight!
Jul 8, 2008
run_tests.py improved with --help and running stuff in subprocesses.
Jun 25, 2008
Added many extra empty test stubs for untested things. Thanks Nicholas!
Test runner that works with subprocess and threads to isolate tests.
So that if a crash happens in one test the other tests still run.
[BUG] Added a fix for rotate on multiples of 90.0000001-90.99999 degrees.
Thanks Charlie Nolan, and Marcus!
Jun 21, 2008
Added BLEND_RGBA_* special flags for blit, and fill.
Jun 16, 2008
Reworked locking code. Locks are now more strict and can only be
removed by the object(s), that caused them.
New Surface.get_locks() method, which returns the currently existing
[BUG] Fixed Surface.get_locked() bug for Surfaces which do not
require locking, but have third-party locks attached.
Jun 13, 2008
[BUG] Fixed bug with mixer.get_init() Thanks Frankie Robertson!
[BUG] Fixed long alpha overflow bug in Surface.set_alpha().
Jun 9, 2008
[BUG] Fixed locking and reference count leaks in Numeric surfarray
May 31, 2008
Updated sprite documentation - mainly for new stuff added in pygame 1.8.0
May 24, 2008
New Color class for color management.
Apr 30, 2008
updates to the sprite.py collision functions that update them to match
the modules coding style, include appropriate comments, and are
about 20% faster. It also includes a collide_circle_ratio function
for completeness, and perhaps most importantly, fixes a bug in
colide_mask which kept it from working correctly. Also added unittests
for the collision functions. Thanks John Krukoff!
[BUG] sound crackles on windows; restored chunk size
calculation to pre 1143
Added \#!/usr/bin/env python to the top of examples that didn't have it.
Apr 13, 2008
[BUG] Fixed pygame.surfarray.pixels3d() for 24bpp surfaces using numpy.
Thanks Lorenz Quack!
Apr 12, 2008
[BUG] Fixed png saving, and saving jpeg with capital letter extensions
Thanks Nick Irvine!
Apr 11, 2008
New PixelArray.compare() method to compare two PixelArrays.
Apr 8, 2008
[BUG] Fixed pygame.draw.aaline() for cases in which only a single point
has to be drawn.
Apr 4, 2008
New PixelArray.replace() and PixelArray.extract() methods to quickly
replace or extract a certain color.
Apr 3, 2008
Added iter support to PixelArray.
Apr 2, 2008
[BUG] Fixed mask settings for 8-bit surfaces created by
[BUG] Fixed integer color value assignment bound checking in PixelArray.
Mar 30, 2008
Added subscript support to PixelArray and PixelArray.make_surface()
to create a new surface from the PixelArray view.
Fixed mask namespace pollution and docs.
Mar 18, 2008
Mac OSX binary now has movie module working.
Mar 16, 2008
the play functions of mixer.Channel and mixer.Sound both now take keyword
arguments, and accept a fade_ms argument that makes the sound fade in
Mar 9, 2008
pygame.display.set_mode() will now respect the screen resolution settings
for the width or height set to 0 as supported by SDL >= 1.2.10.
Thanks Lorenz Quack!
Mar 5, 2008
[BUG] Stopped releasing GIL on png, and jpeg saving functions because
they do not seem to be thread safe.
[BUG] A work around for 8 bit samples being stereo reversed with SDL_mixer.
Also check the return value of Mix_SetPanning, and raise an
error on volume errors.
[BUG] Changed default chunk size for pygame.mixer to 1024*3. Which is
the magic number which stops scratchy sounds on most systems.
However it does make sounds a bit laggier... it's best provided as
a config item for users.
Updated pygame.display.update() to release the GIL whilst doing things,
so other threads can do things whilst it's updating the screen.
Some comments to help Mac OSX people installing, and compiling pygame.
About bdist_mpkg in setup, and also fixed an exception message
to be nicer about requiring pyobjc.
Mar 3, 2008
[BUG] Fixed up pygame.mask.from_surface, got color key, and perpixel alpha
Also added better test to the mask test.
Also it wasn't testing pygame.mask.from_surface at all!
Added pygame.sprite.collide_mask to join the mask_* collision functions.
Started adding test for pygame.sprite.spritecollide.
Feb 19, 2008
Added Surface.get_bounding_rect() method, which returns the smallest
rect for the surface, that contains visible (non-transparent) data.
Feb 14, 2008
Updated constants GL_SWAP_CONTROL,GL_ACCELERATED_VISUAL,BUTTON_X1,BUTTON_X2
Added pygame.key.get_repeat to see how holding keys down repeats. This is
the sister function of pygame.ket.set_repeat.
MacOSX, and Windows binaries now use latest SDL 1.2.13
Feb 11, 2008
An example of using pygame with no windowing system. Useful for webserver
scripts, or for little utilities.
Updated mac_scrap to pass some tests, and raise NotImplementedError
Further Windows build updates:
For MinGW/MSYS the build process now finds the MSYS and MinGW
directories automatically. gcc links to msvcr71.dll without
requiring changes to the gcc specs file. This makes the build
process GCC Version 4 ready. By default all DLLs are Win32 GUI,
but can be console. The build progams will run from either the
Windows or MSYS terminal.
Fixed a bug where DLLs were not installed in the package directory.
For Windows, everything now goes into the package directory.
build_deps.py renamed to msys_build_deps.py to avoid confusion.
Jan 26, 2008
pygame.sndarray noew can change between Numeric and numpy using the
new methods pygame.sndarray.use_arraytype () and
Jan 24, 2008
Updated the configuration and build process under Windows. In
config_msys.py and config.py os.popen is replaced with the newer
subprocess.Popen so the MSYS will run. Calls to raw_input now
show the prompt on an MSYS console. In an MSYS build paths
written to Setup are now Windows paths for distutils. The hard
coded DLL file paths have been removed from setup.py. It now
gets the paths from Setup. Consequently, setup.py is now VC/MinGW
Added build_deps.py, an all-in-one dependency builder for
Windows. Requires MinGW and MSYS.
Jan 8, 2008
pygame.surfarray now can change between Numeric and numpy using the
new methods pygame.surfarray.use_arraytype () and
Jan 4, 2008
Removed Numeric compile time dependency.
Added numpy surface array support.
Dec 31, 2007
New method pygame.get_sdl_byteorder () to get the SDL byte order.
Dec 15, 2007
Mask can now get bounding rects of set bits.
pygame.transform can find edges in an image, get the average surface
of many surfaces and also threshold an image by color.
Sep 1, 2007
Added get_buffer() methods to Surface, and Sound - which return a new
BufferProxy - which is a buffer interface only class. Thanks Marcus!
Aug 23, 2007
pygame.image.tostring changes from Brian Fisher.
RGBA_PREMULT & ARGB_PREMULT type to image.tostring (a very
nice thing for getting images into OpenGL)
Aug 22, 2007
PixelArray from Marcus. It's going to be a replacement for surfarray.
[BUG] Fixed some bugs in Surface with SRCALPHA and input validation.
Thanks Lenard Lindstrom and Brian Fisher.
Aug 15, 2007
The sprite module has had some big changes from DR0ID. It now has a
LayeredUpdates, and LayeredDirty groups. For using layers when
rendering the sprites. LayeredDirty is an alternative to
RenderUpdates that automatically finds the best display method
(either full screen updates, or dirty rect updates). It's faster
if you have sprites that don't move. Thanks DR0ID!
Added pygame.mask.from_surface which can make a Mask object from
a surface. It's 128x faster than the python version!
pygame.movie bug fix. Thanks Lenard Lindstrom!
Jun 25, 2007
Removed QNX support from scrap module. Thanks Marcus!
Added smoothscale(with MMX!) function from Richard Goedeken
Jun 27, 2007
Fixes from Marcus for ref counting bugs.
Also using METH_NOARGS for functions with no arguments.
Which should make some functions slightly faster.
Thanks Marcus, and thanks Campbell Barton for spotting them.
May 30, 2007
Fixed some documentation. mask, scrap, font modules.
Fixed the mask.set_at get_at functions to raise a nice exception.
surface.fill() now takes the same BLEND_ADD BLEND_SUB etc flags that
surface.blit() takes. Which makes fade to white, and fade to black
type operates simple and fast. Thanks Marcus!!
Added the GL_SWAP_CONTROL constant from SDL. Thanks Eyal Lotem!
Added the new blitters from Marcus. These speed up the blend functions
and the alpha blit function.
Added a -warnings flag to setup.py for extra warnings with gcc.
A fix from Marcus for the scrap module in X11.
May 9, 2007
Windows image copy/paste is working for scrap.
Adding bitmask code from Ulf Ekstr�m - for pixelperfect collision.
Still need to get unittest, documentation and some more methods added.
There's a unittest with some problems checked in.
May 2, 2007
[BUG] fromstring,tostring work for alpha. Thanks Brian Fisher.
[BUG] Surf.set_clip(None) works correctly. Thanks Diego Essaya.
Scrap changes from Marcus so windows/osx compile.
Added scancode attribute to keyboard events. Thanks Quentin Smith.
[BUG] movie_set_display hangs on movie file-like object. Thanks Martin.
Apr 26, 2007
Some code cleanups from Marcus von Appen. min->MIN, indentation, other.
A rewritten scrap module. Hasn't been tested on osx/windows.
Dec 15, 2006
Some config changes to make scrap compile correctly on freebsd and debian.
Nov 27, 2006
Fixes scrap, image, overlay, compiling on windows. Thanks John Popplewell!
Allowed threads within the transform module. Releasing GIL around C stuff.
Nov 5, 2006
Fix for SysFont infinite loop bug. Thanks Regis Desgroppes!
Compilation fix on MacOSX. Thanks Emmanuel Hainry!
Nov 4, 2006
Jun 16, 2006
Allowed passing in the destination surface to the transform.scale and
transform.scale2x. This is faster if reusing the surface.
Jun 15, 2006
[BUG] Font fix for empty string causing segfault. Added unittest.
Jun 10, 2006
64bit compile fixes for Fedora from Christopher Stone
Jun 8, 2006
Move to subversion instead of cvs.
May 28, 2006
Added saving surfaces as a .jpg or .jpeg file. Works if imageext is there.
May 27, 2006
Added saving surfaces as a .png file. Works if imageext is there.
Saves as 24 bit RGB or as 32bit RGBA pngs depending on the surface.
May 20, 2006
Documentation updates merged in from some doc comments on website.
[BUG] pygame.transform.* functions now retain SRCALPHA info after scaling.
Some new unittests for pygame.display.update, pygame.transform.scale.
May 18, 2006
Patch from Peter Nicolai to add the channel to the sound queued event.
April 25, 2006
Added some new blend modes to blit. Add,sub,mult,max,min.
[BUG] Fixed SRCALPHA blending. Thanks Lenard Lindstrom!
April 9, 2006
Added mac_scrap module for macintosh clipboard support.
April 8, 2006
Added scrap module for accessing the clipboard. As well as an example.
Added access to the XEvent structure on unix/X11 installs.
March 11, 2006
Fix for config_unix for x86_64 and SDL lib path. Thanks Matthew L Daniel.
[BUG]Fix for parent init in sprite.GroupSingle. Thanks Alexander Sashnov.
March 1, 2006
A cursors.py example from Kamilche. Thanks!
February 11, 2006
Changed the behaviour of Clock.tick to use SDL_Delay instead of a busy
loop. Added a tick_busy_loop which uses the old behaviour. This
is more consistent with what people think Clock.tick() will do.
That is, not use 100% cpu to get more accurate timing.
testsprite.py example, which is based off the testsprite.c in SDL
shows the performance of sprites, and is a good test.
Added gp2x package which contains some constants for the gp2x buttons.
This will be where gp2x specific functionality will live.
January 12, 2006
Endian patch for set_at() from Ivo Danihelka.
December 19, 2005
Updates for Overlay. Detect hardware accel and allow "redisplay".
November 7, 2005
Fix for sprite.AbstractGroup.has inf recursion bug. thanks Randy Kaelber.
Began work on a sprite unittest.
October 28, 2005
fix for do_set_icon when display not initialised. Thanks John Popplewell!
Added missing read_unix_fonts_cache function. Thanks again John Popplewell.
October 24, 2005
Add support for 64bit data types in surfarray.blit_array()
October 2, 2005
switch to the new reference documentation system
September 8, 2005
surface.array_colorkey now unlocks the surface after use[BUG].
September 1, 2005
music.queue() now raises exception if load fails.
August 15, 2005
Fix to make Chinese fonts work better on windows.
From retsyo AT eyou Dot com.
Fix for Channel.set_volume() to not use panning if seting overall volume.
Made setup put in missing files into the source distribution.
Fix for fastevents example on linux.
August 10, 2005
Fix for overlay.c to compile in windows.
Fixed some warnings for font, and rotozoom with gcc4.
Added an example for fastevents.
Fix for config_unix.py with wrong paths for /usr/local
July 28, 2005
Fix for sprite module[BUG]. fastevent module for faster sdl event processing.
March 7, 2005
sysfont patch, which checks two places for fonts on weird windows machines from Atul Varma.
pygame.get_sdl_version(), improved Mac OS X support from Bob Ippolito.
new sound_array.py example from Rene Dudfield based on ShreadWheats example.
August 8, 2004
cleanup aaline drawing, from Michael Urman
July 17, 2004
image.frombuffer() for lightning fast fromstring()'s
SysFont extra styles being applied incorrect
psuedo "configure" and "Makefile" for foolproof installs
draw.aaline now works with pixel alphas
July 16, 2004
mixer.set_num_channels() no longer crashes [BUG]
mixer.music.get_pos() properly tracks when paused
pygame.display.get_wm_info() added, gets a dictionary
Overlay object, from Dmitry Borisov
July 6, 2004
Sound object newstyle types
July 5, 2004
Add Bo Jangeborg's cursor compile with added 'xor'
Add Bo Jangeborg's system cursors as compileable strings
July 3, 2004
Newstyle fonts crashing with bad filenames [BUG]
June 28, 2004
Surface.set_clip(None) crashed [BUG]
Remove pygame's (now) redundant lock counting
June 27, 2004
Fix several negative or zero size problems [BUG]
draw.arc outside image crashed [BUG]
draw.arc artifacts cleaned
June 26, 2004
Surface.get_rect() accepts keyword args for assignment
transform.chop() added, from Matthias Spiller
June 25, 2004
Font becomes new style type, inheritable, weakrefable
June 22, 2004
Rect type updated, weakrefable
(warning, Rect attributes broken for now)
June 21, 2004
Surfaces now weakref'able
display surface protected from pygame.quit()
display and Surfaces protected from resolution <=0
June 19, 2004
Chad Lester's excellent work on sndarray
ffmpeg movie backend renamed to movieext, experimental
v1.6 movie module restored
May 1, 2004
updated sprite module, Joe Wresching
March 29, 2004
checkin movie current rewrite, still rough, libavcodec
February 24, 2004
no longer parachute SIGPIPE, like SDL 1.2.7
February 15, 2004
small cleanups to internal Sprite and Group
February 9, 2004
help protect int overflow
December 25, 2003
sprite groups are now iterators
SysFont better unix parsing
November 18, 2003
Remove legacy python code. Ver 2.2 is minimum
October 23, 2003
final updates for 1.6
October 15, 2003
Rects now stored with ints (not shorts)
October 2, 2003
Add ARGB support to fromstring and tostring
September 29, 2003
Replaced Objective C with PyObjC code for MacOS X
Fixed 1 pixel horizontal/vertical line draw
September 27, 2003
Fix reading from file file-like objects (thx Timothy Stranex)
September 21, 2003
Fix sysfont registry bug on winNT arch
September 18, 2003
Fix color problem when saving opengl screenshot
September 10, 2003
SysFont now accepts None like regular Font
August 10, 2003
fix JOYHAT_RIGHT input (thanks Latimerius)
system font names have punctuation removed
July 26, 2003
July 22, 2003
add GL_MULTISAMPLEBUFFERS and GL_MULTISAMPLESAMPLES
June 11, 2003
Surface.set_at() respects clip area
cleaned fill circle draw
June 8, 2003
add system font; SysFont,get_system_fonts,match_system_font
June 7, 2003
Font() no longer segfaults on bad filename [BUG]
add color module for simple color manipulations
June 6, 2003
set_palette_at() index 0 fix
draw.arc() (thanks Lalo Martins)
Rects are pickleable
May 12, 2003
Brett Calcott's quick fix for 'trunc' on visualc
May 10, 2003
fix Derek Simkowiak's find of problem alphas
March 10, 2003
add OPENGL support to image.tostring()
March 9, 2003
Bug in Clock.tick() was delaying double
load Font objects from any python file-like object
February 26, 2003
Sprite and Group now new-style classes
Februrary 12, 2003
fix immediate returns for first time.delay and time.wait
February 11, 2003
more OSX SDLmain.m patches from Andrew Straw
February 5, 2003
antialiased lines, from Jorge Gonzalez
allow Font.render() with empty string
February 2, 2003
refcount bug in Font.size [BUG]
December 5, 2002
tilerow stuff removed
December 2, 2002
November 14, 2002
fix unicode bugs in Font (thanks, hcyun)
November 12, 2002
AdvanceMAME Scale2X scaling now in transform.scale2x()
October 22, 2002
mixer can queue sounds and music
channels can send finished event for sounds
October 19, 2002
can free software surfaces without video initialized
added "x", "y", "w", and "h" attribs to Rect (like SDL)
RenderUpdates.draw() doesn't union nonoverlapping
October 16, 2002
fix crash with subsubsurface blits [BUG]
added Surface.get_offset() and get_abs_offset()
added Surface.get_parent() and get_abs_parent()
October 6, 2002
added event.clear() to efficiently clear the queue
October 1, 2002
sprite.RenderGroups wasn't clearing killed sprites after draw()
September 3, 2002
passing None as the end time to CD.play() plays to cd end
added pygame.vernum, a tuple of python version values
September 2, 2002
add Movie.render_frame, thanks James Mazer
cursors.load_xbm skips comments, thanks Herve
August 20, 2002
fix rectstyle arguments
August 15, 2002
Herv� Cauwelier's fix for xbm cursors without spaces
Auguest 14, 2002
switched to FSF's FreeSansBold default font
cleanup harmless void** typing
July 24, 2002
Ole Martin Bjoerndalen's CD.play fix
July 17, 2002
Michael Hudson's unicode cleanups
June 15, 2002
added get_time() and get_rawtime() to Clock
May 30, 2002
final updates for 1.5
May 28, 2002
changed default font to helmet bold
May 27, 2002
added smart class to handle missing modules
May 17, 2002
added display.set_gamma_ramp(). thx andrew
May 16, 2002
custom blitters to handle destination pixel alphas
fix recursive subsurfaces and subsurface blit returns
May 13, 2002
May 8, 2002
music.play() start time works
image.save() can save TGA images
cannot subsurface a subsurface [BREAK]
blits to subsurfaces are passed through
May 7, 2002
added the sndarray module
April 25, 2002
added gl_set_attribute(), gl_get_attribute()
April 16, 2002
mixer keeps a reference to playing Sound objects
channel.set_volume() can take 2 volumes for panning
music.play() can take a starting position for the song
April 14, 2002
bug when re-initializing pygame.display [BUG]
April 8, 2002
rectstyle now includes any object with a "rect" attrib
rects now have collidedict() and collidedictall()
March 27, 2002
fixes for windows music.get_pos() and windows config
March 23, 2002
big config.py update
music.get_pos() (thx Michael Urman)
March 20, 2002
sprite.spritecollideany() now works as described
March 4, 2002
sprite.RenderClear can accept a function as bgd
February 19, 2002
event.peek() returns next event [BREAK?]
Event objects have 'truth' operator
February 13, 2002
all draw primitives have a default width
February 11, 2002
Rect unionall() and unionall_ip() fixed
February 10, 2002
pygame.init() not required for proper cleanup [BUG]
CD.play() fixed for tracks above 0
February 8, 2002
Rect and Surface subclassable types
February 1, 2002
locking problem with 90 degree rotate [BUG]
set_icon overrides default icon
January 31, 2002
removed emberrasing debug printing
draw.rect does inside edge for bottomright
January 29, 2002
everything bumped for the 1.4 release
January 28, 2002
update SDL_rotozoom to 2.0.3
January 26, 2002
special cases for 90 degree transform.rotate()
OSX cleanups for commandline (thanks Bob)
January 23, 2002
transform.rotate() does alpha if image has alphaplane
transform.rotate() no longer "off by one" in the x axis
added CD.get_all() to get information for all tracks
CD.play() can now take an option start and end time
January 17, 2002
smarter importing code
default pygame icon for window
January 16, 2002
started implementing basic unit tests
several bug cleanups with Rects (thx unit tests)
January 14, 2002
display.update() boundaries fixed
January 11, 2002
Surface.set_clip() can take None to clear the clipping
January 7, 2002
January 6, 2002
Merge with bob's inital MacOSX changes
January 5, 2002
new and upgraded importing [BREAK?]
fixed numberhandling in set_alpha and set_colorkey
January 2, 2002
Group add/remove methods work
December 31, 2001
pygame parachute does tracebacks with python2.2
December 20, 2001
Surface.set_alpha() and set_colorkey() accept None
event.set_allowed() and set_blocked() accept None
December 17, 2001
small preps for the full 1.3 release
December 15, 2001
small changes to sprite before release
December 2, 2001
small protection for display Surfaces after display.quit()
December 1, 2001
made time.delay() more accurate [BREAK]
created time.wait() to work like old delay()
added time.Clock objects for framerate tracking
November 26, 2001
Surface.convert() doesn't segfault before pygame.init()
November 20, 2001
Surface.blit() protection for alpha->8bit relaxed
November 19, 2001
fixed image.fromstring() for "RGBA" mode
November 18, 2001
can stream python file-like objects to SDL threads
November 15, 2001
cleanups for transform.rotate
November 13, 2001
added sprite module
November 12, 2001
image.tostring() "RGBA" works with colorkey
November 3, 2001
filled shape drawing now clips properly [BUG]
Rect object correctly compare (==,<,>)
November 2, 2001
pygame.time.get_ticks() returns 0 before pygame.init()
October 22, 2001
small fix for filled ellipses/circles
September 27, 2001
drawing filled circles returns bounding rect
ellipses and circles drawn inside given area
mixer init can take chunksize
fix in clipped horizontal line drawing [BUG]
September 26, 2001
key.set_repeat() raises exception on error, smarter args
September 22, 2001
added Rect.clamp_ip, for inplace clamping
display.update(None) will update full screen
September 21, 2001
Surface.convert() respects the SRCALPHA flag when passing depth
September 1, 2001
fixed typo in pygame.cursor
Aug 30, 2001
added VIDEOEXPOSE event
Aug 29, 2001
changed initializations, to allow easier embedding
Aug 28, 2001
added circle and rect convenciences to pygame.draw
removed debug printing from draw.polygon
Aug 25, 2001
added looping, scaling, and audio to for Movies
Aug 15, 2001
added pygame.movie module with MPEG video playback
July 31, 2001
fixed mixer.music refcount
July 26, 2001
custom events work with event.peek() and event.get()
added event.get_blocked() function to query blocked types
July 23, 2001
music specifically halted when quitting (should not matter?)
mixer.get_init() now returns the initialized playback format
July 21, 2001
all events can be posted, not just USEREVENT
subsurfaces inherit colorkey and alpha settings
Jul 20, 2001
default font "finding" is smarter
Jul 17, 2001
added polygon() and ellipse() to pygame.draw
lines with width>2 are now correct (was one too small)
Jul 16, 2001
can work with software surfaces before pygame.init()
Surface.convert() now can take arguments like pygame.Surface()
pygame.display.set_icon() sets the windowmanager icon
Jul 15, 2001
fixed bad internal display reference counting [BUG]
Jul 14, 2001
still makes clean-ish exit if segfault in exit handling
Jul 10, 2001
image.tostring makes alpha from colorkey, if asking for RGBA
Jul 6, 2001
added python 1.5.2 compatability
June 25, 2001
horizontal transform.flip() was reading pixels off by one [BUG]
June 24, 2001
calling set_mode will change all references to the display surface
Jun 23, 2001
removed smooth underline font render protection
Jun 19, 2001
fixed botched image.save() function
Jun 15, 2001
new inplace Rect calls: move_ip, union_ip, etc
Jun 11, 2001
smarter locking with subsurfaces
added transform.rotozoom(), which uses builtin SDL_rotozoom
May 31, 2001
correctly handle unicode filenames
May 29, 2001
set display physical palette with display.set_palette()
added transform module (with rotate and scale)
May 26, 2001
code compiles with macos now
May 23, 2001
fixed line drawing of width 1
draw.lines() was broken with sections outside clip
May 22, 2001
added midleft, midright, midtop, and midbottom to Rect
added Rect.unionall() function to union a list of Rects
fixed problem in 16bit surfarrays
new image.tostring() and image.fromstring()
May 20, 2001
applied dave wallace's patch to fix memory freeing
May 17, 2001
a few small compile time warning cleanups
May 16, 2001
line drawing functions now use an optional width
May 15, 2001
image module is now builtin, but formats are optional
enhanced save function in image (handles opengl)
Surface.save is now depracated
May 14, 2001
smarter internal module handling
fixed blit() (broken on May 9th change)
May 10, 2001
USEREVENT events now pass through the queue
Event() may be called with keyword args and/or a dict
Font.render() won't render underlines while smoothing [BUG]
May 9, 2001
8bit subsurfaces inherit their parents colormap
blit keeps SDL from crashing with alpha onto 8bit
Apr 30, 2001
loading Sounds from python objects now works [BUG]
loading from python objects now thread safe [BUG]
Apr 19, 2001
applied Niki Spahiev's memory leak patch in event.c
removed minor memleak from each module's init
Apr 18, 2001
added opengl support (with example)
current music is free'd when mixer is quit
better thread sharing in various video calls
fixed GCC compiler error in constants.c
Apr 10, 2001
mixer now uses the requested sample format/size
Apr 08, 2001
properly free SDL objects on malloc errors
fixed rectangle cropping in pygame.display.update()
Apr 05, 2001
Everything set for the 1.0 release
Apr 04, 2001
cursors.load_xbm work on images without hotspots
Apr 03, 2001
swapped endian-ness for pixels_alpha()
Mar 29, 2001
fixed key.set_mods() (thanks rubysdl)
rework setup scripts for 1.0 release
relaxed sdl version checking
Mar 21, 2001
initial support for compiling on mac
fixed odd case with locking subsurfaces
Mar 20, 2001
font and mixer now properly auto quit()
Mar 19, 2001
Surfaces won't crash after display module is quit [BUG]
Mar 18, 2001
friendlier type casting in surfarray (for some compilers)
removed non-ANSI C code
Mar 17, 2001
pygame.Surface is smarter with SRCALPHA flag
fixed several small bugs in surfarray [BUG]
new surfarray example and tutorial
Mar 16, 2001
Fixed memory leak in Rect constructor
Fixed improper exception in display.update(with_4_args)
Feb 15, 2001
calling Sound.play() will make sure the channel
that gets selected has volume set to full
Feb 14, 2001
fixed Surface.set_colorkey() with no args [BUG]
Feb 13, 2001
fixed return rect from line drawing routines
small fix when drawing horizontal lines
Feb 12, 2001
added NOFRAME to pygame.constants
Feb 11, 2001
workaround python parsing error for pygame.time.delay(-1)
Feb 9, 2001
setting rectangle width/height/size changes the
right/bottom edges (instead of top/right) [BREAK]
Feb 6, 2001
fixed the music unpause() function
Jan 31, 2001
functions taking RGBA colors can also accept mapped ints
Jan 30, 2001
Jan 29, 2001
extremely revamped surface locking mechnisms
new Surface.subsurface for shared surfaces
Jan 25, 2001
added the draw module, with clipped line function
added alpha routines in surfarray module
more locking checks for surfarray
make extra sure all of SDL is shutdown properly
Jan 24, 2001
funcs that need locked surfaces will temporarily lock them
(Surface.set_at, Surface.get_at, surfarray.arrayXd)
Jan 23, 2001
display.update() no longer effects input Rects [BREAK]
Surface.fill() no longer effects input Rect [BREAK]
small memory leak in display.update() fixed
Jan 18, 2001
cursor.read_xbm() renamed to cursor.load_xbm() [BREAK]
Jan 17, 2001
documentation updated to include python modules too
Jan 16, 2001
cursors module beefed up
Jan 15, 2001
fix Surface.get_at() for 24bit surfaces
endian cleanups for surfarray
Jan 8, 2001
more warning cleanups
music-finished callback fixed
replaces SDL's parachute with smarter python version
Jan 6, 2001
added pygame.version module
Jan 6, 2001
Final cleanups for the new release
Jan 4, 2001
Surface.blit() allows for rects as dest position
surfarray cleanups and improvements
Dec 22, 2000
timer threads properly shutdown
Dec 14, 2000
display.set_mode pretending shorts are ints [BUG]
Dec 14, 2000
music module had incorrect names for volume functions
chimp example and full tutorial added
Dec 13, 2000
display.update() is entirely better in many ways [BUG]
Dec 3, 2000
fixed timing issues. negative time.delay() will become 0
Nov 30, 2000
UserRect module added
all objects now have a matching type; SurfaceType, etc
Nov 29, 2000
joystick module rewrite finished [BREAK]
cdrom module rewrite finished [BREAK]
all constructors using capitalized function names [BREAK]
(Rect, pygame.Surface, pygame.font.Font, etc)
Nov 28, 2000
Surface.convert() better handles surface flags
All color arguments (and returns) are RGBA format [BREAK]
Removed Surface.map_rgba and unmap_rgba [BREAK]
Added a default font, used by passing None as font file
Nov 20, 2000
Added Surface.save() to create BMPs.
Nov 16, 2000
Surface.set_clip() fixed when passing no args [BUG]
Nov 15, 2000
time.set_timer() now handles multiple timers
rect(), surface(), event() renamed to \
new_rect, new_surface(), new_event() [BREAK]
all new_XX() functions were added to pygame.locals
Moved pygame.music to a member of pygame.mixer [BREAK]
Surface.blit takes a source rectangle instead of pos, size [BREAK]
pygame.display.set_clip() correctly accepts rectstyle arg [BUG]
Added Surface.get_flags() and Surface.get_pitch()
Added set_cursor and get_cursor to pygame.mouse
New module, pygame.cursors, contains sample cursors
Nov 14, 2000
Release the Python Global Interpreter Lock on delays and IO
Added timer events to pygame.time (check vgrade example)
New music playback finished events
surfarray.blit_array() supports all bit depths
Nov 11, 2000
pygame.display.set_mode() uses int, not short, for size [BUG]
Nov 10, 2000
Committed to CVS