Skip to content

Commit 8c17aed

Browse files
authored
Clean up changelog structure (#2341)
1 parent 97ebbdd commit 8c17aed

File tree

1 file changed

+186
-187
lines changed

1 file changed

+186
-187
lines changed

CHANGELOG.md

Lines changed: 186 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -85,198 +85,197 @@ API in a way that is not compatible with how it was used in 2.6.
8585
Note that texture/image handling are still separate systems. This is
8686
however a solvable problem for intermediate and advanced users.
8787

88-
### Changes
89-
90-
* `arcade.Window`
91-
* Removal of the `update` function in favor of `arcade.Window.on_update()`
92-
* `update_rate` parameter in the constructor can no longer be set to `None`.
93-
Must be a float.
94-
* Added `draw_rate` parameter to constructor
95-
`arcade.Window.__init__`, this will control the interval that the
96-
`arcade.Window.on_draw()` function is called at. This can be used
97-
with the pre-existing `update_rate` parameter which controls
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.
101-
88+
### View and View
89+
90+
* Removal of the `update` function in favor of `arcade.Window.on_update()`
91+
* `update_rate` parameter in the constructor can no longer be set to `None`.
92+
Must be a float.
93+
* Added `draw_rate` parameter to constructor
94+
`arcade.Window.__init__`, this will control the interval that the
95+
`arcade.Window.on_draw()` function is called at. This can be used
96+
with the pre-existing `update_rate` parameter which controls
97+
`arcade.Window.on_update()` to achieve separate draw and update rates.
98+
* `open_window()` now accepts `**kwargs` to pass additional parameters to the
99+
`arcade.Window` constructor.
102100
* `arcade.View`
103101
* Removal of the ``update`` function in favor of `arcade.View.on_update()`
104-
105102
* `arcade.Section` and `arcade.SectionManager`
106-
107103
* Removal of the ``update`` function in favor of `arcade.Section.on_update()`
108104

109-
* Textures
110-
* `arcade.load_texture`
111-
112-
* GUI
113-
114-
* `arcade.gui.widgets.UIWidget`
115-
116-
* Supports padding, border and background (color and texture)
117-
* Visibility: visible=False will prevent rendering of the widget. It will also
118-
not receive any UI events
119-
* Dropped `arcade.gui.widget.UIWidget.with_space_around()`
120-
* ``UIWidget.with_`` methods do not wrap the widget anymore, they only change
121-
the attributes
122-
* Fixed an blending issue when rendering the gui surface to the screen
123-
* Support nine patch information to draw background texture
124-
* Performance improvements
125-
* Removed some attributes from public interface, use `UIWidget.with_` methods
126-
* `UIWidget.border_width`
127-
* `UIWidget.border_color`
128-
* `UIWidget.bg_color`
129-
* `UIWidget.bg_texture`
130-
* `UIWidget.padding_top`
131-
* `UIWidget.padding_right`
132-
* `UIWidget.padding_bottom`
133-
* `UIWidget.padding_left`
134-
* Update and add example code.
135-
* Iterable (providing direct children)
136-
137-
* New widgets:
138-
139-
* `arcade.gui.widgets.dropdown.UIDropdown`
140-
* `arcade.gui.widgets.image.UIImage`
141-
* `arcade.gui.widgets.slider.UISlider`
142-
* `arcade.gui.widgets.constructs.UIButtonRow`
143-
([PR1580](https://github.com/pythonarcade/arcade/pull/1580))
144-
145-
* `arcade.gui.UIInteractiveWidget` only reacts to left mouse button events
146-
147-
* Arcade `arcade.gui.property.Property`:
148-
149-
* Properties are observable attributes (supported: primitive, list and dict).
150-
Listener can be bound with `arcade.gui.property.bind`
151-
152-
* All `arcade.gui.UILayout`s support `size_hint`, `size_hint_min`, `size_hint_max`.
153-
154-
* `arcade.gui.UIBoxLayout`
155-
* `arcade.gui.UIAnchorLayout`
156-
* `arcade.gui.UIGridLayout` [PR1478](https://github.com/pythonarcade/arcade/pull/1478)
157-
158-
* Replaces deprecated usage of `arcade.draw_text`
159-
160-
* Misc Changes
161-
162-
* `arcade.color_from_hex_string` changed to follow the CSS hex string standard
163-
* Windows Text glyph are now created with DirectWrite instead of GDI
164-
* Removal of various deprecated functions and parameters
165-
* OpenGL examples moved to
166-
`examples/gl <https://github.com/pythonarcade/arcade/tree/development/arcade/examples/gl>`_
167-
from ``experiments/examples``
168-
169-
* Sprites
170-
* The method signature for `arcade.Sprite.__init__` has been changed.
171-
(May break old code.)
172-
* The sprite code has been cleaned up and broken into parts.
173-
* `arcade.Sprite.angle` now rotates clockwise. Why it ever rotated
174-
the other way, and why it lasted so long, we do not know.
175-
176-
* Controller Input
177-
178-
* Previously controllers were usable via the `arcade.joysticks` module. This
179-
module is still available in 3.0.
180-
However, it should largely be seen as deprecated for most people who want
181-
basic controller support. This module existed basically just as an alias to
182-
the Pyglet joysticks module. We now have a new `arcade.controller` module,
183-
which is similarly just an alias to Pyglet's newer
184-
Controller API. This change should make a much wider selection of controllers
185-
able to work with Arcade, and provide newer functionality and be
186-
easier to use for most cases than the joystick module. The joystick module
187-
may still be useful if you need specialty controllers such as racing
188-
wheels or flight sticks. All existing example code has been updated to use
189-
the new controller API.
190-
191-
* Text
192-
193-
* Complete removal of the old PIL based text system. In Arcade 2.6 we had largely
194-
switched to the newer Pyglet based system, however there were still remnants of
195-
the PIL implementation around. Namely the `arcade.create_text_sprite` function
196-
which has been updated to use the Pyglet system. There's no API breaking change
197-
here but if you are using the function it would be worth reading the new docs
198-
for it, as there are some different considerations surrounding use of a custom
199-
`arcade.TextureAtlas` if you are also doing that. This function should now be
200-
much much faster than the old PIL implementation. The texture generation happens
201-
almost entirely on the GPU now.
202-
* As part of this move, the `arcade.text_pillow` module has been removed completely,
203-
and the `arcade.text_pyglet` module has been re-named just be `arcade.text`.
204-
* `arcade.draw_text` and `arcade.Text` both now accept a `start_z` parameter.
205-
This will allow advanced usage to set the Z position of the underlying Label.
206-
This parameter defaults to 0 and does not change any existing usage.
207-
208-
* `arcade.draw_commands`:
209-
210-
* Added `arcade.draw_commands.draw_lbwh_rectangle_textured`
211-
212-
* Replaces the now-deprecated `arcade.draw_commands.draw_lrwh_rectangle_textured`
213-
* Usage is exactly the same
214-
215-
* OpenGL
216-
217-
* Support for OpenGL ES 3.1 and 3.2. 3.2 is fully supported, 3.1 is only supported
218-
if the `EXT_geometry_shader` extension is provided by the driver. This is part
219-
of the minimum spec in 3.2 so it is guaranteed to be there. This is the only
220-
optional extension that Arcade needs to function with 3.1.
221-
222-
As an example, the Raspberry Pi 4/5 only supports OpenGL ES 3.1, however does
223-
provide this extension, so is fully compatible with Arcade.
224-
* Textures now support immutable storage for OpenGL ES compatibility.
225-
* Arcade is now using Pyglet's projection and view matrix.
226-
All functions setting matrices will update the Pyglet window's
227-
`view` and `projection` attributes. Arcade shaders is also using Pyglet's
228-
`WindowBlock` UBO.
229-
* Uniforms are now set using `glProgramUniform` instead of `glUniform` when the
230-
extension is available for better performance.
231-
* Fixed many implicit type conversions in the shader code for wider support.
232-
* Added `front_face` property on the context for configuring front face winding
233-
order of triangles
234-
* Added `cull_face` property on the context for configuring what triangle face to cull
235-
* Added support for bindless textures
236-
* Added support for 64 bit integer uniforms
237-
* Added support for 64 float uniforms
238-
239-
* `arcade.tilemap.TileMap`
240-
241-
* Added support Tiles defined as a sub-rectangle of an image. See
242-
[Tiled 1.9 Release Notes](https://www.mapeditor.org/2022/06/25/tiled-1-9-released.html)
243-
for more information on this feature.
244-
* Changed the `Sprite.properties` key "type" to "class" to stay in line with Tiled's
245-
re-naming of this key in their API.
246-
* You can now define a custom texture atlas for SpriteLists created in a TileMap.
247-
You can provide a map default to the `texture_atlas` parameter of the `arcade.tilemap.Tilemap`
248-
class or the `arcade.tilemap.load_tilemap` function. This will be used by default
249-
on all layers, however it can be overridden on a per-layer basis as defined by
250-
the new `texture_atlas` key in the `layer_options` dictionary. If no custom atlas
251-
is provided, then the global default atlas will be used (This is how it works
252-
pre-Arcade 3.0).
253-
* Fix for animated tiles from sprite sheets
254-
* DefaultTextureAtlas: Added `sync_texture_image` method to sync the texture in
255-
the atlas back into the internal pillow image in the `arcade.Texture`.
256-
* DefaultTextureAtlas: Added `get_texture_image` method to get pixel data of a
257-
texture in the atlas as a pillow image.
258-
259-
* Collision Detection
260-
261-
* Collision detection is now even faster.
262-
* Remove Shapely for collision detection as 3.11 is faster without it.
263-
264-
* Shape list
265-
266-
* Add in `arcade.create_triangles_strip_filled_with_colors`
267-
* Moved all buffered items that can be added to a shape list to `arcade.shape_list`
268-
269-
* Documentation
270-
271-
* Example code page has been reorganized
272-
* [CONTRIBUTING.md](https://github.com/pythonarcade/arcade/blob/development/CONTRIBUTING.md) page has been updated
273-
* Improve `background_parallax` example
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
105+
### Textures
106+
107+
* `arcade.load_texture`
108+
109+
### GUI
110+
111+
* `arcade.gui.widgets.UIWidget`
112+
113+
* Supports padding, border and background (color and texture)
114+
* Visibility: visible=False will prevent rendering of the widget. It will also
115+
not receive any UI events
116+
* Dropped `arcade.gui.widget.UIWidget.with_space_around()`
117+
* ``UIWidget.with_`` methods do not wrap the widget anymore, they only change
118+
the attributes
119+
* Fixed an blending issue when rendering the gui surface to the screen
120+
* Support nine patch information to draw background texture
121+
* Performance improvements
122+
* Removed some attributes from public interface, use `UIWidget.with_` methods
123+
* `UIWidget.border_width`
124+
* `UIWidget.border_color`
125+
* `UIWidget.bg_color`
126+
* `UIWidget.bg_texture`
127+
* `UIWidget.padding_top`
128+
* `UIWidget.padding_right`
129+
* `UIWidget.padding_bottom`
130+
* `UIWidget.padding_left`
131+
* Update and add example code.
132+
* Iterable (providing direct children)
133+
134+
* New widgets:
135+
136+
* `arcade.gui.widgets.dropdown.UIDropdown`
137+
* `arcade.gui.widgets.image.UIImage`
138+
* `arcade.gui.widgets.slider.UISlider`
139+
* `arcade.gui.widgets.constructs.UIButtonRow`
140+
([PR1580](https://github.com/pythonarcade/arcade/pull/1580))
141+
142+
* `arcade.gui.UIInteractiveWidget` only reacts to left mouse button events
143+
144+
* Arcade `arcade.gui.property.Property`:
145+
146+
* Properties are observable attributes (supported: primitive, list and dict).
147+
Listener can be bound with `arcade.gui.property.bind`
148+
149+
* All `arcade.gui.UILayout`s support `size_hint`, `size_hint_min`, `size_hint_max`.
150+
151+
* `arcade.gui.UIBoxLayout`
152+
* `arcade.gui.UIAnchorLayout`
153+
* `arcade.gui.UIGridLayout` [PR1478](https://github.com/pythonarcade/arcade/pull/1478)
154+
155+
* Replace deprecated usage of `arcade.draw_text`
156+
157+
### Misc Changes
158+
159+
* `arcade.color_from_hex_string` changed to follow the CSS hex string standard
160+
* Windows Text glyph are now created with DirectWrite instead of GDI
161+
* Removal of various deprecated functions and parameters
162+
* OpenGL examples moved to
163+
`examples/gl <https://github.com/pythonarcade/arcade/tree/development/arcade/examples/gl>`_
164+
from ``experiments/examples``
165+
166+
### Sprites
167+
168+
* The method signature for `arcade.Sprite.__init__` has been changed.
169+
(May break old code.)
170+
* The sprite code has been cleaned up and broken into parts.
171+
* `arcade.Sprite.angle` now rotates clockwise. Why it ever rotated
172+
the other way, and why it lasted so long, we do not know.
173+
174+
### Controller Input
175+
176+
Previously controllers were usable via the `arcade.joysticks` module. This
177+
module is still available in 3.0.
178+
However, it should largely be seen as deprecated for most people who want
179+
basic controller support. This module existed basically just as an alias to
180+
the Pyglet joysticks module. We now have a new `arcade.controller` module,
181+
which is similarly just an alias to Pyglet's newer
182+
Controller API. This change should make a much wider selection of controllers
183+
able to work with Arcade, and provide newer functionality and be
184+
easier to use for most cases than the joystick module. The joystick module
185+
may still be useful if you need specialty controllers such as racing
186+
wheels or flight sticks. All existing example code has been updated to use
187+
the new controller API.
188+
189+
### Text
190+
191+
* Complete removal of the old PIL based text system. In Arcade 2.6 we had largely
192+
switched to the newer Pyglet based system, however there were still remnants of
193+
the PIL implementation around. Namely the `arcade.create_text_sprite` function
194+
which has been updated to use the Pyglet system. There's no API breaking change
195+
here but if you are using the function it would be worth reading the new docs
196+
for it, as there are some different considerations surrounding use of a custom
197+
`arcade.TextureAtlas` if you are also doing that. This function should now be
198+
much much faster than the old PIL implementation. The texture generation happens
199+
almost entirely on the GPU now.
200+
* As part of this move, the `arcade.text_pillow` module has been removed completely,
201+
and the `arcade.text_pyglet` module has been re-named just be `arcade.text`.
202+
* `arcade.draw_text` and `arcade.Text` both now accept a `start_z` parameter.
203+
This will allow advanced usage to set the Z position of the underlying Label.
204+
This parameter defaults to 0 and does not change any existing usage.
205+
206+
### `arcade.draw_*`:
207+
208+
* Added `arcade.draw_commands.draw_lbwh_rectangle_textured`
209+
* Replaces the now-deprecated `arcade.draw_commands.draw_lrwh_rectangle_textured`
210+
* Usage is exactly the same
211+
212+
### OpenGL
213+
214+
* Support for OpenGL ES 3.1 and 3.2. 3.2 is fully supported, 3.1 is only supported
215+
if the `EXT_geometry_shader` extension is provided by the driver. This is part
216+
of the minimum spec in 3.2 so it is guaranteed to be there. This is the only
217+
optional extension that Arcade needs to function with 3.1.
218+
219+
As an example, the Raspberry Pi 4/5 only supports OpenGL ES 3.1, however does
220+
provide this extension, so is fully compatible with Arcade.
221+
* Textures now support immutable storage for OpenGL ES compatibility.
222+
* Arcade is now using Pyglet's projection and view matrix.
223+
All functions setting matrices will update the Pyglet window's
224+
`view` and `projection` attributes. Arcade shaders is also using Pyglet's
225+
`WindowBlock` UBO.
226+
* Uniforms are now set using `glProgramUniform` instead of `glUniform` when the
227+
extension is available for better performance.
228+
* Fixed many implicit type conversions in the shader code for wider support.
229+
* Added `front_face` property on the context for configuring front face winding
230+
order of triangles
231+
* Added `cull_face` property on the context for configuring what triangle face to cull
232+
* Added support for bindless textures
233+
* Added support for 64 bit integer uniforms
234+
* Added support for 64 float uniforms
235+
236+
### TileMap
237+
238+
* Added support Tiles defined as a sub-rectangle of an image. See
239+
[Tiled 1.9 Release Notes](https://www.mapeditor.org/2022/06/25/tiled-1-9-released.html)
240+
for more information on this feature.
241+
* Changed the `Sprite.properties` key "type" to "class" to stay in line with Tiled's
242+
re-naming of this key in their API.
243+
* You can now define a custom texture atlas for SpriteLists created in a TileMap.
244+
You can provide a map default to the `texture_atlas` parameter of the `arcade.tilemap.Tilemap`
245+
class or the `arcade.tilemap.load_tilemap` function. This will be used by default
246+
on all layers, however it can be overridden on a per-layer basis as defined by
247+
the new `texture_atlas` key in the `layer_options` dictionary. If no custom atlas
248+
is provided, then the global default atlas will be used (This is how it works
249+
pre-Arcade 3.0).
250+
* Fix for animated tiles from sprite sheets
251+
* DefaultTextureAtlas: Added `sync_texture_image` method to sync the texture in
252+
the atlas back into the internal pillow image in the `arcade.Texture`.
253+
* DefaultTextureAtlas: Added `get_texture_image` method to get pixel data of a
254+
texture in the atlas as a pillow image.
255+
256+
### Collision Detection
257+
258+
* Collision detection is now even faster.
259+
* Remove Shapely for collision detection as 3.11 is faster without it.
260+
261+
### Shape list
262+
263+
* Add in `arcade.create_triangles_strip_filled_with_colors`
264+
* Moved all buffered items that can be added to a shape list to `arcade.shape_list`
265+
266+
### Documentation
267+
268+
* Example code page has been reorganized
269+
* [CONTRIBUTING.md](https://github.com/pythonarcade/arcade/blob/development/CONTRIBUTING.md)
270+
page has been updated
271+
* Improve `background_parallax` example
272+
273+
### Experimental
274+
275+
* Started on a system for drawing large background textures with parallax scrolling.
276+
This is still experimental and may change in the future.
277+
* Started on an experimental event based input system for controllers
278+
* Started an experiment with vector based sprites
280279

281280
### Contributors
282281

0 commit comments

Comments
 (0)