Releases: allegroflare/allegro_flare
Diligent Discus
This is the most dramatic set of changes of any release so far. The total number of commits since initial commit is 1,254. This release contains 468 of them. The largest factor in these changes was a shift in the design. Namely:
- The functionality of each component is deliberate, clear, self-contained, and tested
- No more "will finish it later" components, classes, or features
- All classes are written in a more consistent and proper style (See new style guide)
- GUI has been removed - could make a comeback with a slightly new design
- Tests tests tests!
Some Specific Design Changes
- The
allegro_flare/
folder no longer exists and has been replaced byAllegroFlare/
with new file name and class name semantics - All classes (now generally being referred to as "components") are accompanied by a test file, written using Google Test
- All file names are now in
CamelCase
to match the class names themselves - All classes are namespaced within
AllegroFlare::
🎉 - Old example programs were moved to
legacy/
folder for reference - Several components are written using quintessence files
- Exceptions thrown with clear error messages
- Naming conventions and access patterns are more consistent (
get_*
,set_*
, etc) - Remove boost
Emerging Testing Conventions
- Testing now done with Google Test
- New
AllegroFlare/Testing/WithAllegroRenderingFixture
since 30e82d3 - A test fixture that enables running a unit test with an active Allegro 5 context (active display, access to fonts, bitmaps, etc.) simply and easily - Capturing COUT a5e4f71
Moving Forward
Note that with these design changes, a lot of previously existing code has been removed from the codebase - GUI framework and widgets, example programs, etc. A lot of these features might eventually be integrated back in; they do demonstrate some pretty cool stuff.
Going forward, the plan is to tackle 2 major topics:
- Update the build system to CMAKE - Get it to work in non-core-dev environments and prepare for public release and development
- Begin introducing higher-level design view of AllegroFlare - Add new classes that address high-level interests some examples, and begin integrating high-level concepts seamlessly into the framework.
Final Note
All in all, the codebase is cleaner, there are established conventions and a minimum standard of quality. Congrats on this major overhaul!
Here's the full change log: v0.8.9...v0.8.10
Sassy Seadragon
This release marks a lot of smaller changes. Here's the comparison log from 0.8.8 to 0.8.9. There's really too much to cover to cover it all. But, some big achievements include:
- Moving surface areas into nested folders
- Creation of
ElementID
, a great abstraction of arbitrary string attributes on classes. KeyboardCommandMapper
, a really nice class for managing and mapping keyboard combinations to string identifiers, or a collection of string identifiers.- Addition of
PickingBuffer
- Addition of
UserEventEmitter
- All (most?) compile warnings and errors are gone
In reality, the main objective of this release is to freeze this state of the app and prepare for somewhat major changes that will otherwise break the existing API and existing folder structure and header filenames. Stay tuned for that.
Pedantic Paddlefish
Notable Changes:
UIWidget
(and all its descendants) now inherit fromElementID
which inherits fromAttributes
. This makes traversing the child <-> parent tree a lot easier and more standardized.- Added a
Random
class - Refactored JSON
- Added
i18n
- Improved the build system so objects no longer need to be listed out
- Cleaned up tags and releases
- Added logo to repo
- Fixed mouse coordinates issue with nested widgets
- Created a (rudimentary) layout loader for creating and loading GUI layouts
KrampusHack 2016
This is the version used along with the master branch of https://github.com/MarkOates/krampushack2016 at commit MarkOates/krampushack2016@80b0c97
Hellbender Horse
This version makes major changes to the API and naming conventions, and adds a GUI.
Major changes:
- rename
af
toFramework
- FlareGUI has been completely merged and renamed from
FGUI
toUI
- compiler name and version removed from lib filename
- bump required Allegro version to 5.2.0
Bin
s can no longer be created globally
Other notable changes:
- fixes compile warnings when using
make
andmake examples
- improves testing methods with boost test
allegro5/
is now the default directory for Allegro inMakefile
src/
is renamed tosource/
- runtime errors and warnings are color coded
identification
renamed toelement_id
Attributes
can be saved and loaded to/from filesAttrSaveLoad
removed completely- added
RenderCache
- fixed CamelCase naming convention in
vec2d
andvec3d
No binaries are provided with this release.
TINS 2016
This is the version used in my TINS 2016 entry "The Path". Build along with Allegro 5.2.0.
Weatherbeaten Wobbegong
A lot of new features and a ton of overall improvements in the past 8 months. Some include...
- Better folder structure
- Improved build system
- Renaming of several classes
- Several examples moved to classes
- Several screens moved to demos
- Screens each now have a subbitmap of the backbuffer
- Introduction of a doc parsing system in Python
- Massively improved Mac Support
- Much more
Time for a bump.
Tricky Tetra
Following this release, a few major changes will be implemented and the API will be updated to work with Allegro 5.1.11. Compiled libs are not provided in this release, they are at upwards of 53 MB.
Salient Salamander
A pre-release to mark the end of a development cycle.
Brave Bunny
This is the first release of AllegroFlare. This is a non-production test release and is built with Allegro 5.1.8.