File: ChangeLog.md

package info (click to toggle)
haskell-sdl2 2.5.5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,344 kB
  • sloc: haskell: 10,247; ansic: 102; makefile: 2
file content (323 lines) | stat: -rw-r--r-- 11,404 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
2.5.X.Y
=======

2.5.5.1
=======

* Added `getTicks64`
* Added `rendererIntegerScale`
* Added unboxed Vector instances for Rectangle
* Updated dependency ranges

2.5.5.0
=======

* Added `windowOpacity` property
* Added `renderGeometry` and `renderGeometryRaw`
  - Requires SDL 2.0.18
  - See `examples/RenderGeometry.hs`
* Changed `SDL.Input.GameController` bindings to be more high-level
  - `ControllerAxisEventData` type changed

2.5.4.0
=======

* Added missing floating point variants of render functions.
* Fixed `createCursor` masks.
* Adapted `createCursorFrom` helper from LambdaHack[1].
* Added `pkgconfig` flag (enabled by default) to make its use optional.

[1]: https://github.com/LambdaHack/LambdaHack/blob/7ed94b4b6c75fc46afeef01d8ac476c4598fb822/engine-src/Game/LambdaHack/Client/UI/Frontend/Sdl.hs#L421-L455

2.5.3.3
=======

* Alignment in hsc files is now provided by hsc2c.

2.5.3.2
=======

* Added high-level binding for `setWindowIcon`.
* Raised `text` upper bound to 2.0.
* Fixed and optimized even polling for SDL 2.0.20.
* `copyExF` and related are under a package flag now.
  Turn on `recent-ish` if you have at least 2.0.10.
* Removed misleading result type from `updateTexture`.

2.5.3.1
=======

* Constructors exported for ModalLocation, SurfacePixelFormat, AudioSpec.
* Added getWindowBordersSize.
* Added SDL.Input.Mouse.createSystemCursor.


2.5.3.0
=======

* Correct the Storable instance for SDL.Raw.Types.Event to correctly convert
  SDL_CONTROLLERAXISMOTION to a ControllerAxisEvent (it was previously
  ControllerButtonEvent). See https://github.com/haskell-game/sdl2/pull/218 for
  more details.

2.5.2.0
=======

* Correct SDL.Raw.Video.vkLoadLibrary to correctly call vkLoadLibraryFFI, rather
  than setClipboardTextFFI. See https://github.com/haskell-game/sdl2/pull/209.

2.5.1.0
=======

* Support `linear-1.21`


2.5.0.0
=======

* Version 2.0.6 of the SDL2 C library is now required.

* Added Vulkan support. See `SDL.Video.WindowGraphicsContext` data type and `SDL.Video.Vulkan` module.

* Support `StateVar` < 1.3


2.4.1.0
=======

* More SDL functions no longer allocate. See
  https://github.com/haskell-game/sdl2/pull/179 and
  https://github.com/haskell-game/sdl2/issues/178. Thanks to @chrisdone for this
  work.


* Fixed an off-by-one bug in `SDL.Input.Mouse.getMouseButtons`. See
  https://github.com/haskell-game/sdl2/pull/177 for more information. Thanks to
  @Linearity for identifying and fixing this bug.


2.4.0.1
=======
* Raise upper bounds for `exceptions` to <0.11


2.4.0
=====
* `getRelativeMouseLocation` now returns `Vector` instead of `Point`.
* `getModalMouseLocation` returns either a `Vector` or a `Point`, wrapped in (new) `ModalLocation`.
* `WindowSizeChangedEventData` includes the new window size.
* Added an invalid state to the `ControllerButtonState` enum, and switched to a more reliable state detection method.
* Raise upper bounds for `exceptions` to <0.10


2.3.0
=====

* Windows builds now use `-D_SDL_main_h`. See https://github.com/haskell-game/sdl2/issues/139 for more discussion.
* Some basic support for game controller events have been added. See `SDL.Input.GameController` and changes to `ControllerDeviceEventData`.
* Support for event watching: `addEventWatch` and `delEventWatch`.
* High-level bindings now distinguish between finger down / motion / up.
  See `SDL.Event.TouchFingerEvent` and `SDL.Event.TouchFingerMotionEvent`.
