Skip to content

Commit 56fa376

Browse files
authored
Changelog pass (#2339)
* Add missing entries * Feature updates * Start by mentioning the most important breaking changes
1 parent 4dbe357 commit 56fa376

File tree

1 file changed

+37
-13
lines changed

1 file changed

+37
-13
lines changed

CHANGELOG.md

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,18 @@ easy reference. There may be other behavior changes that could break specific
1717
scenarios, but this section is limited to changes which directly changed the
1818
API in a way that is not compatible with how it was used in 2.6.
1919

20-
* `arcade.Sprite.angle` has changed to clockwise. So everything rotates different now.
21-
* Signature for Sprite creation has changed.
20+
* Texture management has completely changed in arcade 3.0. In the past we have
21+
cached absolutely everything, something that caused major issues for larger
22+
projects needing to manage memory. Functions like `arcade.load_texture` no
23+
longer cache the texture. See the texture section for more details
24+
* The `Sprite` initializer is greatly simplified. It's no longer possible to
25+
slice or transform textures through parameters in the sprite initializer.
26+
All texture manipulation should now be done through the `Texture` class.
27+
It supports transforms like rotating, scaling, flipping, and slicing.
28+
* `Sprite.angle` has changed to clockwise. So everything rotates different now.
29+
* `Sprite.on_update` has been removed. Use `Sprite.update` instead. This now
30+
also has a `delta_time` parameter and accept/forwards `*args` and `**kwargs`
31+
to support custom parameters. The same applies to `SpriteList`.
2232
* The deprecated `update()` function has been removed from the
2333
`arcade.Window`, `arcade.View`,
2434
`arcade.Section`, and `arcade.SectionManager` classes.
@@ -60,17 +70,20 @@ API in a way that is not compatible with how it was used in 2.6.
6070

6171
### Featured Updates
6272

63-
* Arcade now supports mixing Pyglet and Arcade drawing. This means
64-
you can, for example, use Pyglet batches. Pyglet batches can draw thousands
65-
of Pyglet objects with the cost and performance time of only a few.
66-
* The code behind the texture atlas Arcade creates for each SpriteList has
67-
been reworked to be faster and more efficient. Reversed/flipped sprites are
68-
no longer duplicated.
69-
* Added a new system for handling background textures (ADD MORE INFO)
73+
* The texture atlas has been heavily reworked to be more efficient.
74+
* Alpha blending (handling of transparency) is no longer globally enabled.
75+
This is now enabled by the objects and functions doing the drawing.
76+
Additional arguments have been added to draw functions and/or objects like
77+
`SpriteList` and `ShapeElementList` to toggle blending states. Blending
78+
states will always be reset after drawing.
7079
* Arcade now supports OpenGL ES 3.1/3.2 and have been
71-
tested on the Raspberry Pi 4. Any model using the Cortex-A72
72-
CPU should work. Note that you need fairly new Mesa drivers
73-
to get the new V3D drivers.
80+
tested on the Raspberry Pi 4 and 5. Any model using the Cortex-A72
81+
or Cortex-A76 CPU should work. Use images from 2024 or later for best
82+
results.
83+
* Arcade now supports freely mixing Pyglet and Arcade code. This means you
84+
can freely use pyglet batches, Labels when preferred over arcade's types.
85+
Note that texture/image handling are still separate systems. This is
86+
however a solvable problem for intermediate and advanced users.
7487

7588
### Changes
7689

@@ -83,6 +96,8 @@ API in a way that is not compatible with how it was used in 2.6.
8396
`arcade.Window.on_draw()` function is called at. This can be used
8497
with the pre-existing `update_rate` parameter which controls
8598
`arcade.Window.on_update()` to achieve separate draw and update rates.
99+
* `open_window()` now accepts `**kwargs` to pass additional parameters to the
100+
`arcade.Window` constructor.
86101

87102
* `arcade.View`
88103
* Removal of the ``update`` function in favor of `arcade.View.on_update()`
@@ -91,6 +106,9 @@ API in a way that is not compatible with how it was used in 2.6.
91106

92107
* Removal of the ``update`` function in favor of `arcade.Section.on_update()`
93108

109+
* Textures
110+
* `arcade.load_texture`
111+
94112
* GUI
95113

96114
* `arcade.gui.widgets.UIWidget`
@@ -209,7 +227,7 @@ API in a way that is not compatible with how it was used in 2.6.
209227
`view` and `projection` attributes. Arcade shaders is also using Pyglet's
210228
`WindowBlock` UBO.
211229
* Uniforms are now set using `glProgramUniform` instead of `glUniform` when the
212-
extension is available.
230+
extension is available for better performance.
213231
* Fixed many implicit type conversions in the shader code for wider support.
214232
* Added `front_face` property on the context for configuring front face winding
215233
order of triangles
@@ -254,6 +272,12 @@ API in a way that is not compatible with how it was used in 2.6.
254272
* [CONTRIBUTING.md](https://github.com/pythonarcade/arcade/blob/development/CONTRIBUTING.md) page has been updated
255273
* Improve `background_parallax` example
256274

275+
* Experimental
276+
* Started on a system for drawing large background textures with parallax scrolling.
277+
This is still experimental and may change in the future.
278+
* Started on an experimental event based input system for controllers
279+
* Started an experiment with vector based sprites
280+
257281
Special thanks to
258282
[Einar Forselv](https://github.com/einarf),
259283
[Darren Eberly](https://github.com/Cleptomania),

0 commit comments

Comments
 (0)