File: CHANGES-5.2.txt

package info (click to toggle)
allegro5 2%3A5.2.6.0-3%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 24,212 kB
  • sloc: ansic: 125,319; cpp: 15,781; objc: 4,579; python: 2,802; java: 2,254; javascript: 1,204; sh: 1,002; makefile: 51; perl: 37; xml: 25; pascal: 24
file content (853 lines) | stat: -rw-r--r-- 21,513 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
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
Allegro changelog for 5.2.x series
Changes from 5.2.5 to 5.2.6 (February 2020)
Changes from 5.2.4 to 5.2.5 (February 2019)
Changes from 5.2.3 to 5.2.4 (February 2018)
Changes from 5.2.2 to 5.2.3 (October 2017)
Changes from 5.2.1.1 to 5.2.2 (December 2016)
Changes from 5.2.1 to 5.2.1.1 (August 2016)
Changes from 5.2.0 to 5.2.1 (July 2016)
Changes from 5.1.13.1 to 5.2.0 (April 2016)
Allegro changelog for 5.2.x series
**********************************

These lists serve as summaries; the full histories are in the git
repository.

Changes from 5.2.5 to 5.2.6 (February 2020)
*******************************************

The main developers this time were: SiegeLord, Peter Hull, Karthik Kumar
Viswanathan, Elias Pschernig, Sebastian Krzyszkowiak, Doug Thompson,
PmProg, RmBeer.

Core:

   • Fix timestamps being clamped to ints on touch inputs with X11.

   • Fix al_utf8_width argument type mismatch on platforms where
     ‘sizeof(int) != 4’.

   • Fix building for GNU/Linux without GNU extensions enabled

   • Some refactoring to simplify adding new drivers.

Graphics:

   • Fix for OpenGL version selection and reporting on Windows and X
     (Edgar Reynaldo).

   • Report OpenGL version in display options on Android, iOS and
     Raspberry Pi.

   • Fix creation of the bitmap depth buffer for non-square bitmaps
     (Kevin Wellwood).

   • Fix ‘ALLEGRO_ALPHA_TEST_VALUE’ not being interpreted correctly.

   • Fix reported bitshifts for ‘ARGB_4444’ and ‘RGBA_4444’ pixel
     formats.

   • Fix alpha test with the GLSL version.

Android:

   • Do not build Android examples outside of Android.

   • Use the cmake toolchain provided by the Android NDK.

   • Use FLAG_KEEP_SCREEN_ON instead of a wakelock for screensaver
     inhibition.

   • Use DisplayListener to listen to orientation changes.

   • Implement ‘ALLEGRO_FRAMELESS’ on Android.  This hides the
     navigation buttons and the bar on top.

Linux:

   • Fix ‘al_inhibit_screensaver’ function.

OSX:

   • Ensure system calls happen on the main thread.

   • Make things work on Catalina.

Hurd:

   • Fix pthreads (Andreas Rönnquist).

Windows:

   • Implement Windows version check using non-deprecated functions.

   • Abstract UNICODE vs ANSI string handling, switch to using UNICODE
     by default.

   • Enable debug window for ‘DEBUGMODE’ on Windows.

SDL:

   • Fix requesting GLES profile on GL Allegro.

   • Add audio recorder implementation.

   • Don’t link with dl, it’s unnecessary.

Addons:

   • Add a whole bunch of ‘al_is_*_initialized’ functions (Mark Oates).

Acodec addon:

   • Add MP3 support via the MiniMP3 library.

Audio addon:

   • Allow calling ‘al_destroy_audio_recorder’ on NULL.

   • Fix some stream garbage audio issues for high playback speeds.

Image addon:

   • Add support for FreeImage library.

   • Always prefer non-system image loaders.

Python wrapper:

   • Fix a number of bugs (zachs18 and others).

Misc:

   • Add an ‘.editorconfig’ file.

   • Convert our internal Python scripts to Python 3.

Examples:

   • ‘ex_draw_bitmap’ - Add more options.

Changes from 5.2.4 to 5.2.5 (February 2019)
*******************************************

The main developers this time were: Sebastian Krzyszkowiak, SiegeLord,
Elias Pschernig, Bruce Pascoe, Aldrik Ramaekers, Firat Salgur.

Core:

   • Try to identify bitmap format for unknown extensions.

   • Add some missing OpenGL 4.3 functions.

   • Add ‘al_create_thread_with_stacksize’ to create threads with a
     custom stack size.  (Aldrik Ramaekers)

   • Add ‘al_get_system_id’ function, letting you disambiguate platforms
     at runtime.

