Skip to content

@ldicker83 ldicker83 released this Mar 23, 2017 · 2642 commits to master since this release

[1.3.0] - 2013-03-23

This version of NAS2D focuses on cleaning up the public interface headers and removing as much of the implementation details as possible. This is to help make NAS2D a lot easier to use to set up new projects and will reduce reliance on backend library interface headers unless the user specifically wants/needs direct access to these libraries.


  • Renderer fade completed signal.
  • Mixer music completed signal.
  • Added EventHandler::textInputMode(bool) to turn on and off text input modes.
  • Added EventHandler::textInput() to query whether or not text input mode is turned on.
  • Added EventHandller::query_control(), EventHandller::query_numlock() and EventHandller::query_shift() to query key modifier states.
  • Added Renderer::showSystemPointer() method.


  • Clarified origin and licensing information for Signal.h and Delegate.h.
  • Updated documentation on most interfaces.
  • Filesystem now throws an exception when any function is used before Filesystem::init() is called.
  • Cleaned up the public interfaces for all objects removing backend library headers and implementation details from public classes.
  • Cleaned out all using namespace directives from public interface headers.
  • Moved exceptions into NAS2D::exception namespace.
  • Moved signals into the NAS2D::Signals namespace.
  • Merged MouseButton enumeration to EventHandler class declaration.
  • Merged KeyCode into EventHandler class instead of being stand alone.
  • Merged KeyTranslator::control(KeyModifier), KeyTranslator::numlock(KeyModifier) and KeyTranslator::shift(KeyModifier) into EventHandler.
  • Renamed all functions in Signal0 - Signal5 to lowercase names to match std:: and NAS2D library conventions.
  • Renamed ::w() and ::h() methods in in Rectangle_2d/Rectangle_2df to ::width() and ::height().
  • OGL_Renderer sets line quality for circle drawing code based on configuration's texture quality.
  • Merged TinyXML into the NAS2D namespace. See Task #14 for additional information.


  • Removed Exception class in favor of specific exception types derived from std::runtime_error. See Exceptions.
  • Removed Renderer::toggleCinematic().
  • Removed Renderer::toggleLetterbox().
  • Removed Renderer::drawTextClamped() and Renderer::drawTextClampedShadow().
  • Removed Random interface. See Random Numbers.
  • Removed MersenneTwister implementation. See Random Numbers.
  • Removed Image::rect().
  • Removed XmlAttributeParser.
  • Removed Sprite::debug().
  • Texture Quality configuration option has been removed.


  • Fixed a bug in Font::width(const std::string&) that would report incorrect widths when using TrueType or OpenType fonts.
  • Fixed a possible resource leak in Font copy assignment operator.
  • Fixed a possible resource leak in Image copy assignment operator.
  • Fixed a possible resource leak in Music copy assignment operator.
  • Fixed OGL_Renderer::drawGradient() showing incorrect colors.


Since the Exception class has been removed, any code using NAS2D::Exception will need to be replaced. The easiest method to do this is to use std::runtime_error() or you may use a built-in exception type from the NAS2D::exception namespace. See Issue #13 for an explanation of the decision behind deprecating this class.

The Signals interface has been moved from the Gallant namespace to the NAS2D::Signals namespace. This will affect all code using custom Signals however using any of the built-in Signals (such as from the EventHandler or Sprite classes) will continue to function the same way without need for any changes. Additionally, all method names have been renamed to all lowercase names to match NAS2D and std:: library conventions.

All ::w() and ::h() method names across the entire interface have been renamed to ::width() and ::height().

Since all of the using namespace directives have been removed from all public interface headers, you will need to either use your own directive or specific the appropriate namespace for both std:: and NAS2D:: namespaces.

The KeyTranslator object has been removed. Useful functionality has been merged into the EventHandler class. Additionally, the KeyCode and MouseButton enumerators were also merged into the EventHandler. This means that you will either need to append EventHander:: to your calls or add a using namespace NAS2D::EventHandler to your source files. See Issue #23 for an in-depth explanation.

TinyXML's interface has been merged into the NAS2D::Xml namespace, all objects have been renamed and its interface has been updated to reflect NAS2D naming conventions. Documentation has been thoroughly updated and is now included as part of NAS2D's main documentation. See Task #14 for additional information.

Assets 3
You can’t perform that action at this time.