@@ -17,8 +17,18 @@ easy reference. There may be other behavior changes that could break specific
17
17
scenarios, but this section is limited to changes which directly changed the
18
18
API in a way that is not compatible with how it was used in 2.6.
19
19
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 ` .
22
32
* The deprecated ` update() ` function has been removed from the
23
33
` arcade.Window ` , ` arcade.View ` ,
24
34
` 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.
60
70
61
71
### Featured Updates
62
72
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.
70
79
* 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.
74
87
75
88
### Changes
76
89
@@ -83,6 +96,8 @@ API in a way that is not compatible with how it was used in 2.6.
83
96
` arcade.Window.on_draw() ` function is called at. This can be used
84
97
with the pre-existing ` update_rate ` parameter which controls
85
98
` 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.
86
101
87
102
* ` arcade.View `
88
103
* 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.
91
106
92
107
* Removal of the `` update `` function in favor of ` arcade.Section.on_update() `
93
108
109
+ * Textures
110
+ * ` arcade.load_texture `
111
+
94
112
* GUI
95
113
96
114
* ` arcade.gui.widgets.UIWidget `
@@ -209,7 +227,7 @@ API in a way that is not compatible with how it was used in 2.6.
209
227
` view ` and ` projection ` attributes. Arcade shaders is also using Pyglet's
210
228
` WindowBlock ` UBO.
211
229
* Uniforms are now set using ` glProgramUniform ` instead of ` glUniform ` when the
212
- extension is available.
230
+ extension is available for better performance .
213
231
* Fixed many implicit type conversions in the shader code for wider support.
214
232
* Added ` front_face ` property on the context for configuring front face winding
215
233
order of triangles
@@ -254,6 +272,12 @@ API in a way that is not compatible with how it was used in 2.6.
254
272
* [ CONTRIBUTING.md] ( https://github.com/pythonarcade/arcade/blob/development/CONTRIBUTING.md ) page has been updated
255
273
* Improve ` background_parallax ` example
256
274
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
+
257
281
Special thanks to
258
282
[ Einar Forselv] ( https://github.com/einarf ) ,
259
283
[ Darren Eberly] ( https://github.com/Cleptomania ) ,
0 commit comments