-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathchanges.html
3853 lines (3853 loc) · 153 KB
/
changes.html
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
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Allegro - Recent changes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="web_style.css" />
<link rel="alternate" type="application/atom+xml"
href="feed_atom.xml" title="Allegro news"
/>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<div id="main_header">
<div id="header_container">
<img id="logo" src="images/logo.png" alt="Allegro" height="58" width="186" />
<div id="title">
A game programming library
</div>
</div>
</div>
<div id="left">
<div id="sidebar">
<ul>
<li><strong>Allegro</strong>
<ul>
<li><a href="index.html">About</a></li>
<li><a href="https://github.com/liballeg/allegro5">Git
repository</a></li>
<li><a href="license.html">License</a></li>
<li><a href="examples_demos.html">Examples</a></li>
<li><a href="https://github.com/liballeg/allegro5/issues">Bug
tracker</a></li>
<li><a href="bindings.html">Language bindings</a></li>
</ul></li>
<li><strong>Downloads</strong>
<ul>
<li><strong><a href="download.html">Latest version</a></strong></li>
<li><a href="old.html">Older versions</a></li>
<li><a href="addons.html">Extra addons</a></li>
</ul></li>
<li><strong>Documentation</strong>
<ul>
<li><strong><a href="https://liballeg.org/a5docs/trunk/">Latest
version</a></strong></li>
<li><a href="api.html">All versions</a></li>
<li><a href="docs.html">Tutorials</a></li>
<li><a href="books.html">Books</a></li>
<li><a
href="https://github.com/liballeg/allegro_wiki/wiki">Wiki</a></li>
</ul></li>
<li><strong>Community</strong>
<ul>
<li><a href="https://discord.gg/f3Cd4TZzpp">Discord</a></li>
<li><a href="irc.html">IRC</a></li>
<li><a href="game_jams.html">Game Jams</a></li>
<li><a href="maillist.html">Mailing lists</a></li>
</ul></li>
<li><strong>Misc</strong>
<ul>
<li><a href="readme.html">History</a></li>
<li><a href="oldnews.html">Older news</a></li>
<li><a href="logos.html">Logos</a></li>
<li><a href="digmid.html">DIGMID</a></li>
<li><a href="links.html">Links</a></li>
<li><a href="mirrors.html">Mirrors</a></li>
<li><a href="webmasters.html">Webmasters</a></li>
<li><a href="humor.html">Humor</a></li>
</ul></li>
</ul>
<!-- keep blank line for correct HTML -->
</div>
<!-- sidebar -->
<div id="hosting">
<p><a href="https://github.com/liballeg">GitHub project</a> <br/> <br/>
<a
href="https://projects.tuxfamily.org/?do=group;name=allegro">TuxFamily
project</a></p>
</div>
<!-- hosting -->
</div>
<!-- left -->
<div id="content">
<header id="title-block-header">
<h1 class="title">Allegro - Recent changes</h1>
</header>
<p>See <code>changes._tx</code> for changes in earlier versions of
Allegro. These lists serve as summaries; the full histories are in the
git repository.</p>
<h1 id="changes-from-5.0.10-to-5.0.11-january-2015">Changes from 5.0.10
to 5.0.11 (January 2015)</h1>
<p>The main developers this time were: SiegeLord and Peter Wang.</p>
<p>Core:</p>
<ul>
<li>Fix OSX backend on OSX 10.10 (lordnoriyuki).</li>
</ul>
<p>Audio addon:</p>
<ul>
<li><p>Fix/avoid all sound examples freezing on OSX with the aqueue
driver (Elias Pschernig).</p></li>
<li><p>Fix a deadlock in Pulseaudio driver.</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Fix build warnings.</p></li>
<li><p>Improve documentation (syntax highlighting).</p></li>
</ul>
<h1 id="changes-from-5.0.9-to-5.0.10-june-2013">Changes from 5.0.9 to
5.0.10 (June 2013)</h1>
<p>The main developers this time were: Trent Gamblin, Paul Suntsov,
Peter Wang.</p>
<p>Core:</p>
<ul>
<li>Register system interface even if no display driver available on
Windows.</li>
</ul>
<p>Displays:</p>
<ul>
<li><p>Don’t crash in al_create_display if there is no display
driver.</p></li>
<li><p>Don’t crash at shutdown if there is no display driver
(Windows).</p></li>
<li><p>Don’t fail init if both D3D, GL drivers unavailable
(Windows).</p></li>
<li><p>Run fullscreen toggle on main thread (OS X).</p></li>
<li><p>Destroy the backbuffer bitmap when destroying the display (OS
X).</p></li>
<li><p>Switch to new NSTrackingArea API (OS X).</p></li>
<li><p>Check availability of fullscreen button on window frame at
run-time (OS X).</p></li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Add ALLEGRO_SRC_COLOR, ALLEGRO_DEST_COLOR,
ALLEGRO_INVERSE_SRC_COLOR, ALLEGRO_INVERSE_DEST_COLOR blending modes
(initially by Jon Rafkind and Elias Pschernig).</p></li>
<li><p>Let al_destroy_bitmap implicitly untarget the bitmap on the
calling thread.</p></li>
<li><p>Use memory bitmap drawing when either bitmap is locked
(OpenGL).</p></li>
<li><p>Add const qualifiers to glUniform*v() functions (Aaron
Bolyard).</p></li>
</ul>
<p>Input:</p>
<ul>
<li><p>al_set_mouse_xy on Windows resulted in the mouse getting set to
the wrong position in windowed modes.</p></li>
<li><p>Scale the user supplied mouse cursor if it’s too big
(Windows).</p></li>
<li><p>Fix mouse warping on OS X.</p></li>
<li><p>Fix mouse warping in Linux evdev mouse driver.</p></li>
</ul>
<p>Audio addon:</p>
<ul>
<li><p>pulseaudio: Use smaller buffer size by default, and make it
configurable.</p></li>
<li><p>pulseaudio: Clean up state transitions.</p></li>
<li><p>Fix looping in Ogg Vorbis stream (Todd Cope).</p></li>
<li><p>Enable the use of the unpatched DirectX SDK to build Allegro with
MinGW.</p></li>
</ul>
<p>Color addon:</p>
<ul>
<li>Fix al_color_rgb_to_html blue component (Jeff Bernard).</li>
</ul>
<p>Font addons:</p>
<ul>
<li>Make al_init_ttf_addon return true for subsequent calls.</li>
</ul>
<p>Primitives addon:</p>
<ul>
<li><p>Disallow 3 component vectors for ALLEGRO_PRIM_TEX_COORD.</p></li>
<li><p>Check that the vertex declaration is valid before creating
it.</p></li>
<li><p>Respect filter settings of textures in the D3D backend.</p></li>
</ul>
<p>Build system:</p>
<ul>
<li><p>Do not install most internal header files.</p></li>
<li><p>Do not search for and link with unneeded X libraries.</p></li>
</ul>
<p>Examples:</p>
<ul>
<li>ex_audio_timer: New example.</li>
</ul>
<p>Other:</p>
<ul>
<li><p>Minor fixes.</p></li>
<li><p>Various documentation updates.</p></li>
<li><p>A lot of code refactoring.</p></li>
</ul>
<h1 id="changes-from-5.0.8-to-5.0.9-february-2013">Changes from 5.0.8 to
5.0.9 (February 2013)</h1>
<p>The main developers this time were: Trent Gamblin, Elias Pschernig,
Peter Wang.</p>
<p>Core:</p>
<ul>
<li><p>Clean up logging subsystem at shutdown (muhkuh).</p></li>
<li><p>Fix a problem with creating a display after Allegro is shut down
then re-initialised on X11.</p></li>
<li><p>Fix use of clobbered return value from setlocale() on
X11.</p></li>
<li><p>Fix use of double math functions for float arguments (Nick
Trout).</p></li>
</ul>
<p>Displays:</p>
<ul>
<li><p>Fix al_set/get_window position on Windows so getting/setting to
the same position continuosly doesn’t move the window. (Michael
Swiger)</p></li>
<li><p>Add al_set_display_icons (plural). Implemented on X11 and
Windows.</p></li>
<li><p>Made al_get_display_mode return the closest thing to a pixel
format possible with the WGL driver (tobing).</p></li>
<li><p>Move WGL context destruction out of the message pump thread and
into the user/main thread.</p></li>
<li><p>Allow command-tab to work in fullscreen window mode on OS
X.</p></li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Avoid null pointer dereference when setting a target bitmap after
its video_texture has already been released (D3D).</p></li>
<li><p>Make d3d_lock_region fail immediately if _al_d3d_sync_bitmap
failed, likely because the device was lost.</p></li>
<li><p>Set device_lost flag immediately when d3d_display_thread_proc
finds the device is lost.</p></li>
<li><p>Sync bitmaps before resizing display to prevent changes being
lost after the resize (D3D).</p></li>
<li><p>Revert a faulty FBO rebinding optimisation in
al_set_target_bitmap.</p></li>
<li><p>Fix OpenGL extensions being completely ignored on OS X.</p></li>
<li><p>Support stencil buffer on iOS.</p></li>
</ul>
<p>Input:</p>
<ul>
<li>Partially fix mouse buttons “sticking” on Mac, e.g. holding the
mouse and toggling fullscreen window.</li>
</ul>
<p>Filesystem:</p>
<ul>
<li><p>Keep absolute path in ALLEGRO_FS_ENTRYs so that later changes to
the working directory do not affect the interpretation of the
path.</p></li>
<li><p>Set ALLEGRO_FILEMODE_HIDDEN properly on Unix.</p></li>
<li><p>Make sure stat mode bits are cleared in default implementation of
al_update_fs_entry.</p></li>
<li><p>Support Unicode paths on Windows.</p></li>
<li><p>Change description of al_get_fs_entry_name about not returning
absolute path if created from relative path; no longer true for either
the default or Physfs implementations.</p></li>
</ul>
<p>Audio addons:</p>
<ul>
<li><p>Shut down threads properly when when destroying FLAC and modaudio
streams.</p></li>
<li><p>Fix PulseAudio driver trying to connect to a non-existent server
forever.</p></li>
</ul>
<p>Image I/O addon:</p>
<ul>
<li><p>Fixed loading interlaced .png files with libpng.</p></li>
<li><p>Use Allegro built-in loaders in preference to OS X loaders for
BMP/TGA/PCX. The OS X TGA loader doesn’t support alpha and this is also
more consistent.</p></li>
<li><p>Restored ability of the native OSX image loader to load grayscale
pictures.</p></li>
</ul>
<p>Native dialog addon:</p>
<ul>
<li>Add al_init_native_dialog_addon and
al_shutdown_native_dialog_addon.</li>
</ul>
<p>Build system:</p>
<ul>
<li><p>Rename allegro*-5.0.pc files to allegro*-5.pc. The old names are
deprecated but retained on the 5.0 branch for backwards
compatibility.</p></li>
<li><p>Only generate and install pkg-config files for libraries that we
build.</p></li>
<li><p>Install iPhone internals headers (Nick Trout).</p></li>
</ul>
<p>Examples:</p>
<ul>
<li><p>ex_icon2: New example.</p></li>
<li><p>speed: Use builtin font.</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Documentation updates.</p></li>
<li><p>A lot of code refactoring.</p></li>
</ul>
<h1 id="changes-from-5.0.7-to-5.0.8-november-2012">Changes from 5.0.7 to
5.0.8 (November 2012)</h1>
<p>The main developers this time were: Dennis Busch, Trent Gamblin,
Elias Pschernig, Paul Suntsov, Peter Wang.</p>
<p>Core:</p>
<ul>
<li>Added alternate spelling: ALLEGRO_ALIGN_CENTER.</li>
</ul>
<p>Displays:</p>
<ul>
<li><p>Rewrite D3D display format listing code, which was broken. This
should re-enable multi-sampling and fix ex_depth_mask being slow with
D3D.</p></li>
<li><p>Fixed a case where changing fullscreen mode in D3D via
al_resize_display caused a crash and loss of loaded bitmaps
information.</p></li>
<li><p>Fixed a case where changing fullscreen mode in OpenGL (on
Windows) via al_resize_display cause nothing to be rendered after the
mode change.</p></li>
<li><p>Fix crashes when resizing a WGL fullscreen window.</p></li>
<li><p>Fixed missing/incorrect resize events under Windows.</p></li>
<li><p>Fix al_set_new_display_adapter on OS X.</p></li>
<li><p>Fix use of invalidated pointers in D3D driver when the first
format fails.</p></li>
<li><p>Fix bug where setting the mouse cursor had no effect when the
mouse was captured (mouse button held down).</p></li>
<li><p>Fix windows not having a minimise button when set to windowed
state from fullscreen window state.</p></li>
<li><p>Respect ALLEGRO_FRAMELESS flag properly when toggling from
fullscreen window state to windowed state (Windows).</p></li>
<li><p>Don’t generate DISPLAY_LOST events when resizing a fullscreen
display.</p></li>
<li><p>Scale window icon to sizes returned by GetSystemMetrics
(Windows).</p></li>
<li><p>Fixed ALLEGRO_FULLSCREEN_WINDOW under OS X.</p></li>
<li><p>Added al_osx_get_window function (Dennis Gooden).</p></li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>al_draw_pixel was crashing when drawn on sub-bitmaps on
OpenGL.</p></li>
<li><p>Fix a potential crash when drawing the screen to a bitmap with
D3D.</p></li>
<li><p>Avoid null pointer dereference when setting a target bitmap after
its video_texture has already been released (D3D).</p></li>
<li><p>Lock bitmap to prevent slowness when creating a cursor from a
non-memory bitmap on Windows.</p></li>
<li><p>Conditionally lock bitmap when creating cursor on X11 (previously
it did so even if already locked).</p></li>
<li><p>Don’t use NSOpenGLPFAAccelerated unnecessarily (OS X).</p></li>
</ul>
<p>Input:</p>
<ul>
<li><p>Fix incorrect keyboard modifier flags after leaving and
re-entering a window (Windows).</p></li>
<li><p>Fixed a bug with mouse enter/leave events for resized windows
under OSX (Dennis Gooden).</p></li>
<li><p>Temporary fix for delay after mouse warp on OS X.</p></li>
</ul>
<p>File I/O:</p>
<ul>
<li><p>Fix al_fputc on big-endian. Reported by Andreas Rönnquist and
Tobias Hansen.</p></li>
<li><p>Make al_fputc return value like fputc when out of range.</p></li>
<li><p>Fix al_read_directory crash on 64-bit Windows (simast).</p></li>
</ul>
<p>Image addon:</p>
<ul>
<li><p>Don’t include native image loader source files in builds with the
native image loaders disabled (OSX, iOS).</p></li>
<li><p>Added a missing autorelease-pool to the OSX bitmap saving
function (sleepywind).</p></li>
<li><p>Fix OSX native image loader for loading not-premultiplied RGB
data. Previously the data was “de-multiplied”, with possibly all
information lost.</p></li>
<li><p>Fix OSX native image loader for loading bitmaps without an alpha
channel. They appeared completely black previously.</p></li>
</ul>
<p>Font addons:</p>
<ul>
<li><p>Add builtin font creation function.</p></li>
<li><p>Added ALLEGRO_ALIGN_INTEGER text drawing flag (Todd
Cope).</p></li>
<li><p>Made TTF addon include padding on the top and left edges of pages
(Todd Cope).</p></li>
</ul>
<p>Audio addon:</p>
<ul>
<li><p>Use programmatically generated interpolators. They cover an
additional case which was missed and should be slightly more
efficient.</p></li>
<li><p>Support linear interpolation for 16-bit mixers.</p></li>
<li><p>Add cubic interpolation for mixers (off by default).</p></li>
<li><p>Fix potential deadlock in stop_voice for OpenAL.</p></li>
<li><p>Fix potential deadlock in stop_voice for DirectSound.</p></li>
<li><p>Improve buffer filling behaviour for DirectSound, reducing pops
and crackles significantly on slower machines.</p></li>
<li><p>Increase default buffer size for DirectSound to 8192
samples.</p></li>
<li><p>Fix setting the speed of an audio stream after it was attached to
the mixer.</p></li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li><p>Do not unload of rich edit module when closing one text log
window while another exists. Reported by URB753.</p></li>
<li><p>Use default colours for Windows text log implementation, avoiding
problems when the previous custom colours failed, leading to black text
on a nearly black background.</p></li>
</ul>
<p>Build system:</p>
<ul>
<li>Install pkg-config files when cross-compiling on Unix.</li>
</ul>
<p>Examples:</p>
<ul>
<li><p>ex_synth: Add button to save waveform to a file.</p></li>
<li><p>ex_multisample: Demonstrate using moving bitmaps.</p></li>
<li><p>speed: Avoid poor performance due to needless redraws.</p></li>
<li><p>Renamed a5teroids to Cosmic Protector</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Many minor bug fixes.</p></li>
<li><p>Various documentation updates.</p></li>
</ul>
<h1 id="changes-from-5.0.6-to-5.0.7-june-2012">Changes from 5.0.6 to
5.0.7 (June 2012)</h1>
<p>The main developers this time were: Trent Gamblin, Elias Pschernig,
Peter Wang.</p>
<p>Core:</p>
<ul>
<li><p>Fix ALLEGRO_STATIC_ASSERT collisions from different files
included in the same translation unit. Reported by tobing.</p></li>
<li><p>Make al_ref_cstr, al_ref_ustr and al_ref_buffer return const
ALLEGRO_USTR<em> instead of just an ALLEGRO_USTR</em> (Paul
Suntsov).</p></li>
<li><p>Make al_ustr_empty_string const correct.</p></li>
<li><p>Fix many memory leak/warnings on MacOS X (Pär
Arvidsson).</p></li>
<li><p>Fix typo preventing get_executable_name from using System V
procfs correctly. Reported by Max Savenkov.</p></li>
</ul>
<p>Displays:</p>
<ul>
<li><p>Add ALLEGRO_FRAMELESS as a preferred synonym for the confusing
ALLEGRO_NOFRAME flag.</p></li>
<li><p>Rename al_toggle_display_flag to al_set_display_flag, retaining
the older name for compatibility.</p></li>
<li><p>Set WM_NAME for some window managers (X11).</p></li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Force al_create_bitmap to not create oversized bitmaps, to
mitigate integer overflow problems.</p></li>
<li><p>Removed initial black frame on all Allegro programs.</p></li>
</ul>
<p>OpenGL:</p>
<ul>
<li><p>Texture should be ‘complete’ (min/mag and wrap set) before
glTexImage2D.</p></li>
<li><p>Fixed a bug in al_unlock_bitmap where the pixel alignment
mistakenly was used as row length.</p></li>
<li><p>Fixed typo in names of some OpenGL extension functions.</p></li>
<li><p>Display list of OpenGL extensions in allegro.log also for OpenGL
3.0.</p></li>
</ul>
<p>Direct3D:</p>
<ul>
<li>Fixed a bug in the D3D driver where separate alpha blending was
being tested for when it shouldn’t have been (Max Savenkov).</li>
</ul>
<p>Input:</p>
<ul>
<li><p>Monitor /dev/input instead of /dev on Linux for hotplugging
joysticks (Jon Rafkind).</p></li>
<li><p>Do not permanently change the locale for the X11 keyboard driver.
Set LC_CTYPE only, not LC_ALL.</p></li>
</ul>
<p>Audio addon:</p>
<ul>
<li><p>Fix desychronization due to inaccurate sample positions when
resampling. Thanks to _Bnu for discovering the issue and Paul Suntsov
for devising the correct solution.</p></li>
<li><p>Fix linear interpolation across audio stream buffer
fragments.</p></li>
<li><p>Fix two minor memory leaks in the PulseAudio driver.</p></li>
</ul>
<p>Image I/O addon:</p>
<ul>
<li><p>Improve compatibility of BMP loader. In particular, support
bitmaps with V2-V5 headers and certain alpha bit masks.</p></li>
<li><p>Fix TGA loader using more memory than necessary. Reported by Max
Savenkov.</p></li>
</ul>
<p>Font addon:</p>
<ul>
<li>Use user set pixel format for fonts.</li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li><p>Clear mouse state after dialogs or else it gets messed up
(OSX).</p></li>
<li><p>Fix some warnings in gtk_dialog.c.</p></li>
<li><p>Wrap use of NSAlert so it can be run on the main thread with
return value.</p></li>
</ul>
<p>Examples:</p>
<ul>
<li><p>Add ex_resample_test.</p></li>
<li><p>ex_audio_props: Add bidir button.</p></li>
<li><p>ex_joystick_events: Support hotplugging and fix display of 3-axis
sticks.</p></li>
<li><p>Add test_driver –no-display flag. (Tobias Hansen)</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Various documentation updates.</p></li>
<li><p>Other minor bug fixes.</p></li>
<li><p>Fix whatis entries of man pages. (Tobias Hansen)</p></li>
</ul>
<h1 id="changes-from-5.0.5-to-5.0.6-march-2012">Changes from 5.0.5 to
5.0.6 (March 2012)</h1>
<p>The main developers this time were: Trent Gamblin, Matthew Leverton,
Elias Pschernig, Paul Suntsov, Peter Wang.</p>
<p>Core:</p>
<ul>
<li>Added al_register_assert_handler.</li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Added al_draw_tinted_scaled_rotated_bitmap_region.</p></li>
<li><p>Added al_reset_clipping_rectangle convenience function.</p></li>
<li><p>Added al_get_parent_bitmap.</p></li>
<li><p>Fixed a bug in the OpenGL driver when drawing the backbuffer
outside the clipping rectangle of the target bitmap.</p></li>
<li><p>Make blitting from backbuffer work when using multisampling on
Windows/D3D.</p></li>
</ul>
<p>Displays:</p>
<ul>
<li><p>Set ALLEGRO_MINIMIZED display flag on Windows (Zac
Evans).</p></li>
<li><p>Don’t generate bogus resize events after restoring minimised
window on Windows.</p></li>
<li><p>Fixed bug on Windows where two SWITCH_IN events were fired when
window was minimized/restored (Michael Swiger).</p></li>
<li><p>Fixed inverted al_toggle_display_flag(ALLEGRO_NOFRAME) logic
under Windows as well as a bug where repeatedly setting the flag to on
would make the window grow bigger and bigger (Michael Swiger).</p></li>
<li><p>Fixed inverted al_toggle_display_flag(ALLEGRO_NOFRAME) logic in
X11.</p></li>
<li><p>Prevent a deadlock during display creation on X.</p></li>
<li><p>Fallback to the ‘old’ visual selection method on X instead of
crashing if the ‘new’ visual selection doesn’t work.</p></li>
</ul>
<p>Input:</p>
<ul>
<li>Use the same logic in set_mouse_xy for FULLSCREEN_WINDOW as was used
for FULLSCREEN. (Max OS X)</li>
</ul>
<p>Filesystem:</p>
<ul>
<li><p>Added al_fopen_slice.</p></li>
<li><p>Added al_set_exe_name which allows overriding Allegro’s idea of
the path to the current executable.</p></li>
<li><p>Make al_get_standard_path(ALLEGRO_TEMP_PATH) treat the value of
TMPDIR et al. as a directory name even without a trailing slash.
(Unix)</p></li>
<li><p>Make stdio al_fopen implementation set proper errno on
failure.</p></li>
</ul>
<p>Audio addons:</p>
<ul>
<li><p>Add mixer gain property and functions.</p></li>
<li><p>Improve code to check that DLL symbols are loaded in the acodec
addon. The old method was hacky and broke under -O2 using GCC
4.6.1.</p></li>
</ul>
<p>Image I/O addon:</p>
<ul>
<li>Improved accuracy of un-alpha-premultiplying in the native OSX
bitmap loader.</li>
</ul>
<p>Primitives addon:</p>
<ul>
<li><p>Added al_draw_filled_pieslice and al_draw_pieslice.</p></li>
<li><p>Added al_draw_elliptical_arc.</p></li>
</ul>
<p>TTF addon:</p>
<ul>
<li><p>Added al_load_ttf_font_stretch functions (tobing).</p></li>
<li><p>Added ALLEGRO_TTF_NO_AUTOHINT font loading flag to disable the
Auto Hinter which is enabled by default in newer version of FreeType
(Michał Cichoń).</p></li>
<li><p>Clear locked region so pixel borders aren’t random garbage that
can be seen sometimes with linear filtering on.</p></li>
<li><p>Unlock glyph cache page at end of text_length and
get_text_dimensions (jmasterx).</p></li>
</ul>
<p>Examples:</p>
<ul>
<li><p>Added new examples: ex_audio_chain, ex_display_events,
ex_file_slice.</p></li>
<li><p>ex_ogre3d: Make it work under Windows (AMCerasoli).</p></li>
<li><p>a5teroids: Support gamepads that report small non-zero values for
sticks that are at rest.</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Added index to HTML version of the reference manual (Jon
Rafkind).</p></li>
<li><p>Various documentation updates.</p></li>
<li><p>Other minor bug fixes.</p></li>
</ul>
<h1 id="changes-from-5.0.4-to-5.0.5-november-2011">Changes from 5.0.4 to
5.0.5 (November 2011)</h1>
<p>The main developers this time were: Elias Pschernig and Trent
Gamblin.</p>
<p>Graphics:</p>
<ul>
<li><p>Fixed several instances of windows being positioned wrong on
Windows: regular windows, WGL FULLSCREEN_WINDOW, and ALLEGRO_NOFRAME
windows.</p></li>
<li><p>Don’t re-bind the FBO in al_set_target_bitmap if the new target
bitmap shares the parent bitmap with the new target bitmap (Paul
Suntsov).</p></li>
<li><p>Zero out fake refresh rate information from the nvidia
proprietary driver on X11 (Peter Wang).</p></li>
<li><p>Implemented the ALLEGRO_FULLSCREEN_WINDOW flag for iOS.</p></li>
</ul>
<p>Input:</p>
<ul>
<li><p>Make al_set_mouse_xy work in fullscreen on Windows.</p></li>
<li><p>Fixed a race condition in al_init_joystick.</p></li>
<li><p>Fixed problem on OS X where having two identical gamepads
attached would cause joystick initialization to hang (Thanks to Todd
Cope for pointing it out.)</p></li>
<li><p>Fixed iphone joystick events (it assumed a call to
al_get_joystick but that’s not required when using events).</p></li>
</ul>
<p>TTF fonts:</p>
<ul>
<li>Save new bitmap flags and bitmap format at time of loading font and
use them when creating pages.</li>
</ul>
<p>Primitives addon:</p>
<ul>
<li>Very thin arcs/pieslices were not drawn due to an overzealous check
(Paul Suntsov).</li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li>Implemented al_show_native_message_box for iOS.</li>
</ul>
<p>Other:</p>
<ul>
<li><p>Use …/Library/Application Support for ALLEGRO_USER_SETTINGS_PATH
and ALLEGRO_USER_DATA_PATH on iOS.</p></li>
<li><p>Listen for applicationDidBecomeActive and
applicationWillResignActive instead of applicationWillEnterForeground
and applicationDidEnterBackground on iOS. This makes all of the common
situations where you want to pause your game work, such as the lock
button.</p></li>
<li><p>Fix some memory leaks on iOS.</p></li>
</ul>
<p>Documentation:</p>
<ul>
<li><p>Various documentation updates.</p></li>
<li><p>Generate multiple copies of a man page for all the API entries
that it documents.</p></li>
</ul>
<h1 id="changes-from-5.0.3-to-5.0.4-august-2011">Changes from 5.0.3 to
5.0.4 (August 2011)</h1>
<p>The main developers this time were: Trent Gamblin, Matthew Leverton,
Elias Pschernig, Jon Rafkind, Paul Suntsov, Peter Wang and torhu.</p>
<p>Core:</p>
<ul>
<li><p>Restore searching of directories on PATH for DLLs to load on
Windows.</p></li>
<li><p>Fix crash on shutdown in headless Unix environment (no X11
display).</p></li>
<li><p>Change all instances of al_malloc + memset(0) to
al_calloc.</p></li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Save memory in OpenGL case by freeing bitmap memory after
uploading a texture. Use a temporary buffer when converting lock buffer
back to native texture format.</p></li>
<li><p>Don’t release or refresh memory or sub-bitmaps when D3D device
gets lost/found.</p></li>
<li><p>Do not set D3D sub bitmaps to modified when first creating them.
This can cause major slowdowns when creating a lot of sub-bitmaps and is
likely responsible for slow font performance/startup when using
D3D.</p></li>
<li><p>Fix incorrect number of display formats in D3D (tobing).</p></li>
<li><p>Honor ALLEGRO_VSYNC in the WGL driver.</p></li>
<li><p>Make titlebar icons the right size on Windows.</p></li>
<li><p>Fix typo causing weird results of al_get_monitor_info on
X.</p></li>
<li><p>Don’t setup FBO for a sub-bitmap whose parent is locked.</p></li>
<li><p>Specialise ADD/ONE/INVERSE_ALPHA blend mode software scanline
drawers.</p></li>
<li><p>Toggle ALLEGRO_VIDEO_BITMAP flag off when creating a memory
bitmap (both bits were previously on).</p></li>
<li><p>Add null bitmap assertion to al_clone_bitmap.</p></li>
</ul>
<p>Input:</p>
<ul>
<li><p>New system for mapping extended keys in Windows keyboard driver.
Mainly for getting the same keycode for numpad keys independently of the
state of Num Lock.</p></li>
<li><p>More reliable updating of the toggle modifiers in Windows
keyboard driver (Num Lock, Caps Lock, and Scroll Lock).</p></li>
</ul>
<p>Timers:</p>
<ul>
<li>Fix race conditions when starting timers from different
threads.</li>
</ul>
<p>Audio addons:</p>
<ul>
<li><p>Don’t mix into a global temporary sample buffer, causing noise
when two separate mixers are trying to run in parallel.</p></li>
<li><p>Make it possible to start/stop an audio stream which is attached
to a voice.</p></li>
<li><p>ALSA voices could not be resumed after being stopped, because the
update threads quit as soon as a voice is stopped.</p></li>
<li><p>OpenAL backend did not handle the case where _al_voice_update
returns less than a full buffer.</p></li>
<li><p>Attempt to load FLAC and Vorbis DLLs only once to avoid Windows
popping up too many error windows.</p></li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li>al_show_native_messagebox() on Windows: add UTF-8 support; show
heading; show information icon by default.</li>
</ul>
<p>TTF addon:</p>
<ul>
<li><p>Reduce memory usage.</p></li>
<li><p>Don’t make multiple passes over strings when computing text
dimensions.</p></li>
</ul>
<p>Build system:</p>
<ul>
<li><p>Make sure static builds on Windows never use DLL_TLS (Zac
Evans).</p></li>
<li><p>Made compilation possible with different combinations of
Xinerama, XF86VidMode, or Randr being present.</p></li>
<li><p>cmake: Use find_path HINTS instead of PATHS in our DirectX SDK
scripts.</p></li>
<li><p>cmake: Search for D3DX9 once instead of multiple times (John-Kim
Murphy).</p></li>
<li><p>cmake: Find FLAC/Ogg/Vorbis libraries under the names generated
by the official MSVC project files.</p></li>
<li><p>Include zlib.h explicitly for libpng 1.5.</p></li>
</ul>
<p>Examples:</p>
<ul>
<li><p>Add multisampling to SPEED example. Change examples to use
ALLEGRO_SUGGEST for multisampling.</p></li>
<li><p>Include the font for speed.app under OSX within the bundle so it
can be run by double clicking.</p></li>
<li><p>Use default blending/pre-multiplied alpha in ex_blend2.</p></li>
</ul>
<p>Other:</p>
<ul>
<li><p>Various documentation updates.</p></li>
<li><p>Fix minor memory leaks.</p></li>
</ul>
<p>Bindings:</p>
<ul>
<li><p>Better way to make the Python wrapper work with both Python 2 and
3.</p></li>
<li><p>Include Windows-specific functions in the Python
wrapper.</p></li>
</ul>
<h1 id="changes-from-5.0.2.1-to-5.0.3-may-2011">Changes from 5.0.2.1 to
5.0.3 (May 2011)</h1>
<p>Input:</p>
<ul>
<li><p>Fixed keyboard repeat for extended keys on Windows. Added
ALLEGRO_KEY_MENU. (torhu)</p></li>
<li><p>Make Delete key in Windows send KEY_CHAR event with unichar code
127 (Peter Wang).</p></li>
</ul>
<p>Filesystem:</p>
<ul>
<li>al_remove_filename returned false even if successful (reported by
xpolife).</li>
</ul>
<p>Graphics:</p>
<ul>
<li>On OpenGL ES 1.1, glReadPixels can only read 4 byte pixels (Trent
Gamblin).</li>
</ul>
<p>Font addon:</p>
<ul>
<li>Fix a small memory leak when unregistering a handler with
al_register_font_loader (Trent Gamblin).</li>
</ul>
<p>Primitives addon:</p>
<ul>
<li>Fix assertion failures when drawing al_draw_ellipse, al_draw_arc,
al_draw_rounded_rectangle, al_draw_filled_rounded_rectangle at very
small scales (reported by Carl Olsson).</li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li>gtk: Fix truncated string if the final button contained a non-ASCII
character (Peter Wang).</li>
</ul>
<p>Other:</p>
<ul>
<li>Minor build fixes and documentation updates.</li>
</ul>
<h1 id="changes-from-5.0.2-to-5.0.2.1-april-2011">Changes from 5.0.2 to
5.0.2.1 (April 2011)</h1>
<ul>
<li>Fix regression on Windows where the keyboard state was not updated
unless the keyboard event source is registered to an event queue.</li>
</ul>
<h1 id="changes-from-5.0.1-to-5.0.2-april-2011">Changes from 5.0.1 to
5.0.2 (April 2011)</h1>
<p>Input:</p>
<ul>
<li><p>Fix inverted mouse wheel on X11.</p></li>
<li><p>Make unicode field in KEY_CHAR events zero for Fn, arrow keys,
etc. for OS X (jmasterx, Peter Hull).</p></li>
<li><p>Support ALLEGRO_KEY_PAD_ENTER and detect left/right Alt and Ctrl
keys independently on Windows (torhu, Matthew Leverton).</p></li>
</ul>
<h1 id="changes-from-5.0.0-to-5.0.1-march-2011">Changes from 5.0.0 to
5.0.1 (March 2011)</h1>
<p>The main developers this time were: Trent Gamblin, Elias Pschernig,
Peter Wang. Other contributions noted in-line.</p>
<p>Graphics:</p>
<ul>
<li><p>Automatically destroy framebuffer objects (FBOs) created for
non-memory bitmaps after a while. This solves the problem of running out
of resources if you set many different target bitmaps.</p></li>
<li><p>Make al_get_opengl_fbo attempt to create an FBO if one doesn’t
exist.</p></li>
<li><p>Avoid very small textures in Direct3D.</p></li>
<li><p>Do not sync from memory when first creating/uploading a bitmap
(D3D).</p></li>
<li><p>Try to fix the problem of the taskbar appearing above fullscreen
windows on Windows.</p></li>
<li><p>Center the window after toggling fullscreen on Windows.</p></li>
</ul>
<p>Input:</p>
<ul>
<li>Support 4-way mouse-wheel and up to 32 mouse buttons in X11.</li>
</ul>
<p>Audio addons:</p>
<ul>
<li><p>Avoid buffer overrun while reading from vorbis files.</p></li>
<li><p>Added optional support for Tremor in place of libvorbis on any
platform.</p></li>
<li><p>Do not prefer DirectSound with OpenAL. This can cause problems
and also will override user config.</p></li>
<li><p>Play silence where needed in DirectSound driver.</p></li>
</ul>
<p>TTF addon:</p>
<ul>
<li><p>Do not hold bitmap drawing when changing target bitmap, which is
invalid and caused transformations to be misapplied.</p></li>
<li><p>Remove FBO for a cache bitmap once we are no longer adding glyphs
to it.</p></li>
</ul>
<p>Build system:</p>
<ul>
<li><p>Force “default” visibility of _al_mangled_main on OS X, otherwise
the dynamic linker cannot find the symbol if building with XCode4 (Owen
Anderson and Peter Hull).</p></li>
<li><p>Generated pkg-config files should take into account LIB_SUFFIX
variable (Cristian Morales Vega).</p></li>
<li><p>Update allegro_font pkg-config file to not require
allegro_primitives.</p></li>
</ul>
<p>Documentation:</p>
<ul>
<li><p>Various documentation updates.</p></li>
<li><p>Add copy of DejaVu font licence.</p></li>
</ul>
<p>Bindings:</p>
<ul>
<li>Add allegro_main addon to the Python wrapper. Make the wrapper work
with Python 3, which has a different string representation. Add
parameter type checking for custom types.</li>
</ul>
<h1 id="changes-from-5.0.0-rc5-to-5.0.0-february-2011">Changes from
5.0.0 RC5 to 5.0.0 (February 2011)</h1>
<p>Color addon:</p>
<ul>
<li>Use colour names from CSS. This is the same as the previous list but
with all grey/gray alternatives.</li>
</ul>
<p>Documentation:</p>
<ul>
<li>Minor documentation updates.</li>
</ul>
<h1 id="changes-from-5.0.0-rc4-to-5.0.0-rc5-february-2011">Changes from
5.0.0 RC4 to 5.0.0 RC5 (February 2011)</h1>
<p>The main developers this time were: Thomas Fjellstrom, Trent Gamblin,
Peter Hull, Matthew Leverton and Peter Wang. Other contributions noted
in-line.</p>
<p>System:</p>
<ul>
<li>Load allegro5.cfg from the directory containing the executable, not
the initial working directory.</li>
</ul>
<p>Graphics:</p>
<ul>
<li><p>Make al_get_monitor_info return success code.</p></li>
<li><p>Replace al_set_new_display_adaptor(-1) with a named constant
ALLEGRO_DEFAULT_DISPLAY_ADAPTER.</p></li>
<li><p>Fix numerous bugs in X mode setting and multi monitor related
code, and introduce new xrandr code.</p></li>
<li><p>Generate ALLEGRO_EVENT_MOUSE_LEAVE_DISPLAY when mouse leaves OS X
window (Evert Glebbeek).</p></li>
<li><p>Hide OS X window during exiting fullscreen window mode, to
prevent the hideous misaligned animation from showing.</p></li>
<li><p>Fix erroneous assertions in OpenGL backend.</p></li>
<li><p>Added a hack which makes OpenGL mode work under Wine for me
(Elias Pschernig).</p></li>
<li><p>Add support for some al_get_display_options in D3D port.</p></li>
</ul>
<p>Keyboard:</p>
<ul>
<li><p>Don’t send KEY_CHAR events for modifier and dead keys (with
contributions from torhu).</p></li>
<li><p>Don’t send KEY_DOWN events for non-physical key events.</p></li>
<li><p>osx: Allow unicode entry (single keypresses only).</p></li>
<li><p>x11: Set the keycode field in KEY_CHAR events to the code of the
last key pressed, as stated in the documentation, even if the char is
due to a compose sequence.</p></li>
<li><p>x11: Get rid of historic behaviour where the unicode field is
always zero when Alt is held down.</p></li>
<li><p>Rename ALLEGRO_KEY_EQUALS_PAD to ALLEGRO_KEY_PAD_EQUALS for
consistency.</p></li>
</ul>
<p>Mouse:</p>
<ul>
<li><p>Add al_grab_mouse and al_ungrab_mouse. Implemented on X11 and
Windows.</p></li>
<li><p>Allow the user configure a key binding to toggle mouse grabbing
on a window.</p></li>
<li><p>Support horizontal mouse wheel on Windows (jmasterx).</p></li>
<li><p>Calculate Y position for al_set_mouse_xy correctly in OS X
windowed mode (X-G).</p></li>
<li><p>Use more appropriate CURSOR_LINK cursor on OS X (X-G).</p></li>
<li><p>Assign different button IDs for separate touches on iPhone
(Michał Cichoń).</p></li>
<li><p>iphone: Remove fake mouse move events as they’re unncessary and
can cause problems with user input tracking.</p></li>
</ul>
<p>Filesystem:</p>
<ul>
<li><p>Clean up al_get_standard_path(): remove SYSTEM_DATA,
SYSTEM_SETTINGS, PROGRAM paths; add RESOURCES and USER_DOCUMENTS paths.
Use system API calls if possible.</p></li>
<li><p>Implement ALLEGRO_USER_DATA_PATH under Linux. Honor
XDG_DATA/CONFIG_HOME environment variables.</p></li>
<li><p>Fix al_make_directory on Windows due to problems with calls to
stat() with trailing slashes.</p></li>
</ul>
<p>Native dialogs addon:</p>
<ul>
<li><p>Use string arguments to al_create_native_file_dialog() and
al_get_native_file_dialog_path() instead of ALLEGRO_PATH.</p></li>
<li><p>Enhance the Windows file selector (initial patch by Todd
Cope):</p>
<ul>
<li><p>Use Windows’ folder selector for
ALLEGRO_FILECHOOSER_FOLDER.</p></li>
<li><p>Implement patterns.</p></li>
<li><p>Display the title of the dialog that the user specified.</p></li>
</ul></li>
</ul>
<p>Primitives addon:</p>
<ul>
<li>Fix changing the D3D blender state without updating the cached
state.</li>
</ul>
<p>TTF addon:</p>
<ul>
<li>Align glyphs in ttf font sheets so as to work around problems with
forced S3TC compression with some OpenGL drivers (Elias Pschernig).</li>