Graphics:

   • Add ‘al_get_monitor_dpi’ to query the DPI of a monitor.

   • Add new API for making blender a bitmap-local state (like
     transformations), which can simplify some code.  See
     ‘al_set_bitmap_blender’ and the related APIs.  Also see the
     ‘ex_blend_target’ example.

   • Added ‘al_transpose_transform’.  This is useful for rotation
     transformations.

   • Rework internal GLES support for better portability.

   • Don’t force POT bitmaps on GLES.

   • Fix repeated bitmap locking on OpenGL.

Android:

   • Various documentation and other improvements (Christian Mauduit).

   • Fix OpenGL version reporting after display creation.

iOS:

   • Fix OpenGL version reporting after display creation.

Linux:

   • Improve linux joystick detections.

   • Fix a number of memory leaks/crashes in the audio addon when using
     pulseaudio/alsa.  (Julian Smythe)

   • Fix compilation with Mesa 18.2.5 and later.

   • Fix OpenGL version reporting after display creation (Edgar
     Reynaldo).

   • Fix requesting specific OpenGL versions via display options (Edgar
     Reynaldo).

OSX:

   • Make ‘al_get_monitor_info’ return the correct values for Retina
     displays.

   • Fix vsync on OSX 10.14+.

RaspberryPi:

   • Fix OpenGL version reporting after display creation.

Windows:

   • Fix toggling of menu checkboxes by id.

   • Fix ‘al_draw_indexed_primitive’ while using Direct3D.

   • Fix crash when passing ‘NULL’ display to
     ‘al_show_native_file_dialog’ while using
     ‘ALLEGRO_FILECHOOSER_FOLDER’.

   • Fix OpenGL version reporting after display creation (Edgar
     Reynaldo).

   • Fix requesting specific OpenGL versions via display options (Edgar
     Reynaldo).

SDL:

   • Sebastian Krzyszkowiak has spent a lot of effort to making the SDL
     backend usable as a nearly fully featured Allegro backend.  You can
     use it on platforms native Allegro implementations do not support
     (such as emscripten, etc.).

Addons:

   • Better logging when failing to load a resource.

   • Fix a memory leak when destroying a mixer with attached streams.

   • Fix a memory leak in the audio destroying a mixer with attached
     streams.

Acodec addon:

   • Allow modules to loop properly when the user hasn’t specified loop
     points.  (Todd Cope)

Audio addon:

   • Better support for big endian.  (Douglas Mencken)

TTF addon:

   • Added support of HarfBuzz in FreeType (Arves100).

Documentation:

   • Source links now point to the correct commit on GitHub.

   • General improvements and clarifications.

Examples:

   • Add ‘ex_blend_target’.

Changes from 5.2.3 to 5.2.4 (February 2018)
*******************************************

The main developers this time were: Sebastian Krzyszkowiak, Elias
Pschernig, SiegeLord

