May 3rd, 2009Graphics:
· Renamed al_clear() to al_clear_to_color().
· Renamed al_opengl_version() to al_get_opengl_version().
· Changed the direction of rotation for al_draw_rotated* from counter-clockwise to clockwise.
· Added new pixel format ALLEGRO_PIXEL_FORMAT_ABGR_8888_LE which guanrantees component ordering.
· Added ALLEGRO_NO_PRESERVE_TEXTURE flag.
· Fixed horizontal flipping in plain software blitting routines.
· Fixed some blending bugs in the OpenGL driver.
· Made OpenGL driver fall back to software rendering if separate alpha blending is requested but not supported.
· Added a config option which allows pretending a lower OpenGL version.
· Implemented al_get_num_display_formats(), al_get_display_format_option() and al_set_new_display_format() for WGL.
· Fixed bug in al_get_display_format_option() with the GLX driver.
· Fixed a bug in the D3D driver that made display creation crash if the first scored mode failed.
· Made the OpenGL driver prefer the backbuffer format for new bitmaps.
· Defer FBO creation to when first setting a bitmap as target bitmap.
Input:
· Renamed some joystick functions.
· Account for caps lock state in OS X keyboard driver.
· Made UTF-8 input work on X11.
File I/O:
· Separated part of fshook API into a distinct file I/O API (actually generic streams).
· Make the file I/O API match stdio more closely and account for corner cases. (incomplete)
· Made it possible to set a stream vtable on a per-thread basis, which affects al_fopen() for that thread.
· Added al_fget_ustr() to read a line conveniently.
· Change al_fputs() not to do its own CR insertion.
· Add al_fopen_fd() to create an ALLEGRO_FILE from an existing file descriptor.
Filesystem:
· Changed al_getcwd, al_get_entry_name to return ALLEGRO_PATHs.
· Renamed al_get_path to al_get_standard_path, and to return an ALLEGRO_PATH.
· Changed al_readdir to return an ALLEGRO_FS_ENTRY.
· Added al_path_create_dir.
· Removed some filesystem querying functions which take string paths (ALLEGRO_FS_ENTRY versions will do).
Config routines:
· Added functions to traverse configurations structures.
· Change al_save_config_file() return type to bool.
· Removed an arbitrary limit on the length of config values.
· Renamed configuration files to allegro5.cfg and allegro5rc.
String routines:
· Allegro 4-era string routines removed.
· Added al_ustr_to_buffer().
Other core:
· Renamed al_thread_should_stop to al_get_thread_should_stop.
· Added a new internal logging mechanism with configurable debug "channels", verbosity levels and output formatting.
· Cleaned up ASSERT namespace pollution.
Font addons:
· Renamed font and TTF addon functions to conform to conventions.
· Added al_init_ttf_addon.
Implemented slightly nicer text drawing API:
· functions are called "draw_text" instead of "textout"
· centre/right alignment handled by a flag instead of functions
· functions accepting ALLEGRO_USTR arguments provided
· substring support is removed so 'count' arguments not needed in usual case, however ALLEGRO_USTR functions provide similar thing.
· Removed al_font_is_compatible_font.
· Sped up al_grab_font_from_bitmap() by five times.
· ttf: Fixed a possible bug with kerning of unicode code points > 127.
Image I/O addon:
· Renamed everything in the IIO addon.
· Exposed al_load_bmp/al_save_bmp etc.
Audio addon:
· Renamed al_mixer_set_postprocess_callback.
· Added two config options to OSS driver.
· Made ALSA read config settings from [alsa] section.
Native dialogs:
· Added al_show_native_message_box() which works like allegro_message() in A4. Implemented for GTK and OS X.
PhysicsFS addon:
· Added PhysicsFS addon.
Primitives addon:
· Removed global state flags.
· Removed normals from ALLEGRO_VERTEX.
· Removed read/write flags from vertex buffers.
Examples:
· Added an example that tests al_get_display_format_option().
· Added an example which shows playing a sample directly to a voice.
· Added an example for PhysicsFS addon.
· Added a (silly) example that loads an image off the network using libcurl.
· Added ex_dir which demonstrates the use of al_readdir and al_get_entry_name.
Other:
· Many bug and documentation fixes.
March 25th, 2009· Made it compile and work with MSVC and MinGW 3.4.5.
· Enabled SSE instruction set in MSVC.
· Fixed X11 XIM keyboard input (partially?).
· Fall back on the reference (software) rasterizer in D3D.
March 23rd, 2009Graphics:
· Added display options API and scoring, based on AllegroGL, for finer control over display creation.
· Added API to query possible display formats (implemented on X, Mac OS X).
· Changed the bitmap locking mechanism. The caller can choose a pixel format.
· Added support for multisampling.
· Simplified the semantics of al_update_display_region().
· Optimised software blitting routines.
· Optimised al_map_rgb/al_map_rgba.
· Replaced al_draw_rectangle() and al_draw_line() from core library with al_draw_rectangle_ex() and al_draw_line_ex() from the primitives addon.
· Implemented al_wait_for_vsync() everywhere except WGL.
· Fixed problems with sub-bitmaps with the OpenGL driver.
· Fixed bugs in software scaled/rotated blit routines.
· Added a new pixel format ALLEGRO_PIXEL_FORMAT_ABGR_F32. Removed ALLEGRO_PIXEL_FORMAT_ANY_15_WITH_ALPHA, ALLEGRO_PIXEL_FORMAT_ANY_24_WITH_ALPHA.
· Added support for creating OpenGL 3.0 contexts (untested; only WGL/GLX for now). Relevant display flags are ALLEGRO_OPENGL_3_0 and ALLEGRO_OPENGL_FORWARD_COMPATIBLE.
· Allow disabling any OpenGL extensions from allegro.cfg to test alternative rendering paths.
· Fixed problem with windows only activating on title bar clicks (Windows).
· Fixed a minimize/restore bug in D3D (with the help of Christopher Bludau).
Input:
· Implemented al_set_mouse_xy under X11.
· Added ALLEGRO_EVENT_MOUSE_WARPED event for al_set_mouse_xy().
Path routines:
· Made al_path_get_drive/filename return the empty string instead of NULL if the drive or filename is missing.
· Changed al_path_set_extension/al_path_get_extension to include the leading dot.
· Made al_path_get_extension(), al_path_get_basename(), al_path_to_string() return pointers to internal strings.
Unicode:
· Changed type of ALLEGRO_USTR; now you should use pointers to ALLEGRO_USTRs.
· Added UTF-16 conversion routines.
Other core:
· Added ALLEGRO_GET_EVENT_TYPE for constructing integers for event type IDs.
· Renamed configuration function names to conform to conventions.
· Removed public MIN/MAX/ABS/MID/SGN/CLAMP/TRUE/FALSE macros.
· Replaced AL_PI by ALLEGRO_PI and documented it as part of public API.
Audio addons:
· Added stream seeking and stream start/end loop points.
· Add panning support for kcm_audio (stereo only).
Font addons:
· Made al_font_grab_font_from_bitmap() accept code point ranges.
· Made font routines use new UTF-8 routines; lifted some arbitrary limits.
Fixed artefacts in bitmap font and TTF rendering. Image I/O addon:
· Made the capability to load/save images from/to ALLEGRO_FS_ENTRYs public.
· Added missing locking to .png save function.
Other addons:
· Added native_dialog addon, with file selector dialogs.
· Fixed many bugs in the primitives addon.
· Made hsv/hsl color functions accept angles outside the 0..360° range.
· Fixed a bug in al_color_name_to_rgb.
Examples:
· New programs: ex_audio_props, ex_blend_bench, ex_blend_test, ex_blit, ex_clip, ex_draw, ex_font_justify, ex_gl_depth, ex_logo, ex_multisample, ex_native_filechooser, ex_path_test, ex_rotate, ex_stream_seek, ex_vsync, ex_warp_mouse. (ex_draw demonstrated known bugs currently.)
· Updated programs: ex_joystick_events, ex_monitorinfo ex_pixelformat, ex_scale, ex_subbitmap.
Build system:
· Added pkg-config support. .pc files are generated and installed on Unix.
· Allowed gcc to generate SSE instructions on x86 by default. For Pentium 2 (or lower) compatibility you must uncheck a CMake option before building Allegro.
Other:
· Many other bug fixes.
December 8th, 2008Graphics:
· Fixed a bug where the "display" field of a bitmap was not correctly reset when it was transfered to another display on OS X.
· Made al_create_display() respect al_set_new_window_position() on OS X.
· Fixed the bug that caused input focus to be lost in OS X when a window was resized.
· Made resizable Allegro windows respond properly to the green "+" button at the top of the screen on OS X.
· Properly implemented fullscreen resize in WGL.
· Made the memory blenders work the same as the hardware ones.
· Made al_get_pixel()/al_draw_pixel() handle sub bitmaps in case the bitmap was locked.
· In the OpenGL driver, if the bitmap is locked by the user, use memory drawing on the locked region.
· Added implementations of al_inhibit_screensaver() for the X and Mac OS X ports.
· Added multi-monitor support to Mac OS X port (untested!).
· Other fixes.
Input:
· Made al_get_keyboard_state() return structures with the `display' field correctly set.
· Made keyboard event member 'unichar' uppercase when Shift/CapsLock is on, in Windows.
· Made mouse cursor show/hide work with Mac OS X full screen.
Config routines:
· Preserve comment and empty lines in config files when writing.
Addons:
· Add a simple interface layer for kcm_audio.
· Made kcm_audio objects automatically be destroyed when it is shut down.
· Renamed functions in kcm_audio to conform better with the rest of the library.
· Made the TTF addon aggregate glyph cache bitmaps into larger bitmaps for faster glyph rendering (less source bitmap switching).
Examples:
· Add an example to test the ALLEGRO_KEYBOARD_STATE `display' field.
· Add an example for testing config routines.
· Add an example for checking software blending routines against hardware blending.
· Add an example for the simple interface for kcm_audio.