pygame is sharing code with you

Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.

Don't show this again

pygame / pygame http://pygame.org/

Clone this repository (size: 15.4 MB): HTTPS / SSH
hg clone https://bitbucket.org/pygame/pygame
hg clone ssh://hg@bitbucket.org/pygame/pygame

pygame / WHATSNEW

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
# 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

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
    Documentation fixes.

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
    Documentation changes.
    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.

release_1_7_1release
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()