--------------
*Released 2022-May-18*
* Various Improvements
* Allow specifying hit box parameters in :py:func:`~arcade.load_textures` and
:py:func:`~arcade.load_spritesheet`
* :py:class:`~arcade.Camera` should no longer apply zoom on the z axis
* Promote using :py:meth:`arcade.View.on_show_view` in examples
and tutorials
* The Arcade window and views now expose :py:meth:`arcade.Window.on_enter`
:py:meth:`arcade.Window.on_leave`. These events are triggered
when the mouse enters and leaves the window area.
* Sections should now also support mouse enter/leave events
* Hit box calculation methods should raise a more useful
error message when the texture is not RGBA.
* Slight optimization in updating sprite location in SpriteList
* Removed all remaining references to texture transforms
* Removed the broken ``Sprite.__lt__`` method
* Added :py:func:`~arcade.get_angle_radians`
* Removed ``Texture.draw_transformed``
* Add support for changing the pitch while playing a sound. See the `speed` parameter in
:py:func:`arcade.play_sound`.
* Set better blending defaults for Arcade GUI
* Can now create a texture filled with a single color. See :py:meth:`Texture.create_filled`.
The Sprite class will use this when creating a solid colored sprite.
* Bump version numbers of Sphinx, Pillow to current release as of 17-May.
* Bump Pyglet version to 2.0.dev16. (Thanks Pyglet!)
* Shadertoy
* Added ``Shadertoy.delta_time`` alias for ``time_delta`` (``iTimeDelta``)
* Support the ``iFrame`` uniform. Set frame using the
:py:attr:`arcade.experimental.ShadertoyBase.frame` attribute
* Support the ``iChannelTime`` uniform. Set time for each individual channel using
the :py:attr:`arcade.experimental.ShadertoyBase.channel_time` attribute.
* Support the ``iFrameRate`` uniform. Set frame rate using the
:py:attr:`arcade.experimental.ShadertoyBase.frame_rate` attribute
* Support the ``iDate`` uniform. This uniform will be automatically
set. See :py:meth:`arcade.experimental.ShadertoyBase._get_date`
* Support the ``iChannelResolution`` uniform. This uniform will be automatically set
* Added example using video with shadertoy
* Improve Shadertoy docstrings + unit tests
* Docs / Tutorials / Examples
* Updated install docs
* Added tutorial for compiling an Arcade game with Nuitka
* Improved/extended shadertoy tutorials
* Added example using textures with shadertoy
* Added sprite rotation examples
* Clarified the difference between :py:meth:`arcade.View.on_show_view`
and :py:meth:`arcade.View.on_show`
* Improved UIManager docstrings
* Various annotation and docstring improvements
* Fixed several broken links in docs
* We're now building PDF/EPUB docs
* OpenGL
* Added new method for safely setting shader program uniforms:
:py:meth:`arcade.gl.Program.set_uniform_safe`. This method will
ignore ``KeyError`` if the uniform doesn't exist. This is
often practical during development because most GLSL compilers/linkers
will remove uniforms that is determined to not affect the outcome
of a shader.
* Added new method for safely setting a uniform array:
:py:meth:`arcade.gl.Program.set_uniform_array_safe`.
This is practical during development because uniform arrays
are in most cases shortened by GLSL compiler if not all
array indices are used by the shader.
* Added :py:attr:`arcade.gl.Texture.swizzle`. This can be used
to reorder how components are read from the texture by a shader
making it easy to crate simple effects or automatically
convert BGR pixel formats to RGB when needed.
* Added ray marching example with fragment shader
* Allow reading framebuffer data with 2 and 4 byte component sizes
* Simplified texture atlas texture coordinates to make them
easier to use in custom shaders.
* Support dumping the atlas texture as RGB
* Support dumping the atlas texture with debug lines
showing texture borders
* We no longer check ``GL_CONTEXT_PROFILE_MASK`` due to
missing support in older drivers. Especially GL 3.1 drivers
that can in theory run arcade
* Various shader cleanups
* Experimental
* Added a simple profiler class
Special thanks to
`Vincent Poulailleau <https://github.com/vpoulailleau>`_
`Ian Currie <https://github.com/iansedano>`_
`Mohammad Ibrahim <https://github.com/Ibrahim2750mi>`_,
`pushfoo <https://github.com/pushfoo>`_,
`Alejandro Casanovas <https://github.com/janscas>`_,
`Darren Eberly <https://github.com/Cleptomania>`_,
`pvcraven <https://github.com/pvcraven>`_
and
`Einar Forselv <https://github.com/einarf>`_
for their contributions to this release. Also, thanks to everyone on the Pyglet team! We depend heavily on
Pyglet's continued development.