# 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 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. Updated examples. 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 added Sound.get_length() 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 Rect.fit() added 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 pygame-16 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 add GL_STEREO 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 experimental pygame.draw.tilerow() 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 new font.get_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 pygame-15 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 fixed CD.play() 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 added surfarray.make_surface() 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 pygame-14 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) added sprite.spritecollideany() 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 fixed sprite.Group.has 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 pygame-13 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 added pygame.sprite.Group.update() 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 pygame-12 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 pygame-11 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) fixed display.get_init() 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() pygame-10 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 pygame-09 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 added draw.lines() 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 pygame-05 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] pygame-04 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 pygame-03 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 Added pygame.display.get_driver()