Skip to content

2.5.1

Compare
Choose a tag to compare
@Starbuck5 Starbuck5 released this 12 Aug 11:47
e6fb798

โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰
pip uninstall pygame (if previously installed, to avoid package conflicts)
pip install pygame-ce --upgrade
โ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐Ÿ˜Ž๐Ÿ„๐Ÿš๐ŸŒˆ๐Ÿ๏ธ๐Ÿนโ˜€๏ธ๐ŸŒŠ๐Ÿ–๏ธ๐ŸŽ‰

We are pleased to do yet another release of pygame-ce, and this has been possible due to the efforts of over 20 code contributors. Together, we have made 193 commits across 139 files via 80 pull requests in the last 2 months since the previous release!

Now, onto the highlights!

Highlights

  • Added Python 3.13 (just standard 3.13, no free threading yet) and PyPy for apple silicon support.

  • We have a new logo!

pygame-ce logo

  • We haven't run out of optimization ideas yet ๐Ÿ˜…, we've managed to cram a few more in this release.

New API

  • There is now a default destination position (0, 0) for Surface.blit, thanks to @damusss in #2936.
  • @itzpr3d4t0r added a new function Surface.premul_alpha_ip to premultiply alpha faster by operating in place instead of needing to allocate a new Surface. @Matiiss also helped with documentation. See #2899, #2972, and #2980.

Bugfixes

  • @Matiiss fixed passing parent_window=None to display.message_box in #2723.
  • @itzpr3d4t0r fixed an issue transform.hsl not working on certain pixel formats in #2948.
  • @oddbookworm fixed a Surface.fill where rects with negative positions would slide to (0, 0) and then fill, instead of only filling part of the Rect. See #2939 for details.
  • @ankith26 fixed using SCALED after not using SCALED in display in #2925.
  • @damusss fixed using OpenGL with a resizable pygame.Window, see #2915.

General Enhancements

  • @MyreMylar added a SIMD printout (SSE2, AVX2 & NEON) to pygame.print_debug_info() in #2897. This will help us debug any SIMD-backend specific bugs submitted by users.
  • @damusss added support for radius = 0 circles to the experimental geometry module, see #2913.
  • @zoldalma999 added new "ABGR" format support to image.frombytes and image.tobytes in #2951.
  • @zoldalma999 made the experimental Window class subclassable in #2950.
  • @ankith26 added support for iterables in display.update, see #2987.
  • @Starbuck5 and @ankith26 added Python 3.13 support in #2994 and #3030.

Performance Enhancements

  • @itzpr3d4t0r continued his quest to optimize all the things, merging improvements to PixelArray.make_surface, transform.scale2x, Surface.fblits (a fix for a performance regression), mask.from_surface and (F)Rect methods. See #2953, #2859, #2978, #2895, and #2908 for more details.
  • @mzivic7 got a 5-6% boost out of draw.aacircle (new in pygame-ce 2.5.0) in #3012.
  • @Starbuck5 boosted the performance of some draw operations on 24-bit surfaces, with a 20% improvement on single-pixel line drawing, see #3021.

Deprecations and Removals

No new deprecations this release, but-

  • @ankith26 added deprecation warnings to some already-deprecated API (freetype.was_init, scrap.lost) in #3001.

Docs and Type Hints

  • @Mega-JC created a new logo and added it to the docs (in collaboration with @kadir014 on the design), in #2965. This is great for us to express our own identity as a project.
  • @REX2626, @whangho, @Mic-lab, and @damusss made grammar and wording improvements to docs content. See #2907, #2919, #2911, #3004, and #2901.
  • @damusss made it so deprecated functions are marked with the deprecated decorator in #2984. This allows editors to show users that a function is deprecated very neatly. They also made some smaller enhancements to the type stubs in #2918 and #2926.
  • @ankith26 modernized the stubs to use python-3.8-isms in #2995
  • @MrF1ow added a Contribution Section to README to help out new contributors in #2910.
  • @MyreMylar added license identifier to README in #2890.
  • @oddbookworm changed dark theme slightly to make code more readable in some cases in #2960.

Examples and Unit Tests

Code Quality and General Maintenance

New Contributors

Thanks all

A heartfelt thank you to everyone involved! This includes not just code contributors, but also the wider community - issue reporters, PR reviewers, tutorial creators, helpers on various media platforms, developers of supporting libraries, and most importantly - all our users (including you, the reader of these notes)!

If you spot any errors in these notes, please let us know so we can correct them.

Take care and happy pygaming!

Full Changelog: 2.5.0...2.5.1