Core:

   • Fix errors when reading/writing 0 byte buffers (Bruce Pascoe).

   • Re-initialize TLS when Allegro is installed (Issue #865).

   • Add ‘al_transform_coordinates_4d’.

   • Don’t initialize the trace mutex multiple times (Issue #874).

   • Fix 3D (non-projection) transforms with ‘al_hold_bitmap_drawing’.

Raspberry Pi port:

   • Fix compilation on RPI.

Android port:

   • Remove limit on the working directory length.

   • Fix ‘ALLEGRO_MAXIMIZED’ flag.

   • Fix build with older Android NDKs.

   • Remove ‘glClear’ hack for Android 2.1.

Linux port:

   • Make compositor bypass configurable in X11, and bypass only when
     fullscreen by default.

OSX port:

   • Fix a few OSX retina scaling issues (Issue #851).

Audio addon:

   • Fix ALSA lag.

   • Add an option to use the desktop window when initializing
     DirectSound (Issue #877).

Font addon:

   • Add support for bmfont format.

Native dialog addon:

   • Resize the display on Windows when hiding/showing the menu (Issue
     #860).

   • Detect when ‘al_popup_menu’ fails to actually work under GTK (Issue
     #808).

   • Don’t clear the top-level menu when destroying the popup menu.

Build system:

   • Don’t link in libm on MSVC for DUMB (Issue #847).

   • Don’t use the LOCATION property (Issue #847).

   • Don’t use SYSTEM for DirectX includes.

   • Add hints for mingw-w64 path locations for DirectX includes/libs.

Python binding:

   • Fix the Python code-generation scripts to run under Python 2.

Lua binding:

   • Add script to generate LuaJIT C API for Allegro 5 (BQ).

Documentation:

   • Many improvements (Andreas Rönnquist, others)

Examples:

   • Add a texture to the skybox in ‘ex_camera’.

Changes from 5.2.2 to 5.2.3 (October 2017)
******************************************

The main developers this time were: Elias Pschernig, SiegeLord,
Sebastian Krzyszkowiak, Vitaliy V. Tokarev, Simon Naarmann, Bruno Félix
Rezende Ribeiro, Trent Gamblin).

Core:

   • Add ‘al_path_ustr’ (Bruce Pascoe).

   • Handle NULL sections more gracefully with the config API.

   • Add missing ‘glStencilMaskSeparate prototype’ (Aaron Bolyard).

   • Add ‘al_clear_keyboard_state’.

   • Don’t add blank lines before config sections when writing them out.

   • Fix ‘fs_stdio_read_directory’ appending an extra slash.

   • Fix ‘al_set_window_constraints’ when the flag ALLEGRO_MAXIMIZED is
     set.

   • Fix ‘al_set_clipping_rectangle’ when out-of-bounds (Bruce Pascoe).

   • Enable blocked locking of S3TC formats unconditionally.

Raspberry Pi port:

   • Set default file interface when attempting to read
     /boot/config.txt.

Android port:

   • Replace the old build system that used deprecated tools with a new
     Gradle-based system.

   • Work around crashes on some Androids when an FBO is bound during
     ‘egl_SwapBuffers’.

   • Fix LocalRef leak when opening files using APK interface.

   • Remove -Wno-psabi switches from Toolchain-android.cmake.

Linux port:

   • Make three finger salute and LED toggle configurable.

   • Fix KEY_CHAR events under X11 with compose key enabled.

   • Fix clearing the ‘ALLEGRO_MAXIMIZED’ flag under X11.

   • Add ‘al_x_set_initial_icon’.

   • Free wm_hints in ‘set_initial_icon’.

   • Read Allegro system config from ~/.allegro5rc on Unix.

Windows port:

   • Make bitmap contents persist again after device loss.

   • Add large file support for MSVC.

   • Only test cooperative lavel if device is known to be lost.

   • Don’t leak the ‘D3DEffect’ when attaching multiple sources.

   • Fix ‘al_get_monitor_info’ (Tobias Scheuer).

OSX port:

   • Various fixes for OSX 10.6.

   • Fix some Bluetooth mice on OS X (Tom Bass).

   • Fixed deprecation warning when starting OSX console app (Tom Bass).

   • Fix OSX magic main with the LTO switch (Evert Glebbeek).

Audio addon:

   • Allow setting the buffer size for ALSA.

   • Don’t apply gain twice for sample instances and streams when pan is
     not ‘ALLEGRO_PAN_NONE’.

   • Disallow attaching mixers with different channel configurations.

   • Add ‘al_set_sample_instance_channel_matrix’ and
     ‘al_set_audio_stream_channel_matrix’.

   • Don’t free the extra pointer in DirectSound if voice fails to play
     for some reason.

   • Add ‘al_lock_sample_id’ and ‘al_unlock_sample_id’.

   • For OpenAL, detach from buffers before deleting.

   • Return true when seeking mod audio streams.

Acodec addon:

   • Free audio stream buffer in flac_stream_close.

   • Add DUMB 2.0 support.

Color addon:

   • Add XYZ, xyY, Lab and LCH color spaces.

   • Remove "purwablue" named color, add "rebeccablue".

Native dialog addon:

   • Improve save dialogs under GTK driver.

   • Improved path behavior in GTK native file dialog ([bk]door.maus).

   • Enable ‘ALLEGRO_FILECHOOSER_FOLDER’ On Linux (Todd Cope).

   • Use unique ids to identify menu items internally, fixing their
     event sources.

   • Make the native message box return 2 on Windows when cancel is
     pressed.

Image addon:

   • Set compression level to ‘Z_DEFAULT_COMPRESSION’ in png saver by
     default.

   • Make PNG, JPEG compression level configurable.

   • Make PNG gamma value configurable.

   • Add WebP support with libwebp.

Video addon:

   • Allow calling ‘al_init_video_addon’ after ‘al_shutdown_video_addon’
     was called.

Build system:

   • Detect and link optional FreeType dependencies.

   • Add a CMake option to prefer static dependencies.

   • Fix SDL platform build.

Python binding:

   • Fix some corrupted regexps in the generation script (verderten).

Documentation:

   • Lots of improvements as usual (Edgar Reynaldo, Mark Oates, twobit).

Examples:

   • Fix various issues with ‘ex_curl’.

   • Fix memory leak in ‘ex_audio_simple’ (Rm Beer).

Changes from 5.2.1.1 to 5.2.2 (December 2016)
*********************************************

The main developers this time were: Trent Gamblin, SiegeLord, Elias
Pschernig.

Core:

   • Don’t accumulate time in the timer while it is stopped.

   • Use dynamic OpenGL ES checks, so binaries produced on newer
     platforms don’t crash on older ones.

   • Destabilize the OpenGL extensions API (BREAKING CHANGE!).

Raspberry Pi port:

   • Add various optimizations.

   • Fix ‘al_set_mouse_xy’ under X.

Android port:

   • Fix buffer overrun and memory leak in the clipboard support.

   • Add WANT_GLES3 to disable some of the newer features on platforms
     where they aren’t supported.

   • Fix build in Android versions below 3.1.

   • Fix a crash when activity is destroyed/paused.

   • Allow building for android mips, arm64 and mips64.

   • Add ‘al_android_get_jni_env’ and ‘al_android_get_activity’ utility
     functions.

   • Update manifest files for newer Android versions.

Windows port:

   • Handle keyboard input properly when Ctrl is pressed (Tobias
     Scheuer).

Hurd port:

   • Define a fallback PATH_MAX (Andreas Rönnquist).

OSX port:

   • Clear window to black when going in/out of fullscreen.

   • Fix window centering when going out of FULLSCREEN_WINDOW mode.

   • Fix OSX 10.12 build.

   • Allow 32 bit builds on OSX (MarcusCalhoun-Lopez).

Build system:

   • Fix issues with building on GCC6 on Windows.

   • Fix source directory littering while configuring the Android build.

Python binding:

   • Add support Python 3 (Gabriel Queiroz).

Documentation:

   • Document the behavior of ‘al_set_target_bitmap’ with respect to
     transformations (Edgar Reynaldo).

   • Fix typo in ‘al_use_transform’ docs (Ryan Roden-Corrent).

Examples:

   • Add kerning to the ‘al_get_glyph’ example in ex_ttf.

   • Various fixes in ex_camera (Erich Erstu).

Changes from 5.2.1 to 5.2.1.1 (August 2016)
*******************************************

The main developers this time were: Trent Gamblin, SiegeLord.

Core:

   • Enforce backwards compatibility in the version check, rather than
     erroneously allowing forwards compatiblity.

   • Temporarily remove new extensions in ALLEGRO_OGL_EXT_LIST as that
     broke ABI compatibility.

OSX port:

   • Temporarily revert changes in joystick detection, as it did not
     interact well with some joysticks.

Windows port:

   • Fix the clear display to black right away to avoid an ugly white
     flash change.

Changes from 5.2.0 to 5.2.1 (July 2016)
***************************************

The main developers this time were: Elias Pschernig, Trent Gamblin,
SiegeLord, Ryan Roden-Corrent, Boris Carvajal and Peter Hull.

Core:

   • Optimize bitmap holding a bit (Bruce Pascoe).

   • Add ‘al_get/set_depth/samples’ (OpenGL only for now).

   • Optimize destruction performance when you have thousands of objects
     (e.g.  sub-bitmaps).

   • Use low floating point precision for the OpenGL fragment shaders,
     which helps performance a lot on mobile platforms.

   • Don’t stop and join the timer thread when stopping the last timer
     (prevents unnecessary delay in this situation on some platforms).

   • Add ‘al_backup_dirty_bitmap’ and ‘al_backup_dirty_bitmaps’ to more
     finely control when bitmap context backup is performed.

Android port:

   • Fix Android app issues when woken up during sleep.

   • Specify the Android toolchain file on the command line now.
     ANDROID_NDK_TOOLCHAIN_ROOT now has to be specified in an
     environment variable.

OSX port:

   • Improve joystick enumeration (Todd Cope).

   • Make ‘al_set_new_window_title’ work correctly.

   • Don’t send duplicate mouse move events.

   • Fix mouse warping behavior.

   • Exit fullscreen mode if ALLEGRO_FULLSCREEN_WINDOW is set when
     destroying a display (otherwise if you destroy and recreate display
     without terminating the program, a white window kicks around).

iOS port:

   • Make it compile again.

   • Don’t backup textures as it is unnecessary.

   • Update minimum iOS to version to 6.1.

   • Disable the native png loader in favor of libpng, as it is broken
     on Apple’s end.

   • Create library when creating the archive.

Windows port:

   • Fix the D3D target bitmap bug.

   • Clear display to black right away to avoid an ugly white flash.

Raspberry Pi port:

   • Fix system cursor support.

Linux port:

   • Make ‘al_set_new_window_title’ work correctly.

Build system:

   • Use PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR instead of
     CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR. This lets you use Allegro as
     a sub-project in your CMake project.

   • Fix GDIPlus finding in cmake-gui (Bruce Pascoe).

   • Add .gitignore and ignore build/ dir (Mark Oates).

   • Fix building examples with non-Allegro dependencies with the
     monolith build.

Documentation:

   • Various documentation updates (Daniel Johnson and others).

Other:

   • Add more ‘#include’ statements in Allegro headers, so it’s easier
     to use them in isolation (Jordan Woehr).

   • Allow marking tests as being hardware only.

   • Prefix some private Allegro macros and types to not pollute the
     namespace.

   • Make set_shader_uniform api const-correct (Bruce Pascoe).

Audio addon:

   • Adjust loop end position when calling
     ‘al_set_sample_instance_length’.

Acodec addon:

   • Allow file-backed audio streams to be restarted after they finish.

   • Add Opus codec support.

Image addon:

   • Fail gracefully if not built with PNG/JPG loaders.

Native dialog addon:

Font addon:

   • Make ‘al_get_text_dimensions’ and ‘al_get_glyph_dimensions’ return
     exact bounding boxes (koro).

   • Add ‘ALLEGRO_GLYPH’ structure and ‘al_get_glyph’, allowing for some
     additional optimization when drawing fonts.

Examples:

   • Add more controls to ‘ex_audio_props’.

   • Add an example of using Enet with Allegro.

Changes from 5.1.13.1 to 5.2.0 (April 2016)
*******************************************

The main developers this time were: SiegeLord, Polybios, Mark Oates,
Elias Pschernig and Jonathan Seeley.

Core:

   • Add ‘al_is_event_source_registered’ (koro).

   • Make destructors log messages more meaningful.

   • Mouse emulation API for touch devices is now unstable.

   • Rename ‘al_convert_bitmaps’ to ‘al_convert_memory_bitmaps’.

Input:

   • Haptic API is now unstable.

Android port:

   • Fixed bogus display destruction on Android which previously caused
     zombie states.

OSX port:

   • Fix OSX mouse state position scaling.

   • Fix other various scaling issues.

   • Make toggling ALLEGRO_FRAMELESS work.

   • Fix an issue where fullscreen windows would occasionally leave
     empty space for the titlebar.

   • Fix incorrect debug assert in the audio addon.

Windows port:

   • Make Allegro apps DPI-aware by default, which means that they won’t
     be scaled by the OS.

   • Fix compilation for the CPU detection code on some compilers.

   • Don’t sync the D3D bitmap when locking with WRITE_ONLY.

   • Remove dsound.dll runtime loading.

   • Don’t link xinput and d3dx9 libraries (they are still required at
     runtime though if you’re using the relevant features).

   • Fix a bug where al_wait_for_event_timed can block despite 0 timeout
     (Aldo Nunez).

Build system:

   • Install PDB files when building with MSVC.

Documentation:

   • Fix source links for API entries with multi-line prototypes.

   • Make the readme look prettier on GitHub.

   • Tons of assorted documentation improvements, especially for the
     audio addon.

Other:

   • Add a stability system where some unstable APIs need to be opted
     into by defining ‘ALLEGRO_UNSTABLE’ before including Allegro
     headers.

Audio addon:

   • Fix sporadic deadlocks

   • Recorder API is now unstable.

Native dialog addon:

   • ‘al_toggle_menu_item_flags’ is now unstable.

TTF addon:

   • Add an option to pre-cache the glyphs, useful for platforms where
     the current algorithm is buggy (typically some Android devices).

Video addon:

   • Temporarily remove FFmpeg backend, as it was too buggy, didn’t
     build and was too hard to fix.

Examples:

   • Make ‘ex_vsync’ less likely cause a seizure.

   • Make ‘ex_draw_bitmap’ and ‘ex_touch_input’ switch in/out on
     Android.

   • Add documentation to ‘ex_bitmap’ (Daniel Johnson).

   • Improve ‘ex_logo’ text entry experience.