Orx - Portable Game Engine  (Version 1.8rc0)
=========================================

orx 1.8
-----
* IMPORTANT: Config list shader parameters will now work with inheritance
* IMPORTANT: Input config property JoystickThreshold/JoystickMultiplier have been replaced by DefaultThreshold/DefaultMultipler (which are applied to *all* inputs)
* IMPORTANT: Threshold/Multiplier can now be applied on a per-input basis, both in code and config
* IMPORTANT: External input values are now subject to threshold/multiplier
* IMPORTANT: There's now a proper input value scaling continuously mapping from [threshold; 1.0] to [0.0; multiplier]

* Fixed a very low repro rate deadlock at init on Mac (and possibly some Linux)
* Fixed a memory corruption when loading WEBP images with debug/profile builds
* Made sure threads are properly registered before being executed -> fixes a profiler marker assert that would happen sometimes on Mac
* Better profile marker watermark computation (would stop working properly after a bit over 4h of continuous runtime)
* Fixed orxObject_Attach() for objects with bodies
* Added orxConfig_IsLocallyInheritedValue() to tell if a value is locally inherited (ie. Value = @...)
* Logs are not sent to Visual Studio debug windows when the debugger is attached
* Added orxSystem_GetVersionFullString()/ __orxVERSION_FULL_STRING__ that contains the build number
* Simplified tutorial 04_Anim
* Misc fixes and additions

orx 1.8rc0
-----
* IMPORTANT: New animation declaration system has been added, both simpler and more powerful, older system is still working but is deprecated!
* IMPORTANT: Support for Visual Studio 2015 has been added and support for Visual Studio 2008 and 2010 have been removed
* IMPORTANT: Added version to orx, using MAJOR.MINOR-RELEASE (+additional BUILD number for official releases) + compile-time warning when using mismatched headers/lib versions
* IMPORTANT: Renamed internal screen texture from -=Screen=- to screen
* IMPORTANT: Added arm64-v8a support for Android
* IMPORTANT: Default physics Box2D plugin has been replaced with one based on LiquidFun (which is a based on a more recent Box2D fork)
* IMPORTANT: Body properties AllowGroundSliding and CanSlide are not supported anymore!
* IMPORTANT: Display's screen config properties (ScreenWidth, ...) will be updated at runtime with current screen values
* IMPORTANT: Viewports with a fixed size will not auto-resize by default anymore, viewport Size/Position take precedence on RelativeSize/RelativePosition
* IMPORTANT: Added Display.ShaderListExtension config property, if not defined GL_EXT_gpu_shader4 will be enabled by default
* IMPORTANT: Shaders can now be reconstituted from multiple parts using the Shader.CodeList property instead of the Code one
* IMPORTANT: Highest priority storage will now always remain the default storage (".")
* IMPORTANT: Prototypes of functions orxTexture_CreationFromFile() and orxTexture_LinkBitmap() and of command Texture.Create have changed!
* IMPORTANT: Added KeepInCache property to textures (via graphics and fonts) and to animation sets

