Skip to content

Diligent Discus

Pre-release
Pre-release
Compare
Choose a tag to compare
@MarkOates MarkOates released this 16 Jun 15:50
· 5290 commits to master since this release

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 by AllegroFlare/ 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