* Several event payloads now have their `Window` fields modified to use `Maybe Window`, substituting `Nothing` for null pointers.
* High-level structure for controller button state: `ControllerButtonState`.
* High-level structure for controller buttons: `ControllerButton`.
* High-level structure for controller connection: `ControllerDeviceConnection`.
* High-level structure for joystick device connection: `JoyDeviceConnection`.
* High-level structure for joystick button state: `JoyButtonState`.
* Support for user defined events: `registerEvent`, `pushRegisteredEvent`, and `getRegisteredEvent`.
* Initial window visibility can be specified in `WindowConfig` for `createWindow` function.
* `WarpMouseOrigin` is now fully exported and can warp to global coordinates.
* It's possible to retrieve palette information with `paletteNColors`, `paletteColors` and `palletColor`.


2.2.0
=====

* Version 2.0.4 of the SDL2 C library is now required:
  * `SDL.Event`:
    * Add `AudioDeviceEvent` constructor to `Event`
    * Add `KeymapChangedEvent` constructor to `EventPayload`
    * Add `mouseWheelEventDirection` field to `MouseWheelEventData`
  * `SDL.Input.Mouse`:
    * Add `MouseScrollDirection` enumeration
  * `SDL.Raw.Audio`:
    * Add `clearQueuedAudio` function
    * Add `getQueuedAudioSize` function
    * Add `queueAudio` function
  * `SDL.Raw.Enum`:
    * Add `SDL_GL_CONTEXT_RELEASE_BEHAVIOR` pattern synonym
    * Add `JoystickPowerLevel` pattern synonyms
    * Add `SDL_MOUSEWHEEL_NORMAL` and `SDL_MOUSEWHEEL_FLIPPED` pattern synonyms
    * Add `SDL_KEYMAPCHANGED`, `SDL_AUDIODEVICEADDED`, `SDL_AUDIODEVICEREMOVED`,
      `SDL_RENDER_TARGETS_RESET`, and `SDL_RENDER_DEVICE_RESET` pattern synonyms
    * Add `SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE` and
      `SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH` pattern synonyms
    * Add `SDL_WINDOW_MOUSE_CAPTURE` pattern synonym
  * `SDL.Raw.Event`:
    * Add `captureMouse` function
    * Add `getGlobalMouseState` function
    * Add `warpMouseGlobal` function
    * Add `joystickCurrentPowerLevel` function
    * Add `joystickFromInstanceID` function
    * Add `gameControllerFromInstanceID` function
  * `SDL.Raw.Event`:
    * Add `AudioDeviceEvent` constructor to `Event`
    * Add `KeymapChangedEvent` constructor to `Event`
    * Add `mouseWheelEventDirection` field to `MouseMotionEvent` constructor

* Add `SDL.Exception` module, exposing `SDLException`
* Add new function, `createSoftwareRenderer`, to render onto a surface
* Add joystick POV hat support
* Remove deprecated functionality:
  * `InitEverything` enumeration in `SDL.Init`
  * `mapRGB` in `SDL.Video.Renderer`
  * `setRelativeMouseMode` in `SDL.Input.Mouse`
  * `getRelativeMouseMode` in `SDL.Input.Mouse`
  * `getMouseLocation` in `SDL.Input.Mouse`
* Remove `ClipboardUpdateEventData`
* Merge `isScreenSaverEnabled`, `enableScreenSaver`, and `disableScreenSaver`
  into a `screenSaverEnabled` StateVar.
* Make function `surfaceBlit` in `SDL.Video.Renderer` return final blit
  rectangle post-clipping.
* Make all fields in EventData constructors strict
* Fix issue with `setWindowMode` transitions not working properly between
  fullscreen and windowed modes.

2.1.3.1
=======

* Raise upper bounds for `vector` to <0.13

2.1.3
=====

* Cabal flag `no-linear` removes dependency on `linear` (and thus, transiently,
  `lens`). See `SDL.Vect` for details.
* Remove 'lens' dependency from all examples.
* Add Cabal flag `opengl-example` to separate that target from `examples`,
  because it is now the only example with an extra dependency (OpenGL).
* Make `hlint` happy with examples.
* Add `updateTexture` wrapper for native `SDL_UpdateTexture`.
* Expose `glGetDrawableSize` (can differ from window size in some environments).
* Correct `hintToString` output to match SDL hint tokens, rather than the names
  of the CPP macros defining them.
* Removed `ghc-options: -Wall` until we drop support for GHC 7.8. (>1300 warnings!)
* Various documentation updates.

2.1.2.1
=======