* Added scrolling support to the interactive console (`), Console.ScrollSize controls the scrolling rate + a more user-friendly command completion display
* Orx can now be used without a main module and can be partially initialized using any module combination, support for user modules registration has been added
* orxOBJECTs can now be reset/deactivated upton deletion by returning orxSTATUS_FAILURE when listening to orxOBJECT_EVENT_DELETE
* Added recursive version of some orxObject functions/commands like Enable, Pause, SetColor, SetGroupID, ...
* Added NoDebug config property to viewports to prevent any automated debug drawing inside those viewports, such as the physics debug
* Added Immediate property to spawner to ignore the delay for the first wave after creation/reset
* Added FixedRatio property to viewports that are not linked to a camera
* Added support for appending config list items (using +=), can't append to a value that is using inheritance marker (@) + added orxConfig_AppendListString()/Config.AppendValue
* Added ANSI color support for terminal logs (ANSI color tags will be stripped from file logs for readability)
* Config data can now be loaded from a memory buffer using orxConfig_LoadFromMemory()
* Added support for time parameter to viewport shaders (using core clock's current time so that pause & stretching will affect the shaders)
* Added orxConfig_MergeFiles() that will concatenate files' content, including comments and commands
* Added orxMemory_Reallocate()
* Added direct previous sibling link to orxTREE_NODEs
* Added commands Object.SetClock, Object.GetClock, Object.SetAnimFrequency, Clock.SetFrequency and Clock.SetModifier
* Optimized config list read accesses using an internal index list
* Shader compiling debug message should not report the line number accurately from a user point of view
* Added orxHashTable_Retrieve() to efficiently combine a get/set combo
* Misc fixes, optimizations and additions

orx 1.7
-----
* IMPORTANT: Simplified compile targets to: Debug, Profile and Release (the Core targets are used for tools and don't embed the plugins)
* IMPORTANT: New lighter-weight hg/git repository of orx, setup.bat/setup.sh needs to be called (the first time only) to gather dependencies
* IMPORTANT: Added sound bus feature (for grouped volume & pitch control)
* IMPORTANT: Renamed orxRENDER_EVENT_OBJECT_PAYLOAD to orxRENDER_EVENT_PAYLOAD + modified its layout to use struct hierarchy
* IMPORTANT: Added orxConfig_SetBootstrap() that allow user code to be executed after config module init but *before* any config file has been loaded
* IMPORTANT: Added Webp support (load) to all platforms
* IMPORTANT: Android's target surface is now driven by Display.ScreenWidth or Display.ScreenHeight properties but will maintain device's aspect ratio
* IMPORTANT: Engine will now pause/resume when receiving focus events (Android)
* IMPORTANT: Owner-less shaders are not supported anymore (for full screen shaders, use viewport-attached ones instead)
* IMPORTANT: orxDisplay_SetVideoMode(orxNULL) will now reinit client states/arrays to help with a Steam overlay bug on some Mac computers
* IMPORTANT: orxRENDER_EVENT_STOP is now sent after all extra rendering (FPS, console, profiler)
* IMPORTANT: Added half-axis support to input module
* IMPORTANT: Added optional "sub-frame" interpolation to spawners, off by default
* IMPORTANT: Simplified module dependency scheme (will affect users that do not use the orx_Execute*() helpers)
* IMPORTANT: Physics update now uses absolute fix step update, based on Physics.StepFrequency property, adaptable update is still optionally available
* IMPORTANT: Added Size/Pivot support to objects that do not have graphics, compatible with picking functions
* IMPORTANT: Removed OpenGL ES 1.x support on iOS

* orxHashtable can now use 64bit keys
* Reactivated Neon support in stb_image (iOS, device only)
* Android's external dependencies are now compiled with gcc 4.9
* Added support for iOS 64bit
* Added orxAnimSet_GetName()
* Added orx_LogAllStructures(), for tracking purposes
* Added commands Command.IsGreater and Command.IsLesser
* Added command Config.ClearValue
* Added orxTexture_GetLoadCounter + associated command
* Fixed scale propagation for physical bodies in object hierarchies
* Fixed CRC32 to use the actual CRC32B reference algorithm + added slice-by-8 optimization
* Fixed Win64 support in file module
* orxFile_GetSize() now support 64bit sizes on all platforms
* Added commands to access object colors in all supported color spaces
* Added resource commands
* Added orxVECTOR constants for secondary colors (RGB)
* Removed all manual CPU/GPU sync points -> no more calls to glFinish()/glFlush()
* Updated all display plugins with VS2013BO-based optimizations
* SoundPointers can now be paused/stopped right after creation
* When a localized string/font isn't found when switching to a different language, the text won't get modified
* Renamed default font -=DefaultFont=- to default
* Misc fixes, optimizations and additions

orx 1.6
-----
* IMPORTANT: Added VS2013 (win32 & x64) support + precompiled binaries
* IMPORTANT: Added VS2012 (win32) support + precompiled binaries
* IMPORTANT: Removed official support for VS2008 & VS2010
* IMPORTANT: orxDISPLAY_EVENT_PAYLOAD has been refactored (field renaming)
* IMPORTANT: orxANIM_EVENT_PAYLOAD has been refactored (field renaming)
* IMPORTANT: Android builds are now using hard-float ABI and NDK r10b
* IMPORTANT: Android builds have been migrated from Eclipse to Android Studio
* IMPORTANT: Added support for Android TV

* Param config section will now be populated with parameters provided on the command line (full names only)
* Debug-only: orx will try to detect and warn about case config errors
* Optional context can now be provided when registering event handlers
* Animations (both current & target) can now be changed from within an animation event callback
* Added Joystick support to Android, conditional upon Android.UseJoystick config property
* Added Nexus player remote support to Android
* orxSTRUCTURES ordered as lists will not be ordered as FIFO anymore (use instead a cache friendly strategy)
* Added orxDISPLAY_EVENT_LOAD_BITMAP, orxTEXTURE_EVENT_LOAD and orxANIM_EVENT_UPDATE events
* Added Display.ShaderVersion config property, defaults to 120 on Windows, Linux & OSX
* Spawner can now handle random/list values for WaveSize, WaveDelay and ObjectSpeed
* Android audio thread is paused when application is sent to the background
* AnimSets can now contain up to 1024 anims (previously: 256)
* Command Object.Delete will now handle disabled objects correctly
* Updated stb_image to v2.0b
* Updated stb_image_write to v0.95
* Updated stb_vorbis to v1.04
* Misc fixes, optimizations and additions

orx 1.6rc0
-----
* IMPORTANT: Added Multi-threading support
* IMPORTANT: MinGW32 build is now using gcc 4.8.1 instead of gcc 4.6.2
* IMPORTANT: Textures and sounds will be loaded asynchronously on all platforms, by default
* IMPORTANT: Added orxThread_RunTask() to run asynchronous tasks
* IMPORTANT: Orx's API (beside orxThread module) is *NOT* thread safe (don't use it inside tasks)
* IMPORTANT: Added orxFile_GetApplicationSaveDirectory() (and orxFile_GetHomeDirectory())
* IMPORTANT: Android native version is back!
* IMPORTANT: Added immediate command evaluation in config, using % as line prefix

* Added support for insert/overwrite modes in console
* Profiler display supports multi-threading: PageUp/PageDown to navigate between threads
* Added support for Bezier curves (orxVector_Bezier())
* Added orxVIEWPORT_EVENT_RESIZE
* Added nameless key inheritance (@.MyKey) to config
* Added orxDisplay_SetTempBitmap() to control temporary bitmap used for objects while their texture is being loaded
* Rewrote object<->body<->physics communication with cleaner&better parenting/time-stretching support
* Added 'Immediate' config property to timeline tracks
* Fixed a bug in orxFontGen regarding advance scaling and ascender
* Updated OpenAL-Soft
* OpenAL-Soft's thread is paused on Android when application is in the background
* orxFile_Open() will now create missing intermediate directories when used with a write mode
* Added orxFile_Remove() and orxFile_MakeDirectory()
* Removed SOIL dependency (use stb_image & co instead)
* Command Texture.Save can now either take a Texture (ID) or a name as argument
* Command Object.FindNext can now accept the character * as first argument to consider all objects
* Added a bunch of new commands
* Misc fixes, optimizations and additions

orx 1.5
-----
* IMPORTANT: Fixed screen saving in GLFW display plugin (affected screenshot feature as well)
* IMPORTANT: Added flip & animation support for text objects
* IMPORTANT: Added config property AutoResize to Viewport
* IMPORTANT: Added config property BackgroundAlpha to Viewport
* IMPORTANT: orxOBJECT_EVENT_ENABLE/_DISABLE are now only sent if there's an actual change of status
* IMPORTANT: Added virtual keyboard support for Android + orxKeyboard_Show()

* Improved orxFontGen's font generation when used in compressed/filtered textures
* Android: a few refactoring & fixes
* Added orxOBJECT_EVENT_PAUSE/_UNPAUSE events
* Added random seeds accessors (useful for backup & restore purposes in replays, for example)
* Added orxString_IsCharacterAlphaNumeric()
* Added orxAnimSet_FindNextAnim() to peek at next anim in queue
* Added orxBody_GetJointReactionForce()/orxBody_GetJointReactionTorque()
* Fixed a bug in hotreload of timeline tracks
* Fixed rare bug in orxObject_GetChild()/orxObject_GetSibling()
* Misx fixes, optimizations and additions

orx 1.5rc0
-----
* IMPORTANT: Added Resource module
* IMPORTANT: Added resource WatchList dev concept + hotreload for: configs, sounds, textures, shaders, texts, fonts, timelines & spawners
* IMPORTANT: Added concept of group to objects, cameras and rendering + added orxObject_GetNext() for group browsing
* IMPORTANT: Added MRT (Multiple Render Targets) support on computers + Android/OpenGL ES 3.0
* IMPORTANT: Textures are not Y-reverted at runtime anymore: no need to manually Y-revert compressed textures and shader UV coordinates
* IMPORTNAT: Added String ID support (using hash as key/comparison value + central content storage)
* IMPORTANT: No more screen-as-texture support, render-to-texture should be used at all time
* IMPORTANT: Viewports are now rendered in their order of creation (was previously reverse order)
* IMPORTANT: Added memory tracking, including resource-related dependencies: sound, textures, physics (displayed in the profiler screen)
* IMPORTANT: KEY_TILDE has been renamed to KEY_BACKQUOTE
* IMPORTANT: Added short-term history to profiler + histogram + pause/replay/navigation
* IMPORTANT: Added support for gl_Color in custom shaders (mapped to object's color/alpha)
* IMPORTANT: Fixed iOS XCode project
* IMPORTANT: Added support for Sync-or-Tear on Windows/Linux (GLFW plugins)
* IMPORTANT: Added support for premultiplied alpha
* IMPORTANT: Added support for background input sets
* IMPORTANT: orxRender_GetWorldPosition() takes an additional viewport parameter
* IMPORTANT: Rendering has been broken into two phases for greater CPU/GPU parallelism
* IMPORTANT: Added ownership concept to all orxSTRUCTUREs + full hierarchy support to orxOBJECTs
* IMPORTANT: Alpha, color, repeat and blend mode are only stored on orxGRAPHIC and not on orxOBJECTs anymore
* IMPORTANT: Added local<->global transformation functions in orxFrame module for position/rotation/scale

* Added Sublime Text 2/3 project
* Modified time-related functions to be Y38-ready
* Intermediate textures used for render-to-texture will be handled entirely by viewports
* Added support for orxDisplay_SaveBitmap() to Android
* Compositing can now be done by using a viewport shader instead of using camera+intermediate object
* No more fixed pipeline when shaders are supported on computers (GLFW plugins)
* Unified mouse cursor handling across different OSes + screen<->world coordinates conversions
* Added much better batching for objects using custom shaders
* Added a bunch of new commands
* Calling orxDisplay_GetVideoMode(orxU32_UNDEFINED) will now return the default/desktop mode
* Calling orxDisplay_GetVideoMode() with an index > number of modes will return the current mode
* Batches for FPS, console & profiler display won't appear in the profile stats anymore
* orxSystem_GetSystemTime() is now public
* Fixed windows property AllowResize not working when Mouse.ShowCursor was set to true
* Tighter waterstamping in profiler
* Better support for tiny animations (< 1 frame)
* Fixed bank segment alignment
* Added APK resource type for Android, based on the new Resource module
* Remove obsolete Config.IgnorePath property
* Better refresh rate estimation with GLFW plugins
* Fixed console history loading crash when history was full
* Better detection of cache line size on most platforms
* Improved orxDisplay_DrawMesh (all implementations)
* Improved orxFontGen tool
* Misc fixes, optimizations and additions

orx 1.4
-----
* IMPORTANT: Android native version has been deprecated and removed in favor of the standard Android version
* IMPORTANT: Android OS minimum version has been raised from 2.1 to 2.3
* IMPORTANT: Android: NDK_MODULE_PATH should now point to orx/code (or orx/dev-android) folder instead of /orx
* IMPORTANT: Audio plugin on Android is now based on libTremor & OpenAL which results in a big performance improvement
* IMPORTANT: Literal names can be used for Body properties CheckMask and SelfFlags, instead of numerical values
* IMPORTANT: Added conditional commands (If, EvalIf), logical ones (Not, And, Or, XOr) and numerical ones (AreEqual, Sub, Add, Div, Mul)
* IMPORTANT: orxFontGen will now center glyphs when executed in monospace mode

* orxFontGen tool now exports directly to .png format instead of .tga
* Font config property TextureCorner has been renamed to TextureOrigin for more consistency
* Command Config.GetValue can now resolve numerical randoms (~)
* orxStructure_GetGUID() now masks out the reference counter value for easy GUID comparisons
* Objects created via tracks get their first update during the current frame (wasn't always happening before)
* iOS: Fixed optional depth buffer creation/handling
* Fixed profiler not being initialized correctly if orx is started twice within the same program during the same second
* Android: Config properties Display.DepthBuffer and Android.AccelerometerFrequency are now properly recognized
* Added support for .ktx, .pvr and .dds texture format on Android
* Version 2.7.7 of GLFW is now used in relevant plugins
* Updated OpenAL-Soft to a newer version (10/01/2013)
* Tighter sphere culling in the render plugin
* Misc fixes and additions

orx 1.4rc0
-----
* IMPORTANT: Using the default launcher is now deprecated and all tutorials are stand alones
* IMPORTANT: Added TimeLine module for non-interactive timed sequences (can be defined in config)
* IMPORTANT: Added Command module that can evaluate/execute literal commands at runtime (commands can also be registered by user at runtime)
* IMPORTANT: Commands stored in timeline tracks will be automatically parsed/executed using a special syntax to access owner's GUID
* IMPORTANT: Added weakly resolved aliases for commands that can wrap command line arguments
* IMPORTANT: Added interactive (and customizable) console that allows the execution of commands at runtime
* IMPORTANT: Fixed animation custom event registration: they are now registered at the *beginning* of the corresponding frame
* IMPORTANT: Added linux x86_64 support + added corresponding project files/precompiled dependencies
* IMPORTANT: Added native landscape orientation support on iOS (double camera trick isn't needed anymore)
* IMPORTANT: touch and accelerometer events are now handled in a thread-safe way on iOS
* IMPORTANT: Added dynamic self-reference in config using the @ 'keyword'
* IMPORTANT: Added optional default parent for all config sections
* IMPORTANT: Keyboard presses (characters and unicode strings) can be directly obtained on linux/mac/windows
* IMPORTANT: Much more efficient version of Android (non-native) plugins
* IMPORTANT: Renamed the config property TextureCorner to TextureOrigin to match internal code naming convention
* IMPORTANT: Added primitive draw support (line, circle, polygon, box)
* IMPORTANT: Added primitive to draw meshes (textured polygon list as a GL_TRIANGLE_STRIP)
* IMPORTANT: Added window resize support (both in code or via direct user manipulation of the handles)
* IMPORTANT: MainClockFrequency should now work much smoother and lower CPU use in any non-vsync case
* IMPORTANT: Added 64b GUID for all orx structures
* IMPORTANT: Added Box2D debug display (in non-release builds only) when config property Physics.ShowDebug is set
* IMPORTANT: Replaced __orxIPHONE__ by __orxIOS__
* IMPORTANT: Renamed orxObject_GetChild/orxObject_GetSibling to orxObject_GetOwnedChild/orxObject_GetOwnedSibling
* IMPORTANT: Fixed Retina display for iOS devices
* IMPORTANT: Added compressed texture support for iOS devices, powered by TDomhan
* IMPORTANT: Added ogg/vorbis support for iOS devices (not hardware accelerated)
* IMPORTANT: orxCrypt tool doesn't do merge by default anymore but simple 1:1 file copy (-m to trigger config merging)
* IMPORTANT: Added RGB/HSL/HSV as config input for objects, graphics & FXs
* IMPORTANT: FXs can now be used for modifying the color of objects using HSL or HSV color spaces (for more natural blendings)
* IMPORTANT: FXs can now be used for modifying volume and pitch of sounds over time (with curves) on objects
* IMPORTANT: Multitouch support is now unified across Android and iOS devices (still handled via events)
* IMPORTANT: Single touch and accelerometer are now emulated on computers via system events using left mouse click / first joystick data
* IMPORTANT: PVRTC textures are now supported for android/android-native
* IMPORTANT: Big speed optimization for debug builds: they will only flush the debug log to disk when quiting
* IMPORTANT: Added automated shader parameter "time" that will contain the owner's active time (only available for objects as owners)
* IMPORTANT: Calling orxDisplay_SetVideoMode() will always clear the cached texture/blend mode (useful after custom rendering)
* IMPORTANT: Replaced orxHashTable_FindFirst/orxHashTable_FindNext with orxHashTable_GetNext
* IMPORTANT: orxRGBA is now a full-fledged structure

* All build/project files can now be regenerated using premake4 for all platforms/IDEs (except XCode)
* All config values can now be saved back to the file where they were defined for the first time.
* Config lists can now span multiple lines provided each line to be continued ends with #
* Added 64b int/uint support for config values, math random number and string conversion
* Added FXDelayList config property for objects
* Added PNG write support for computer versions (SDL/GLFW)
* Replaced old PNRG with a Xor128 one (as fast as the previous one but with a much better quality of distribution and a huge cycle size)
* Added Display.ScreenPosition config property
* Added possibility to create/modify sound samples and streams at runtime
* Iconification is now correctly supported on computers
* Added Smoother(step) curve for orxFXs
* Added possibility to filter output of log/debug messages based on their categories
* Cleaner logs for error messages + per-debug level filtering options
* Memory bank elements can now be aligned on cache line size by defining __orxBANK_ALIGN__
* Added orxHashTable_Optimize that optimizes an already filled hash table for cache misses upon collisions during read accesses
* Fixed using an object hierarchy + bodies with respect to speed update
* Fixed ApplyForce/ApplyImpulse on physics bodies
* Fixed spawning of physics object when UseSelfAsParent is set
* Fixed applying physics impulse/force not using the center of mass correctly by default + not using local space
* Added monotonic clock support on linux, mac os x and iOS
* Added support for refresh rate in video modes (only used for computers in the glfw plugin)
* Improved profiler display + support portrait orientation + added some more internal markers + markers are ignored during profiler rendering
* Added new maths functions : smooth/smoother steps + catmull-rom sline interpolation
* Fixed orxBody_GetMassCenter() not returning a scale-invariant position
* Fixed NPOT texture support for iOS devices
* Fixed relative children object positioning + joints when created in config
* Added support for motor speed/torque for revolute ChildJointList
* Fixed orxConfig_IsInheritedValue() not working for global section inheritance
* Added config-customizable sound streaming (buffer size & number)
* Fixed sub-graphic (ie. in spritesheet/texture atlas) coordinates passed to shaders
* Fixed multi-texture animations not working with shaders
* Fixed texture smoothing/blending when some shaders are active
* Fixed pre-multiplied texture issue on iOS devices
* Fixed render-to-texture offset for architectures that don't have NPOT texture support
* Fixed aspect rendering on portrait-oriented (ie. vertical display) devices
* Optimized core event dispatch
* Added direct accessors to object's sibling and child for better performances
* Added config encryption get accessor + config file copy function
* Frames are not immediately updated (no more passive deferred frame update)
* Newly added sounds to objects will get their position updated immediately
* Added option to synchronize FXs on one object with respect to another one
* Fixed lost sound stream buffers when they were discarded on the fly by the user
* Worked around a framebuffer bug in iOS 4.2
* Added orxRender_GetScreenPosition() to transform a world position to screen given an optional viewport
* orxRENDER_EVENT_START is now sent *after* screen had been cleared
* Fixed calling orxObject_SetParent(orxNULL)
* Fixed orxSOUND_EVENT_STOP not sent for all cases of sounds removal
* Calling orxDisplay_SetVideoMode(orxNULL) will now trigger a window title update based on the config value
* Added index buffer object optimization for all rendering
* Removed obsolete orxSYSTEM_EVENT_MOUSE_IN/_OUT events
* Added debug error message when loading config files with an unsupported unicode encoding (only UTF-8 is supported)
* Removed obsolete __orxWII__ and __orxGP2X__ defines
* Misc fixes, optimizations and additions

orx 1.3rc0
-----
* *** Added new platform with full support: android/android native. ***
* IMPORTANT: Added very easy to use CPU profiler module with optional runtime graphical display (#define __orxPROFILER__)
* IMPORTANT: Added OpenGL ES 2.0 support for iPhone/iPod Touch/iPad + full shader pipeline (including custom shader support)
* IMPORTANT: Mingw dev package has binaries built with gcc 4.5.0 which are *NOT* compatible with older versions of gcc. Please upgrade or recompile orx and dependencies.
* IMPORTANT: Added physics joints support and updated to Box2D 2.1.3 (svn v140, pre-release) which impacts on some physics settings (no more world boundaries, etc...)
* IMPORTANT: a ChildJointList can be specified in config for building complex objects with joints, along the ChildList config property
* IMPORTANT: iPhone touch, motion and accelerometer events have now been merged with android ones in orxSYSTEM_EVENT_*
* IMPORTANT: Added non-monospace (ie. non-fixed width) font support + updated orxFontGen to generate both monospace and non-monospace fonts, packed/non packed characters
* IMPORTANT: Added sound recording (to memory and/or disk with various file format support, with possibility of analyzing/pre-processing the samples through events)
* IMPORTANT: When playing a sound stream, the packets can be analized/altered on the fly (for realtime effects, for example)
* IMPORTANT: Rendering to texture support is back with GLFW & iPhone plugins
* IMPORTANT: orxSYSTEM_EVENT_BACKGROUND & orxSYSTEM_EVENT_FOREGROUND have been added to handle new iOS 4 "backgrounding" for application and will deactivate any rendering made by orx by defaault
* IMPORTANT: Scale for objects with a ParentCamera is now expressed in camera space, by default.
* IMPORTANT: Custom event config syntax has changed (please check CreationTemplate.ini): they are now bound to keys and don't require a timestamp
* IMPORTANT: If a shader parameter is defined as an explicit list, an array will be created instead of a single variable
* IMPORTANT: UseParentSpace config property for objects with a ParentCamera now take additional values: both, non, positiona and scale
* IMPORTANT: UseRotation/UseScale in spawner config changed: when set to false, no rotation/scale will be applied to the created object by the spawner and UseRelativeSpeed will always use spawner's parent orientation/scale
* IMPORTANT: Added Tutorial #12, Shader and Lighting
* IMPORTANT: Added Smooth(step) curve for orxFXs
* IMPORTANT: orxCamera_GetFrustum now returns a frustum in camera's local space
* IMPORTANT: Config save callback now takes an extra parameter: the file name
* IMPORTANT: orxLOG() will now use the current debug flags so it's possible to globally enable/disable file/console logging, even for orx's generated logs

* Optimized home render plugin to batch objects by texture (5-15% FPS boost, depending on scenes)
* Optimized frame update for orphan objects (6-8% FPS boost)
* Optimized GLFW and iPhone rendering: batching + indexing + interlacing -> 10 - 100% FPS boost
* Orx will now use the current desktop resolution if none if provided
* Fixed 2nd object in orx's global list not being ticked for one frame when first object's life time was depleted
* Orx has perfect synchronization between sound playing and sound recording to allow on the fly analysis/modication of sound packets
* When selecting a new input set, the inputs status will be updated immediately to make sure holding key/button won't register as a new status
* Better mouse axis handling in the input module: when user manually moves the cursor to simulate a capture, this won't affect input's values
* Added JoystickMultiplier to input module: all joystick axis values will be multiplied by this value to allow scaling and a more seamless joystick/mouse input integration
* Anims can now contain 65535 keys and 65535 events
* Config lists can now contain 65535 values
* Increased config section table size to provide faster accesses for huge config data (10 000+ sections)
* Added orxDisplay_GetBitmapData()
* Added optional depth buffer creation + better user-defined external rendering support (such as custom 3D rendering)
* Added CleanOnDelete in spawner config to delete all alive spawned objects when their spawner is deleted
* Minor internal pipeline/vertex shader optimization
* Added dlmalloc as internal default memory allocator
* Clock DT and orxSystemGetTime() are now using double precision and can support much much longer uptimes
* Added orxEVENT_TYPE_DISPLAY/orxDISPLAY_EVENT_SET_VIDEO_MODE event
* No more limitation on the number of body parts contained in a body
* Added AllowSleep config property for bodies
* Replaced system's pseudo-random functions with faster pseudo-random ones
* Merged orxFile and orxFileSystem modules
* Added orxBank_Compact()/orxBank_CompactAll() functions to reclaim unused bank segments
* Fixed rendering with positive aspect ratio (only negative were working correctly)
* Fixed some config "block" parsing issues with multiple double-quotes
* Fixed orxFontGen to output visually correct fonts when used with fonts that have a negative left side bearing
* Fixed orxConfig_SetEncryptionKey() not being able to be called before orx's init
* Fixed orxString_ToS32/ToU32 considering 0 as an invalid octal number (still giving 0 as result but interrupting the conversion of the remainder of the string)
* Removed object render flag (wasn't very precise)
* Added orxTEXTURE_EVENT_CREATE/_DELETE events
* Added orxSPAWNER_EVENT_CREATE event
* Body's features can now be queried with read-only flags
* Added linear & angular damping runtime accessors (get/set) for bodies
* Added self flags & check mask runtime accessors (get/set) for body parts
* Simplified iPhone demo
* Changed the way reference handling works for orxSTRUCTUREs so as to be more consisten
* Fixed issues that prevented orx from being fully restarted in the same program execution
* Better AllowGroundSliding handling in the Box2D physics plugin
* Fixed full executable path handling on init
* Misc optimizations & fixes

orx 1.2
-----
* *** Added new platform with full support: iPhone (iPod Touch/iPad). ***
* *** Orx is now published under the zlib license, please see the LICENSE file. ***
* IMPORTANT: Added Unicode support with UTF-8. Config files now should be encoded with either plain ANSI or UTF-8: extended ASCII characters (ISO-Latin-1) won't be recognized any longer.
* IMPORTANT: Added custom bitmap font support in orx with Jørgen 'Jibs' Ibsen's Dina font as default.
* IMPORTANT: Added the orxFontGen tool to create orx-compatible bitmap fonts (.tga/.ini) from TrueType (.ttf) font files, using reference texts to define the list of characters to export.
* IMPORTANT: Joystick buttons/axes are now suffixed with the corresponding joystick's ID (JOY_X_1, JOY_1_2, ...).
* IMPORTANT: Added new plugins for embedded versions: SDL plugins for win/linux (35-40% than the SFML ones) and GLFW plugins for win/linux/osx (~2% faster than SDL ones).
* IMPORTANT: Added an OpenAL/libsndfile/stb_vorbis audio plugin as SFML audio plugin counterpart.
* IMPORTANT: SDL & GLFW now handle per-object shaders in a correct manner: shader is only applied when the object is rendered and only on it. This behavior can't be obtained with SFML plugins.
* IMPORTANT: Added an internal texture called "pixel" that holds a white pixel with full opacity. This can be used for all fade in/out effects and more.

* Added automatically generated coordinates for shader textures: Texture MyTex -> MyTex_Top, MyTex_Left, MyTex_Right & MyTex_Bottom are generated by orx in a consistant way across all platforms/plugins.
* GLFW plugins are now the default plugins for embedded mode. SFML plugins are still the only existing plugins for non-embedded mode.
* GLFW and SDL plugins also use SOIL library for handling graphic files I/O
* Fixed incorrectly names joystick axes
* Texts can use localized fonts using the locale module in the same way as string content
* Added orxBank_GetIndex() & orxBank_GetAtIndex() for array-like manipulations
* Heavy optims in the orxBANK module when allocating cells and clearing banks
* Added orxObject_BoxPick() for picking objects intersecting with box
* Added orxMOUSE_X and orxMOUSE_Y as valid inputs for the generic input system
* Added HSL/HSV color space support with HSL<->RGB & HSV<->RGB conversion functions
* Added ParentCamera property for cameras (useful for cascading cameras or Fixed/UI camera trick for portrait<->landscape adaptation)
* When selecting a new locale language at runtime, graphics containing localized text will now resize accordingly to the text's new size
* Added __orxFREEBASIC__ define for free basic friendly build of orx
* orxClock_RemoveTimer() can now filter using the registered context
* Added events orxCONFIG_EVENT_RELOAD_START, orxCONFIG_EVENT_RELOAD_END & orxCONFIG_EVENT_INVALID_TYPE_ACCESS
* Added some new orxConfig_* functions for advanced config manipulations
* Working directory is set to executable's one for all platforms (was done only for Mac OS X before)
* Fixed constness of all orxSTRING related code
* Cleaner texture/bitmap deletion handling
* Fixed FPS display position when aspect ratio is not 1:1
* Removed a couple of warnings from external library Box2D
* Fixed some minor issues in SFML-based sound plugin
* Config raw sections/values can now be accessed at runtime (used in EyeCreate's orx config editor Pey)
* Fixed sound attenuation ratio in SFML plugin
* Added Config::IgnorePath parameter to ignore all paths when loading resources (useful for iPhone bundles were all files easily end up in the root folder)
* Modules' Init & Exit functions are now optional (ie. stand alone application don't have to define them if not needed).
* Default minimal frequency for the home made renderer plugin is now 10Hz (was 60Hz).
* Fixed orxLOCALE_EVENT_SET_STRING not sent
* Some optims / fixes / cleaning

orx 1.1
-----
* Added orxCrypt command line tool for merging/encrypting/decrypting config files
* Added owner to spawner structure + all missing accessors for runtime handling
* Added associated clock to objects so as to allow localized time stretching (including sound pitch alteration)
* Clocks can now be created from config files and directly from objects. There can be only one clock with a given name (like cameras)
* IMPORTANT: Renamed spawner's WaveNumber property to WaveSize
* IMPORTANT: World gravity now use the physics dimension ratio -> update your config files accordingly
* orxCLOCK is now an orxSTRUCTURE
* Added timer handling functions in clock module
* Fixed aspect ratio correction when viewport was narrower than camera
* Added custom events for animations
* Integrated current Box2D version from its svn repository
* Added Raycast feature when physics is enabled (+wrappers in body & object modules)
* Dynamic objects can now have parents and get the cumulated result move from parents + physics simulation!
* Added a custom gravity as Body's property
* Physics simulation is back on main clock to provide a more robust game loop
* Fixed FixedRotation property to use Box2D feature instead of orx's hacked one
* Fixed orxVector_FromCartesianToSpherical() not getting the correct Rho when colinear to negative axes
* Added names of both involved parts in contact events
* Fixed orxFRAME child calculation when using anisotropic scale on parent
* Fixed home render plugin camera rotation when the camera has a parent object
* Removed AutoDelete property for spawners
* Added possibility for spawner to transmit or not parent's rotation & scale (by default it transmit them as before)
* Added orxObject_GetChild() / orxObject_GetSibling() for querying dependencies (for objects created through config's ChildList property only)
* Fixed config block value incorrectly saved by orxConfig_Save()
* Added the possibility to use empty config values either by using an empty line or a ;
* IMPORTANT: Due to the above change, block values must have the opening " on the same line as the key attribution: Key = "
* Config section inheritance can now easily be modified on-the-fly, at runtime (orxConfig_SetParent())
* Added 'screen' keyword for ShaderList properties
* Optimized shader lists processing when rendering objects & viewports
* Fixed tutorial #5 (viewport) jerkyness
* Sets default gravity to none in Box2D physics plugin
* Fixed use of AutoScroll/DepthScale with objects using bodies
* Changed tutorial #11 (spawner/shader) shader code
* Added orxDisplay_GetVideoModeCounter() / orxDisplay_GetVideoMode() / orxDisplay_SetVideoMode() & orxDisplay_IsVideoModeAvailable() (+SFML implementations)
* Renamed orxInput_GetBoundInputNumber() to orxInput_GetBoundInputCounter()
* Renamed orxStructure_GetNumber() to orxStructure_GetCounter()
* orxSystem module is now part of core (external library independent) and not a plugin anymore (+updated all configurations)
* When querying screen texture size, the latest display size will always be used
* Updated bounce demo to be able to change resolution on the fly (F1/F2) + ToggleFullScreen on F3
* Added orx_WinExecute() helper for console-less windows application
* Added __orxWII__ platform define for future work
* Added __orxIPHONE__ platform define for future work
* Misc updates & fixes

orx 1.0 final
-----
* Added fully featured localization module (orxLocale)
* orxTEXT that relies on the orxLocale module will now be automatically updated when changing language at runtime
* Updated screenshot module to work with config reloads
* Optimized some access to the config module
* Added acceleration parameter to FX curves (to controle their frequencies over time)
* Fixed flipped & tiled objects rendering
* Replaced all external uses of orxRGBA by orxCOLOR
* Events handlers are now expected to return orxSTATUS_SUCCESS so as to continue calling other handlers
* Added orxDisplay_SetFullScreen() and orxDisplay_IsFullScreen() functions + SFML implementation
* Improved some tutorials + added localization example in tutorial #10
* Misc minor updates in code & comments

orx 1.0rc1
-----
* Migrated all SFML plugins on all platforms to SFML 1.5: linux was using SFML 1.3, other platforms were using SFML 1.4
* Fixed the reload of config history: logic was broken and it could even crash
* Physics plugin now can handle negative scales (mirror effect)
* Fixed spawner not using scale when setting spawned object's relative speed
* Added orxLOG_CONSOLE(), orxLOG_FILE() and orxLOG_RAW() helpers
* Config section are not allowed anylonger to have leading or trailing spaces + trimmed all requests accordingly
* Fixed spawner wave timestamp not being correctly cleared when a spawner was reset
* Removed obsolete files
* Misc minor updates in comments/doc files

orx 1.0rc0
-----
* Initial release candidate for orx 1.0
