Skip to content

Latest commit

 

History

History
720 lines (604 loc) · 31.2 KB

news.rst

File metadata and controls

720 lines (604 loc) · 31.2 KB

Release News

This describes the latest changes between the PySDL2 releases.

0.9.17 (Unreleased)

New Features:

  • Updated to wrap new function added in SDL_image 2.8.0 (PR #274).
  • Updated to wrap new hints added in SDL 2.28.2 and 2.28.5 (PR #274).
  • Added a new function :func:`~sdl2.ext.get_key_state` for checking if a given key is currently down or up independently of the SDL event queue.

Fixed Bugs:

  • Fixed proper exporting of controller enum constants for the NVidia Shield and Joycon controllers.

0.9.16

Released on 2023-06-28.

New Features:

0.9.15

Released on 2023-01-08.

New Features:

Fixed Bugs:

  • Fixed bug preventing SDL Points and Rects from being used as srcrect or dstrect for :meth:`~sdl2.ext.Renderer.copy`.
  • Added a binding for SDL_ResetHint, which was added in SDL 2.24.0 but got missed in PR #246.

0.9.14

Released on 2022-09-03.

New Features:

  • Added a new function :func:`~sdl2.ext.get_displays` and class :class:`~sdl2.ext.DisplayInfo` to provide an easier and more Pythonic API for getting information about the names, locations, and supported video modes of the connected displays.
  • Extended :func:`~sdl2.ext.init` to allow initializing all SDL2 subsystems individually using keyword arguments (e.g. sdl2.ext.init(audio=True) to initialize the audio subsystem as well as the default video subsystem). Previously, this function only initailized the video subsystem.
  • Updated to wrap new functions and constants in SDL2 2.24.0 (PR #246).
  • Added the error-handling :func:`sdl2.ext.raise_sdl_err` function to the public API.
  • Added informative exceptions when trying perform operations (e.g. show, hide, minimize) on a closed :obj:`sdl2.ext.Window`, and generally improved memory safety of the Window class.

Fixed Bugs:

API Changes:

0.9.13

Released on 2022-07-26.

New Features:

  • Updated to wrap new functions and constants in SDL2_ttf 2.20.0 (PR #236).
  • Updated to wrap new functions and constants in SDL2_mixer 2.6.0 (PR #237).
  • Updated to wrap new functions and constants in SDL2_image 2.6.0 (PR #238).
  • Added a new function :func:`sdl2.ext.load_svg` that allows loading simple SVG images at arbitrary resolutions with SDL2_image 2.6.0 or later (PR #238).
  • Added experimental bindings for the new functions and constants in the SDL2 2.23.1 pre-release (PR #240).

0.9.12

Released on 2022-07-18.

New Features:

  • Updated to wrap new functions and constants in SDL2 2.0.22 (PR #226)
  • Added a new stable API for accessing the raw ctypes function bindings for each submodule. Each submodule (e.g. sdl2.sdlttf, sdl2.video) now contains a _ctypes object through which the raw ctypes function objects can be accessed by attribute or dict key (e.g. sdlttf._ctypes.TTF_Linked_Version or sdl2.timer._ctypes["SDL_GetTicks"]). This new API allows proper access to the ctypes function objects for the sdlttf, sdlmixer, sdlimage, and sdlgfx modules (which have been migrated to thin Python function wrappers around the ctypes bindings), and also allows developers to write code that will not break when other SDL2 modules are eventually migrated to similar Python-wrapped bindings.

Fixed Bugs:

  • Fixed a bug in :func:`~sdl2.rw_from_object` where calling :func:`~sdl2.SDL_RWsize` on the resulting object would change the RWops' current byte position unexpectedly.
  • Fixed the type of the datasize argument for :func:`~sdl2.SDL_LoadFile` to be a pointer to a c_size_t (was previously just c_size_t).
  • Fixed namespace export for :func:`~sdl2.SDL_RenderSetVSync` (issue #219)
  • Re-added direction field for :obj:`~sdl2.SDL_MouseWheelEvent` events, which was accidentally removed in PySDL2 0.9.10 (issue #217)
  • Fixed namespace export for AUDIO_F32MSB and :obj:`~sdl2.SDL_AudioDeviceEvent`.
  • Fixed :func:`~sdl2.SDL_LoadFile` with Python 3 and old versions of SDL2 (2.0.9 and older).
  • Fixed a bug in :class:`~sdl2.ext.FontTTF` that prevented rendering text with empty lines.
  • Fixed a bug in :class:`~sdl2.ext.Renderer` that prevented users from requesting a renderer backend by name (PR #224)
  • Changed :func:`~sdl2.SDL_abs` to be an actual ctypes binding instead of an alias for Python's built-in abs function.
  • Renamed the SDL_Blit ctypes function definition to SDL_blit to match the SDL2 headers.
  • Fixed export of SDL_TIMER_RESOLUTION hint (was previously not accessable through the sdl2 namespace).
  • Updated sdl2.dll.version to better handle SDL2's new versioning format and fixed unit tests accordingly (issue #228).
  • Fixed various unit tests on big-endian platforms (PR #232).
  • Fixed 32-bit wraparound behaviour for SDL_TICKS_PASSED (PR #235).
  • Fixed SDL_MUSTLOCK to allow checking surface pointers in addition to surfaces.

0.9.11

Released on 2022-01-27.

New Features:

  • Updated to wrap new functions and constants in SDL2 2.0.20 (PR #214)
  • Updated to wrap new functions and constants in SDL2_ttf 2.0.18 (PR #216)

0.9.10

Released on 2022-01-11.

New Features:

Fixed Bugs:

  • Fixed a typo in the :mod:`~sdl2.sdlttf` bindings where an alias for the :func:`~sdl2.sdlttf.TTF_RenderUTF8_Shaded` function was incorrectly bound to TTF_RenderUTF instead of TTF_RenderUTF8.
  • Fixed a bug introduced in 0.9.9 where the SDL_WINDOW_INPUT_GRABBED constant was no longer exported.
  • :class:`~sdl2.ext.MemoryView` and :class:`~sdl2.ext.PixelAccess` objects now support negative indexing (e.g. arr[-1][-1] for accessing the last element in a 2D array). In previous versions, negative indices would retrieve values from undefined sections of memory outside the surface (PR #204)
  • Changed the functions in the :mod:`sdl2.ext.pixelaccess` module to no longer try to unlock RLE surfaces once their corresponding view objects are deleted. This prevents a segmentation fault when a view is garbage-collected but the surface has already been freed (PR #204)
  • Fixed a bug where the rectangle returned by :meth:`sdl2.ext.BitmapFont.render_on` would overestimate the size of the rendered text by one character in both width and height (PR #208)
  • :meth:`sdl2.ext.BitmapFont.contains` no longer assumes that the font map contains a space (PR #208)
  • Rendering multiline text with the :class:`sdl2.ext.BitmapFont` class now always splits lines using the newline (\n) character. Previously on Windows, it would only split on Windows-style line endings (\r\n) (PR #208)

API Changes:

Deprecation Notices:

0.9.9

Released on 2021-09-02.

New Features:

  • Updated to wrap new functions and constants in SDL2 2.0.16 (PR #190)

Fixed bugs:

  • Reverted the fix for (issue #139), which inadvertantly caused a serious bug that prevented usage of any non-software renderer with windows created using :obj:`~sdl2.ext.Window` objects.

0.9.8

Released on 2021-08-06.

New Features:

  • Updated to wrap new functions and constants introduced in SDL2 2.0.12 and 2.0.14 (PR #163 & PR #181)
  • Fixed DLL loading issues with Python installed from the Microsoft Store on Windows (PR #185)
  • Added informative errors for when the newest SDL2 binaries found on the system are too old to be used by PySDL2 (issue #165)
  • Added support for passing SDL_Rect objects to :func:`sdl2.ext.draw.fill` (issue #169)
  • Added support for passing SDL_Surface pointers directly to many sdl2.ext functions, removing the need to explicitly use the .contents attribute.
  • Added :obj:`sdl2.ext.MessageBox`, :func:`sdl2.ext.show_messagebox`, and :func:`sdl2.ext.show_alert` as Pythonic wrappers around the SDL2 MessageBox API (PR #188)

Fixed bugs:

  • Fixed NameError when calling SDL_SetColorKey, by @mgorny (PR #166)
  • Improved detection of SDL2 binaries on macOS, by @pvallet (PR #177 & PR #178)
  • Fixed a bug preventing sdl2.ext.font.BitmapFont from being able to render, by @namelivia (PR #181)
  • Fixed sdl2.ext.Window.show behaviour under Wayland (issue #139)
  • Fixed a minor bug with the helloworld.py example (issue #174)
  • Fixed a bug that prevented the line clipping functions in :mod:`sdl2.ext.algorithms` from working if top and bottom arguments were specified backwards (issue #101)

0.9.7

Released on 2020-02-15.

  • The minimum required SDL version is 2.0.5
  • The minimum required SDL_ttf version is 2.0.14
  • The minimum required SDL_mixer version is 2.0.1
  • The minimum required SDL_image version is 2.0.1
  • Improved compatibility with older SDL2 releases by raising informative exceptions whenever a function requiring a newer SDL2 binary is called
  • added support for loading SDL2 .framework binaries on macOS
  • added built-in support for pip installation of SDL2 binaries on macOS and Windows using pysdl2-dll
  • fixed issue #75: :func:`sdl2.SDL_JoystickGetGUIDString()` and :func:`sdl2.SDL_GameControllerMappingForGUID()` no longer cause a segfault on Python < 3.8
  • fixed bug preventing use of background color with wrapped text using :meth:`sdl2.ext.FontManager.render()` (PR #134)
  • fixed issue #112: allow easy moving and resizing of :obj:`sdl2.ext.Window()` objects through 'position' and 'size' attributes, added 'open' and 'close' methods to Window objects
  • fixed issue #126: the write method for RW objects created with :func:`sdl2.rw_from_object()` now returns the correct value
  • fixed issue #130: SDL_RW* functions now accept pointers to RW objects
  • fixed issue #135: :func:`sdl2.SDL_GetPrefPath()` and :func:`sdl2.SDL_GetPrefPath()` now return bytestrings instead of pointers to strings.
  • fixed issue #136: :class:`sdl2.SysWMmsg` now properly defined and accessable for syswm events.
  • fixed issue #148: added support for loading SDL2 .so binaries with numeric suffixes on Unix-like OSes (e.g. 'libSDL2.so.2')
  • fixed issue #152: restored compatibility with recent versions of PyPy
  • fixed transparency issues with pallete indexed PNGs (PR #159)
  • updated :mod:`sdl2` to include the latest changes of SDL2 (release 2.0.10)
  • updated :mod:`sdl2.sdlttf` to include the latest changes of SDL2_ttf (release 2.0.15)
  • updated :mod:`sdl2.sdlmixer` to include the latest changes of SDL2_mixer (release 2.0.4)
  • updated :mod:`sdl2.sdlimage` to include the latest changes of SDL2_image (release 2.0.5)

Big thanks to all the GitHub users who filed bug reports and submitted pull requests for this release.

0.9.6

Released on 2017-09-30.

0.9.5

Released on 2016-10-20.

0.9.4

Released on 2016-07-07.

0.9.3

Released on 2014-07-08.

Thanks to Filip M. Nowak for the PYSDL2_DLL_PATH improvement.

0.9.2

Released on 2014-04-13.

  • fixed issue #32: the line clipping algorithms do not run into precision errors anymore
  • fixed issue #53 (again): :func:`sdl2.video.SDL_GL_ResetAttributes()` is properly wrapped now to retain backwards compatibility with previous SDL2 releases
  • fixed issue #54: text input is correctly converted for the text entry component
  • updated the example BMP files, which could not be loaded properly on some systems with SDL2_image and PIL

0.9.1

Released on 2014-04-05.

0.9.0

Released on 2014-03-23.

IMPORTANT: This release breaks backwards-compatibility. See the notes for the issues #36 and #39.

0.8.0

Released on 2013-12-30.

Thanks to Sven Eckelmann, Marcel Rodrigues, Michael McCandless, Andreas Schiefer and Franz Schrober for providing fixes and improvements.

0.7.0

Released on 2013-10-27.

Thanks to Marcel Rodrigues, Roger Flores and otus for providing fixes and improvement ideas.

0.6.0

Released on 2013-09-01.

Thanks to Steven Johnson for his enhancements to the FontManager class. Thanks to Marcel Rodrigues for the improvements to RenderContext.copy().

0.5.0

Released on 2013-08-14.

Thanks to Dan Gillett for providing the FontManager and from_text() enhancements and his patience regarding all the small change requests. Thanks to Mihail Latyshov for providing fixes to the documentation.

0.4.1

Released on 2013-07-26.

Thanks to Steven Johnson, Todd Rovito, Bil Bas and Dan McCombs for providing fixes and improvements.

0.4.0

Released on 2013-06-08.

0.3.0

Released on 2013-05-07.

0.2.0

Released on 2013-05-03.

0.1.0

Released on 2013-04-23.

  • Initial Release