|
2 | 2 |
|
3 | 3 | ## Changelog guidelines (apply to `5.5.0.0` onward) |
4 | 4 |
|
5 | | -Changes ported from the upstream raylib code are not mentioned unless they are breaking changes. Changes and bug fixes in the h-raylib API are mentioned, breaking and non-breaking. Internal changes that do not change the API or affect functionality are not mentioned (e.g. performance improvements). |
| 5 | +Changes ported from the upstream raylib code are not mentioned unless they are |
| 6 | +breaking changes. Changes and bug fixes in the h-raylib API are mentioned, |
| 7 | +breaking and non-breaking. Internal changes that do not change the API or affect |
| 8 | +functionality are not mentioned (e.g. performance improvements). |
6 | 9 |
|
7 | 10 | ### Versioning scheme |
8 | 11 |
|
9 | | -h-raylib's version numbers do not follow the usual format. The first two numbers in the version track the underlying C raylib version. For example, `5.1.x.x` versions use raylib 5.1 under the hood. The third number represents breaking changes (renamed/deleted functions or modules). The last number represents non-breaking changes (new functions or modules, bug fixes, etc). The safest version bound format to use is `h-raylib >=x.y.z.w && <x.y.(z+1)` (instead of the usual `^>=` bound). |
| 12 | +h-raylib's version numbers do not follow the usual format. The first two numbers |
| 13 | +in the version track the underlying C raylib version. For example, `5.1.x.x` |
| 14 | +versions use raylib 5.1 under the hood. The third number represents breaking |
| 15 | +changes (renamed/deleted functions or modules). The last number represents |
| 16 | +non-breaking changes (new functions or modules, bug fixes, etc). The safest |
| 17 | +version bound format to use is `h-raylib >=x.y.z.w && <x.y.(z+1)` (instead of |
| 18 | +the usual `^>=` bound). |
10 | 19 |
|
11 | | -## Version 5.5.3.1 |
12 | | -_14 October 2025_ |
| 20 | +## Version 5.6.0.0 _19 January 2026_ |
| 21 | + |
| 22 | +- \[[#61](https://github.com/Anut-py/h-raylib/issues/61)\] Fixed a bug where |
| 23 | + model animations didn't load properly |
| 24 | +- \[[#68](https://github.com/Anut-py/h-raylib/issues/68)\] `vectorNormalize` no |
| 25 | + longer attempts to normalize zero vectors |
| 26 | +- \[[#69](https://github.com/Anut-py/h-raylib/issues/69)\] Most types are now |
| 27 | + instances of `Read` |
| 28 | + |
| 29 | +## Version 5.5.3.1 _14 October 2025_ |
13 | 30 |
|
14 | 31 | - Fixed a bug with `setTraceLogCallback` not working properly |
15 | 32 |
|
16 | | -## Version 5.5.3.0 |
17 | | -_14 August 2025_ |
| 33 | +## Version 5.5.3.0 _14 August 2025_ |
18 | 34 |
|
19 | 35 | - **BREAKING CHANGE**: Bracket functions now only work with the `IO` monad |
20 | | -- \[[#60](https://github.com/Anut-py/h-raylib/issues/60)\] Added the `disable-lens` flag |
| 36 | +- \[[#60](https://github.com/Anut-py/h-raylib/issues/60)\] Added the |
| 37 | + `disable-lens` flag |
21 | 38 | - Loosened version bounds |
22 | 39 |
|
23 | | -## Version 5.5.2.1 |
24 | | -_28 October 2024_ |
| 40 | +## Version 5.5.2.1 _28 October 2024_ |
25 | 41 |
|
26 | 42 | - Bug fixes for web compilation |
27 | 43 |
|
28 | | -## Version 5.5.2.0 |
29 | | -_21 October 2024_ |
| 44 | +## Version 5.5.2.0 _21 October 2024_ |
30 | 45 |
|
31 | | -- **BREAKING CHANGE**: `is*Ready` functions renamed to `is*Valid` (upstream change in raylib) |
32 | | -- **BREAKING CHANGE**: `setGamepadVibration` takes a fourth argument, `duration` (upstream change in raylib) |
| 46 | +- **BREAKING CHANGE**: `is*Ready` functions renamed to `is*Valid` (upstream |
| 47 | + change in raylib) |
| 48 | +- **BREAKING CHANGE**: `setGamepadVibration` takes a fourth argument, `duration` |
| 49 | + (upstream change in raylib) |
33 | 50 | - Loosened the version bound on `base` |
34 | 51 |
|
35 | | -## Version 5.5.1.0 |
36 | | -_11 October 2024_ |
| 52 | +## Version 5.5.1.0 _11 October 2024_ |
37 | 53 |
|
38 | | -- **BREAKING CHANGE**: `set*Callback` functions are no longer managed and do not return `IO C'*Callback` values |
| 54 | +- **BREAKING CHANGE**: `set*Callback` functions are no longer managed and do not |
| 55 | + return `IO C'*Callback` values |
39 | 56 | - **BREAKING CHANGE**: Removed `loadImageSvg` (upstream change in raylib) |
40 | | -- \[[#58](https://github.com/Anut-py/h-raylib/issues/58)\] Added support for `setTraceLogCallback` |
| 57 | +- \[[#58](https://github.com/Anut-py/h-raylib/issues/58)\] Added support for |
| 58 | + `setTraceLogCallback` |
41 | 59 |
|
42 | | -## Version 5.5.0.0 |
43 | | -_12 July 2024_ |
| 60 | +## Version 5.5.0.0 _12 July 2024_ |
44 | 61 |
|
45 | 62 | - **BREAKING CHANGE**: Reimplemented `Vector2/3/4` using `linear`'s `V2/3/4` |
46 | | -- \[[#55](https://github.com/Anut-py/h-raylib/issues/55)\] **BREAKING CHANGE**: Completely reworked memory management (check `DOCUMENTATION.md` and the example programs) |
| 63 | +- \[[#55](https://github.com/Anut-py/h-raylib/issues/55)\] **BREAKING CHANGE**: |
| 64 | + Completely reworked memory management (check `DOCUMENTATION.md` and the |
| 65 | + example programs) |
47 | 66 | - Dropped ghc 8.10 support |
48 | | -- \[[#54](https://github.com/Anut-py/h-raylib/issues/54)\] Exposed internal modules |
49 | | -- \[[#56](https://github.com/Anut-py/h-raylib/issues/56)\] Fixed a bug with `loadFontEx` and other font-related functions not working |
| 67 | +- \[[#54](https://github.com/Anut-py/h-raylib/issues/54)\] Exposed internal |
| 68 | + modules |
| 69 | +- \[[#56](https://github.com/Anut-py/h-raylib/issues/56)\] Fixed a bug with |
| 70 | + `loadFontEx` and other font-related functions not working |
50 | 71 |
|
51 | | -## Version 5.1.3.0 |
52 | | -_13 April, 2024_ |
| 72 | +## Version 5.1.3.0 _13 April, 2024_ |
53 | 73 |
|
54 | 74 | - Made some utility functions pure |
55 | 75 | - Improved the performance of `Raylib.Util.Math` |
56 | 76 |
|
57 | | -## Version 5.1.2.0 |
58 | | -_9 April, 2024_ |
| 77 | +## Version 5.1.2.0 _9 April, 2024_ |
59 | 78 |
|
60 | 79 | - Internal changes for performance |
61 | 80 | - Fixed a typo in `filePathList'capacity` (previously `filePathlist'capacity`) |
62 | 81 | - Fixed marshalling bugs with `FilePathList` |
63 | 82 |
|
64 | | -## Version 5.1.1.0 |
65 | | -_22 February, 2024_ |
| 83 | +## Version 5.1.1.0 _22 February, 2024_ |
66 | 84 |
|
67 | | -- Split `Raylib.Types` into different modules (`Raylib.Types` reexports everything, so this will not break existing code) |
| 85 | +- Split `Raylib.Types` into different modules (`Raylib.Types` reexports |
| 86 | + everything, so this will not break existing code) |
68 | 87 | - Fixed `flake.nix` and `default.nix` |
69 | 88 | - Exposed all the native functions |
70 | 89 | - Added support for callbacks |
71 | 90 | - Added more thorough Haddock documentation |
72 | 91 | - Added pointer utility functions (`p'*`) |
73 | | -- \[[#4](https://github.com/Anut-py/h-raylib/issues/4)\] Started working on web support |
74 | | -- \[[#34](https://github.com/Anut-py/h-raylib/issues/34)\] Added bindings for raygui (`Raylib.Util.GUI`, `Raylib.Util.GUI.Styles`) |
| 92 | +- \[[#4](https://github.com/Anut-py/h-raylib/issues/4)\] Started working on web |
| 93 | + support |
| 94 | +- \[[#34](https://github.com/Anut-py/h-raylib/issues/34)\] Added bindings for |
| 95 | + raygui (`Raylib.Util.GUI`, `Raylib.Util.GUI.Styles`) |
75 | 96 |
|
76 | | -## Version 5.1.0.1 |
77 | | -_16 January, 2024_ |
| 97 | +## Version 5.1.0.1 _16 January, 2024_ |
78 | 98 |
|
79 | 99 | - Updated raylib to the master branch |
80 | | -- \[[#26](https://github.com/Anut-py/h-raylib/pull/26)\] New `platform-nixos` build flag |
81 | | -- \[[#27](https://github.com/Anut-py/h-raylib/pull/27), [#35](https://github.com/Anut-py/h-raylib/pull/35)\] Added flake.nix |
| 100 | +- \[[#26](https://github.com/Anut-py/h-raylib/pull/26)\] New `platform-nixos` |
| 101 | + build flag |
| 102 | +- \[[#27](https://github.com/Anut-py/h-raylib/pull/27), |
| 103 | + [#35](https://github.com/Anut-py/h-raylib/pull/35)\] Added flake.nix |
82 | 104 |
|
83 | | -## Version 4.6.0.7 |
84 | | -_10 September, 2023_ |
| 105 | +## Version 4.6.0.7 _10 September, 2023_ |
85 | 106 |
|
86 | 107 | - Updated raylib to the master branch |
87 | 108 |
|
88 | | -## Version 4.6.0.6 |
89 | | -_24 July, 2023_ |
| 109 | +## Version 4.6.0.6 _24 July, 2023_ |
90 | 110 |
|
91 | 111 | - Updated raylib to the master branch |
92 | 112 |
|
93 | | -## Version 4.6.0.5 |
94 | | -_29 June, 2023_ |
| 113 | +## Version 4.6.0.5 _29 June, 2023_ |
95 | 114 |
|
96 | | -- \[[#22](https://github.com/Anut-py/h-raylib/pull/22)\] Allowed `base-4.18` to support GHC 9.4 and higher |
97 | | -- \[[#23](https://github.com/Anut-py/h-raylib/pull/23)\] Added helper functions in `Raylib.Util` as an alternative to the `begin*` and `end*` functions |
| 115 | +- \[[#22](https://github.com/Anut-py/h-raylib/pull/22)\] Allowed `base-4.18` to |
| 116 | + support GHC 9.4 and higher |
| 117 | +- \[[#23](https://github.com/Anut-py/h-raylib/pull/23)\] Added helper functions |
| 118 | + in `Raylib.Util` as an alternative to the `begin*` and `end*` functions |
98 | 119 |
|
99 | | -## Version 4.6.0.4 |
100 | | -_16 June, 2023_ |
| 120 | +## Version 4.6.0.4 _16 June, 2023_ |
101 | 121 |
|
102 | 122 | - Updated raylib to the master branch |
103 | | -- \[[#19](https://github.com/Anut-py/h-raylib/pull/19)\] Changed all the `Raylib.Util` functions to use `MonadIO` for flexibility |
104 | | -- \[[#20](https://github.com/Anut-py/h-raylib/pull/20)\] Changed `CFloat` to `Float` in `drawCapsule` and `drawCapsuleWires` |
| 123 | +- \[[#19](https://github.com/Anut-py/h-raylib/pull/19)\] Changed all the |
| 124 | + `Raylib.Util` functions to use `MonadIO` for flexibility |
| 125 | +- \[[#20](https://github.com/Anut-py/h-raylib/pull/20)\] Changed `CFloat` to |
| 126 | + `Float` in `drawCapsule` and `drawCapsuleWires` |
105 | 127 |
|
106 | | -## Version 4.6.0.3 |
107 | | -_23 April, 2023_ |
| 128 | +## Version 4.6.0.3 _23 April, 2023_ |
108 | 129 |
|
109 | 130 | - Updated raylib to the master branch |
110 | | -- \[[#18](https://github.com/Anut-py/h-raylib/pull/18)\] Added lenses for raylib data structures |
| 131 | +- \[[#18](https://github.com/Anut-py/h-raylib/pull/18)\] Added lenses for raylib |
| 132 | + data structures |
111 | 133 |
|
112 | | -## Version 4.6.0.2 |
113 | | -_8 April, 2023_ |
| 134 | +## Version 4.6.0.2 _8 April, 2023_ |
114 | 135 |
|
115 | 136 | - Fixed a bug in `clamp` |
116 | 137 | - Updated raylib to the master branch |
117 | 138 |
|
118 | | -## Version 4.6.0.1 |
119 | | -_2 April, 2023_ |
| 139 | +## Version 4.6.0.1 _2 April, 2023_ |
120 | 140 |
|
121 | | -- Created the `Raylib.Util.Math` and `Raylib.Util.Camera` modules. They are Haskell implementations of `raymath` and `rcamera`. |
122 | | -- \[[#15](https://github.com/Anut-py/h-raylib/pull/15)\] Fixed a memory issue with `getFontDefault` |
| 141 | +- Created the `Raylib.Util.Math` and `Raylib.Util.Camera` modules. They are |
| 142 | + Haskell implementations of `raymath` and `rcamera`. |
| 143 | +- \[[#15](https://github.com/Anut-py/h-raylib/pull/15)\] Fixed a memory issue |
| 144 | + with `getFontDefault` |
123 | 145 |
|
124 | | -## Version 4.5.3.4 |
125 | | -_19 March, 2023_ |
| 146 | +## Version 4.5.3.4 _19 March, 2023_ |
126 | 147 |
|
127 | 148 | - Updated raylib to the master branch |
128 | 149 |
|
129 | | -## Version 4.5.3.3 |
130 | | -_15 March, 2023_ |
| 150 | +## Version 4.5.3.3 _15 March, 2023_ |
131 | 151 |
|
132 | 152 | - Added GHCi support (see README.md for usage instructions) |
133 | 153 | - Updated raylib to the master branch |
134 | 154 | - Removed global state; use `WindowResources` (see examples for usage) |
135 | 155 |
|
136 | | -## Version 4.5.3.2 |
137 | | -_1 March, 2023_ |
| 156 | +## Version 4.5.3.2 _1 March, 2023_ |
138 | 157 |
|
139 | | -- \[[#12](https://github.com/Anut-py/h-raylib/pull/12)\] Added rlgl bindings (`Raylib.Util.RLGL`) |
| 158 | +- \[[#12](https://github.com/Anut-py/h-raylib/pull/12)\] Added rlgl bindings |
| 159 | + (`Raylib.Util.RLGL`) |
140 | 160 |
|
141 | | -## Version 4.5.3.1 |
142 | | -_27 February, 2023_ |
| 161 | +## Version 4.5.3.1 _27 February, 2023_ |
143 | 162 |
|
144 | 163 | - Added manual asset unloading functions |
145 | 164 | - Updated raylib to the master branch |
146 | | -- \[[#11](https://github.com/Anut-py/h-raylib/pull/11)\] Fixed a build issue on MacOS |
| 165 | +- \[[#11](https://github.com/Anut-py/h-raylib/pull/11)\] Fixed a build issue on |
| 166 | + MacOS |
147 | 167 |
|
148 | | -## Version 4.5.3.0 |
149 | | -_24 February, 2023_ |
| 168 | +## Version 4.5.3.0 _24 February, 2023_ |
150 | 169 |
|
151 | | -- **BREAKING CHANGE**: Restructured project; the main modules are moved into `Raylib/Core` and `Raylib.Colors` is now `Raylib.Util.Colors` |
152 | | -- Changed `setShaderValue` and `setShaderValueV` to consume Haskell values rather than `Ptr`s |
| 170 | +- **BREAKING CHANGE**: Restructured project; the main modules are moved into |
| 171 | + `Raylib/Core` and `Raylib.Colors` is now `Raylib.Util.Colors` |
| 172 | +- Changed `setShaderValue` and `setShaderValueV` to consume Haskell values |
| 173 | + rather than `Ptr`s |
153 | 174 | - Added the `Raylib.Util` module for utility functions |
154 | 175 |
|
155 | | -## Version 4.5.2.0 |
156 | | -_21 February, 2023_ |
| 176 | +## Version 4.5.2.0 _21 February, 2023_ |
157 | 177 |
|
158 | 178 | - **BREAKING CHANGE**: Removed asset unloading functions |
159 | 179 | - **BREAKING CHANGE**: Changed `Camera3D` API to match C code |
160 | 180 | - Added code to automatically unload assets |
161 | 181 | - Added mathematical operators for vector types |
162 | 182 | - Updated raylib to the master branch |
163 | 183 |
|
164 | | -## Version 4.5.1.1 |
165 | | -_14 February, 2023_ |
| 184 | +## Version 4.5.1.1 _14 February, 2023_ |
166 | 185 |
|
167 | 186 | - Added finalizers to auto-unload audio data |
168 | 187 | - Fixed C include errors |
169 | 188 |
|
170 | | -## Version 4.5.1.0 |
171 | | -_12 February, 2023_ |
| 189 | +## Version 4.5.1.0 _12 February, 2023_ |
172 | 190 |
|
173 | 191 | - **BREAKING CHANGE**: Changed all types to minimize usage of `Ptr`s |
174 | | -- **BREAKING CHANGE**: Split the `Raylib` module into six modules: `Raylib.Audio`, `Raylib.Core`, `Raylib.Models`, `Raylib.Shapes`, `Raylib.Text`, and `Raylib.Textures` |
| 192 | +- **BREAKING CHANGE**: Split the `Raylib` module into six modules: |
| 193 | + `Raylib.Audio`, `Raylib.Core`, `Raylib.Models`, `Raylib.Shapes`, |
| 194 | + `Raylib.Text`, and `Raylib.Textures` |
175 | 195 | - Added the internal `Freeable` typeclass to prevent memory leaks |
176 | | -- \[[#8](https://github.com/Anut-py/h-raylib/issues/8)\] Added `Xext` as a dependency again |
| 196 | +- \[[#8](https://github.com/Anut-py/h-raylib/issues/8)\] Added `Xext` as a |
| 197 | + dependency again |
177 | 198 |
|
178 | | -## Version 4.5.0.12 |
179 | | -_14 January, 2023_ |
| 199 | +## Version 4.5.0.12 _14 January, 2023_ |
180 | 200 |
|
181 | 201 | - Removed `ShaderLocationIndex` from some function types |
182 | 202 |
|
183 | | -## Version 4.5.0.11 |
184 | | -_14 January, 2023_ |
| 203 | +## Version 4.5.0.11 _14 January, 2023_ |
185 | 204 |
|
186 | 205 | - Fixed some function types |
187 | 206 | - Allowed omitting fragment/vertex shaders in `loadShader` functions |
188 | 207 |
|
189 | | -## Version 4.5.0.10 |
190 | | -_5 January, 2023_ |
| 208 | +## Version 4.5.0.10 _5 January, 2023_ |
191 | 209 |
|
192 | 210 | - Restructured to make the examples easier to run |
193 | 211 | - Updated raylib to the master branch |
194 | 212 |
|
195 | | -## Version 4.5.0.9 |
196 | | -_23 December, 2022_ |
| 213 | +## Version 4.5.0.9 _23 December, 2022_ |
197 | 214 |
|
198 | 215 | - Changed `setConfigFlags` and `setGesturesEnabled` to use an array of flags |
199 | 216 |
|
200 | | -## Version 4.5.0.8 |
201 | | -_18 December, 2022_ |
| 217 | +## Version 4.5.0.8 _18 December, 2022_ |
202 | 218 |
|
203 | | -- \[[#9](https://github.com/Anut-py/h-raylib/issues/9)\] Fixed an issue on Mac where `clang` failed to detect that `rglfw.c` was using objective-c |
| 219 | +- \[[#9](https://github.com/Anut-py/h-raylib/issues/9)\] Fixed an issue on Mac |
| 220 | + where `clang` failed to detect that `rglfw.c` was using objective-c |
204 | 221 |
|
205 | | -## Version 4.5.0.7 |
206 | | -_26 November, 2022_ |
| 222 | +## Version 4.5.0.7 _26 November, 2022_ |
207 | 223 |
|
208 | 224 | \[[#7](https://github.com/Anut-py/h-raylib/pull/7)\] |
209 | 225 |
|
210 | | -- Removed all constants that were enums in the original C API and replaced them with sum types deriving `Enum` |
| 226 | +- Removed all constants that were enums in the original C API and replaced them |
| 227 | + with sum types deriving `Enum` |
211 | 228 | - Removed some `CInt` usage in the main API |
212 | 229 | - Removed `Raylib.Constants` |
213 | 230 |
|
214 | | -## Version 4.5.0.6 |
215 | | -_24 November, 2022_ |
| 231 | +## Version 4.5.0.6 _24 November, 2022_ |
216 | 232 |
|
217 | | -- \[[#6](https://github.com/Anut-py/h-raylib/issues/6)\] Fixed `Font` marshalling |
| 233 | +- \[[#6](https://github.com/Anut-py/h-raylib/issues/6)\] Fixed `Font` |
| 234 | + marshalling |
218 | 235 |
|
219 | | -## Version 4.5.0.5 |
220 | | -_19 November, 2022_ |
| 236 | +## Version 4.5.0.5 _19 November, 2022_ |
221 | 237 | - Replaced `CInt` with `CBool` in `RayCollision` |
222 | 238 | - Updated raylib to the master branch |
223 | 239 |
|
224 | | -## Version 4.5.0.4 |
225 | | -_13 November, 2022_ |
| 240 | +## Version 4.5.0.4 _13 November, 2022_ |
226 | 241 | - Replaced `CInt` with `CBool` for functions that return booleans |
227 | 242 | - Removed `Xext` dependency (it is no longer required for Nix builds) |
0 commit comments