Allegro Changelog

What's new in Allegro 4.9.21

Jul 26, 2010
  • Graphics:
  • Fixed the mis-termed "blend color". There is no more color state.
  • al_set*_blender functions lose the color parameter.
  • Added 5 new bitmap drawing functions al_draw_tinted*_bitmap with a color parameter. The parameter is used just like the "blend color" before.
  • All text drawing functions gain a color parameter and use it like they used the "blend color" before.
  • Primitive drawing functions previously sometimes (and sometimes not) used the "blend color". Not any longer.
  • Make the current blending mode thread-local state instead of per-display state.
  • Add explicit display arguments to functions which require a display, but don't require the rendering context to be current.
  • Make al_set_target_bitmap change the current display as necessary. al_set_target_bitmap(NULL) releases the rendering context.
  • Add al_set_target_backbuffer as a convenience.
  • Remove al_set_current_display.
  • Give each bitmap its own transformation, i.e. every bitmap has a transformation, which is in effect when that bitmap is the target.
  • Remove sub-bitmap clip-to-parent restriction on create. Add out-of-bounds blitting support to memory bitmaps.
  • Merge sub-bitmap and parent bitmap clipping; clip source bitmap to (0,0)-(w,h); fix flipping to/from clipped bitmaps.
  • Made mouse cursors independent of displays. You may create cursors without a display, and you may use a cursor with any display.
  • Rename al_{set,get}_current_video_adapter to *new_display_adapter for consistency.
  • Move the new display video adapter and new window position to thread-local state, like other new display parameters. Make al_store_state also save those parameters with ALLEGRO_STATE_NEW_DISPLAY_PARAMETERS.
  • Rename al_transform_transform to al_compose_transform. Switched the order of parameters in al_compose_transform and al_copy_transform to match the rest of the transform functions.
  • Made memory bitmap manipulation without a display possible (again?).
  • Fixed window resizing in D3D driver. Simplify resize-postponing on Windows.
  • Make al_create_display abort early when the new_display_adapter is greater than the screen count (X11).
  • Added ALLEGRO_MINIMIZED flag to the X11 port.
  • Fixed OpenGL version string parsing (bug #3016654).
  • Other core:
  • Renamed al_install_timer to al_create_timer, and al_uninstall_timer to al_destroy_timer.
  • Rename al_{get,set}_{appname,orgname} to *app_name and *org_name.
  • Fix assertion failure in al_create_mutex_recursive on Windows (spoofle).
  • Primitives addon:
  • Made the D3D driver of the primitives addon work with multiple displays. Also made it handle the display being destroyed properly.
  • Simplified shader recreating on thread destruction when using the primitives addon with D3D.
  • Avoid double free when shutting down the primitives addon multiple times.
  • Older Intel cards don't implement DrawIndexedPrimitiveUP correctly. Altered the D3D code to work around that.
  • Audio addon:
  • Allow setting the DirectSound buffer size via allegro5.cfg.
  • Image addon:
  • Make GDI+ image loader work with MinGW.
  • Font addon:
  • Nicolas Martyanoff added al_get_font_descent/ascent functions which query per-font properties. Previously it was necessary to call al_get_text_dimensions (which now just reports the text dimensions as it should).
  • Native dialogs addon:
  • Add text log window functions (GTK only for now).
  • Documentation:
  • Many updates to the reference manual.
  • Improve styling and add Allegro version to HTML pages.
  • Separated readme_a5.txt into multiple files, and hopefully improve them.
  • Build system:
  • Remove INSTALL_PREFIX. Windows users can now use CMAKE_INSTALL_PREFIX to set the install path.
  • Allow the user to place dependencies in a subdirectory "deps", which will be automatically searched.
  • Examples:
  • Use text log windows in many examples.
  • Add ex_noframe: test bitmap manipulation without a display.
  • Bindings:
  • Update Python bindings.