* Raise upper bounds for `lens` to <4.15 (affects examples only)

2.1.2
=====

* Revise some documentation examples to be more idomatic
* Update `.gitignore` to cover `stack` and other tools
* Raise upper bounds for `transformers` to <0.6
* Lower required SDL2 version to 2.0.2.
* Fix decoding of `TextEditingEvent` where the Raw bindings failed to stop reading
  character data past the null terminator.

2.1.1
=====

* `SDL.Input.Mouse` new has a new API for fetching the location of the mouse. This
  API gives you greater control over finding the mouse position with respect to the
  various "modes" a mouse can be in. The old API still exists, but will be removed
  at some point in the future.
* `SDL.Raw` now has a binding to `SDL_free`.

2.1.0
=====

* Introduce `initializeAll` and deprecate `InitEverything`. To fix this deprecation
  warning, change `initialize [InitEverything]` to `initializeAll`.
* `surfaceColorKey`, `surfaceFillRect` and `surfaceFillRects` now all operate on
  on RGBA `V4 Word8` values. They all implicitly map and unmap (using `SDL_MapRGBA`
  and `SDL_GetRGBA` respectively).
* `SDL.mapRGB` is now deprecated, as this conversion is always done for you.
  If you still need this routine, use `SDL.Raw.mapRGB`.
* Fix a runtime crash when reading the current BlendMode of a texture. Thanks to
  @seppeljordan for discovering and fixing this bug.

2.0.0
=====
* Introduce a set of comprehensive high-level bindings to SDL. These bindings
  should allow users to work with SDL while writing idiomatic Haskell code. They
  take care of pointer manipulation, and wrap up values in much more "natural"
  data types. The high-level bindings live in the `SDL` namespace, and have been
  extensively documented.
* Raw bindings have been moved from `Graphics.UI.SDL` to `SDL.Raw`.


1.3.1
=====
* Correct type signature of `getSurfaceBlendMode`

1.3.0
=====
* Use pattern synonyms exclusively
  * `Graphics.UI.SDL.Enum.Pattern` overrides `Graphics.UI.SDL.Enum`
* Generalize all IO functions over MonadIO
* Add convenience wrapper functions for constructing FunPtr callbacks
* Add Typeable instances to all type classes
* Add strictness annotations to all data structure fields
* Add missing `SDLK_AUDIOPREV` enumeration
* Correct deserialization of `SDL_TEXTINPUT` event
  * Data beyond the null terminator was returned previously

1.2.0
=====
* Add support for pattern synonyms as an alternative for SDL enumerations
  * Only present when compiling with GHC 7.8 or newer
* Add missing enumerations:
  * `keymodShift`, `keymodCtrl`, `keymodAlt`, `keymodGUI`
  * `keyPressend`, `keyReleased`
  * `toucheMouseID`
* Specialize init flags over `InitFlag`, a `Word32`
* Generalize `keymod*` enumerations over `Num`
  * The C API is inconsistent on their types
* Fix foreign imports on `Graphics.UI.SDL.Thread`
* Correct type signature of `getRenderDrawBlendMode`
* Correct type signature of `queryTexture`
* Remove export of `Keycode` from `Graphics.UI.SDL.Types`
  * `Graphics.UI.SDL.Enum` already exports `Keycode`

1.1.3
=====
* Add missing `Keycode` enumerations
* Add missing enumerations:
  * `audioAllowFrequencyChange`, `audioAllowFormatChange`
  * `audioAllowChannelsChange`, `audioAllowAnyChange`

1.1.2
=====
* Add `ClipboardUpdateEvent` to `Event` data structure
* Add `UnknownEvent` to `Event` data structure

1.1.1
=====
* Add `Graphics.UI.SDL.Platform` module
* Add `Graphics.UI.SDL.Thread` module and associated types and enumerations
* Add `getWindowWMInfo`
* Add `setError`
* Add additional logging functions

1.1.0
=====
* Require SDL 2.0.3
  * Add `gameControllerAddMappingsFromFile`
  * Add `gameControllerAddMappingsFromRW`
  * Add `glResetAttributes`
  * Add `mouseButtonEventClicks` field to `WindowEvent`
* Add missing mouse button enumerations

1.0.2
=====
* Correct type signature of `getNumTouchFingers`

1.0.1
=====
* Factor type of `addHintCallback` and `delHintCallback` into `HintCallback`
* Add `Version` data structure