CRM64Pro GDK  v0.94
A free cross-platform game development kit built on top of SDL 2.0
Full list of changes in the GDK's version history
------------------------------------------------------------------
  CRM64Pro GDK - Roberto Prieto
  Copyright (C) 2013-2016 MegaStorm Systems
  contact@megastormsystems.com - http://www.megastormsystems.com
------------------------------------------------------------------

CRM64Pro is a free cross-platform game development kit built on top of SDL 2.0.
This software is distributed under zlib license.

xx July 2016 - 0.96 - General improvements
------------------------------------------
- ToDO: CDC2XML? (para convertir DPF<->CDC)
- ToDO: timer support pauses/breakpoint
- ToDO: high res timer
- ToDO: micro-benchs?
- ToDO: memory manager (check ogre3d)

xx July 2016 - 0.95 - MSTE
--------------------------
- ToDO: integrar MSTE
- Finish GUI system documentation
- Finish C64 documentation (how to install and use mainly)

30 June 2016 - 0.94 - EditorC64 (last stable version)
-----------------------------------------------------
- EditorC64 0.8, updated version.
- GUI:
  . new methods getScroll() and getVisibleItems()
  . improved drag&drop system
  . new panel type: PT_EPHEMERAL with a given TTL(time to live)
  . added two built-in fonts: white and black
  . added three built-in icons: info, warning and error
- Tool:
  . messageBox() now uses our GUI system.
- Audio Manager:
  . fixed several bugs on Music and Sounds managers/objects
- Using MikMod 3.3.8 (Nov-2015) library.

31 May 2016 - 0.936 - EditorC64 
-------------------------------
- EditorC64 0.5, updated version.
- Improve managers setName() and assignImage() methods.
- GUI:
  . new widget feature flag for reporting lost focus events
  . new WT_TEXTBOX feature flag for doing the content read-only
  . fixed an issue with TextBox and ListBox widgets
- Tool:
  . new methods fileGetAbsolutePath() and fileGetExePath().

30 April 2016 - 0.93 - EditorC64 
--------------------------------
- EditorC64 0.3, first working version of the new resource manager.
- Managers than can save object to CDC files now also have a method for removing them.
- Improved unified error codes.
- GUI:
  . event handling code was reworked fixing all known issues
  . new widget feature flag for reporting mouseover events
  . improved WT_LISTBOX widget, now can add and select an item and can check the items are unique
  . fixed an issue with TextBox widgets on PT_MODAL panels  
  . minimum widget size is 8x8 and the default one is 15x15
- Tool:
  . new methods fileOpenDialog(), fileSaveDialog() and messageBox() using native calls on Windows, Linux and MacOS X

29 March 2016 - 0.91 - General improvements 
-------------------------------------------
- Archive CDC v1.1:
  . improved blockAdd() method: check if the block of data already exists and if it's the same(do nothing) or can be overwritten
  . new blockUndelete() method for recovering a "soft" deleted block of data
  . variable number of data blocks defined at creating time. defrag() method can resize it
- Config Manager:
  . XAudio2 2.7 is now available as a Windows audio driver
  . ScreenObj functionality has been greatly improved: vsync, size, mode and even renderer drivers can be modified at any time
  . methods for changing between window, fullscreen and new fullscreen-window modes
  . new method for enabling/disabling the border decoration of a window
  . new methods for setting logical size allowing a resolution independent rendering (letterbox and overscan)
  . fixed known bug #0016
  . fixed known bug #0018
- Static code analysis performed. 
- Using xxHash 0.5.1 library.
- Using SDL 2.0.4 b10002 (28-March-2016) library.
...

19 March 2016 - 0.90 - GUI improvements 
---------------------------------------
- GUI:
  . new PanelObj::save() method for saving the panel and all its widgets
  . new GUI::load() method for loading a panel
  . ToDO: documentation
  . default console is enabled by default on debug mode
- Direct3D v11 renderer uses a triple-buffer.
- Using doxygen 1.8.11 and fixing some docs issues.

29 February 2016 - 0.898 - GUI improvements 
-------------------------------------------
- GUI:
  . console object with 3 commands 'con', 'dw' and 'help'
- Tool:  
  . new vStrToFile() and fileTovStr() methods
- Support Direct3D v11 renderer (only for Windows 8+).
- Using SDL 2.0.4 b9901 (29-December-2015) library.
- Using libpng 1.6.20 library.

30 November 2015 - 0.896 - General improvements 
-----------------------------------------------
- Unified error codes on all modules.
- Fixed an issue when loading an unsupported object version on all modules.

31 October 2015 - 0.895 - General improvements 
----------------------------------------------
- SDK is signed using MegaStorm Systems CA.
- All projects are migrated to Visual Studio 2015.
- All projects settings are using the same baseline values.
- Using SDL 2.0.4 b9799 (9-August-2015) library.
- Using libpng 1.6.18 library.
- Using SDL_net 2.0 (26-Jun-2015) library.
- Using SDL_mixer 2.0 (1-Aug-2015) library.
- Using MikMod 3.3.7 (31-Aug-2014) library.
- Using libvorbis 1.3.5 library.
- Using AES (27-Sep-2015) library.

21 July 2015 - 0.89 - GUI improvements
--------------------------------------
- GUI:
  . GUI manager supports new auto focus system
  . GUI objects support fading effects
  . Panel can be modal or modeless
  . GUI objects support multiscreen configuration
  . DebugWindow object

29 June 2015 - 0.888 - GUI improvements 
---------------------------------------
- GUI:  
  . fixed a bug on events filtering system when mouse wheel is used
  . Textbox widget improved with scrolling and mouse click features
  . Widget: listbox
- Font Manager:
  . new getCharacterByPixel() method

31 May 2015 - 0.886 - GUI improvements
--------------------------------------
- GUI:
  . only left mouse click triggers an action. Right click is reserved
  . improved drag&drop feature
  . fix a small issue on mouse click detection logic
  . Widgets: hslider and vslider
- Image Manager:
  . fix an issue when loading images with alpha values

29 March 2015 - 0.884 - GUI improvements 
----------------------------------------
- GUI:
  . fixed a bug on events filtering system
- Using SDL 2.0.4 b9304 (15-March-2015) library.
- Using libpng 1.6.16 library.

27 September 2014 - 0.883 - Android is supported
------------------------------------------------
- Android is supported but some tasks are still pending.
- GUI:
  . Widgets: textbox and progressbar
- Using SDL 2.0.4 9134 (12-Sept-2014) library.

31 August 2014 - 0.88 - Linux is supported 
------------------------------------------
- Makefiles and VS2010 projects have a common configuration settings.
- Check for SDL library version 2.0.3 or newer.
- Linux 64bits is supported:
  . makefile can build, install or uninstall
  . external libraries can be build at once using a custom script
  . validation tests
- All methods that manage files, support as directory separators '/' and '\'.
- Fixed known bug #0011.

22 August 2014 - 0.87 - GUI improvements
----------------------------------------
- GUI:
  . Widgets: button and checkbox
  . border width now is properly rendered
  . function associated to each widget state is called if present
  . action state is reported using a C64_EVENT_WIDGET where data1 is the ID and data2 the optional value
  . associated key enables the widget action state
  . deactivate widget state is now fully functional
  . improved event handling
  . images are supported as widget background and only two are needed:
	normal is used for normal, hover and deactivate states (by default)
	pressed is used for pressed and action states (by default)
  . sprites are supported as widget background which are the most powerful and efficient method
- Tool:
  . new intToStrDec() and intToStrHex() methods

31 July 2014 - 0.85 - GUI 
-------------------------
- GUI:
  . GUI Manager
  . Panel object
  . Widgets: label and image
- Image Manager:
  . new load() method for loading an image from a memory buffer
- Font Manager:
  . fixed a bug on render() and renderEx() methods
- Config Manager:
  . new setClipRect() and getClipRect() methods
- Normalize status methods across all the managers.
- Managers signatures adjusted for using 8bits leaving 24bits for the objects.

7 July 2014 - 0.81 - Audio tuning and general improvements
----------------------------------------------------------
- Image Manager:
  . fixed known bug #0000
  . fixed known bug #0001
- Audio Manager:
  . fixed known bug #0006
  . fixed known bug #0007
  . fixed known bug #0008
  . improved info() methods
  . better audio type detection on load/save methods
  . replaced libmodplug by libmikmod
  . add sound effects: panning, position and distance
  . known bug #0009: wav/ogg music playback at 48khz produces some audio glitches but works using sound playback
- Config Manager:
  . new audioMixingChannels() method for modifying the number of mixing channels
  . new audioHook() method
- Using libpng 1.6.12 library.
- Using MikMod 3.3.6 library (removed libmodplug library).
- Using SDL_mixer 2.0 (27-Jun-2014) library.
- Using SDL 2.0.4 8924 (4-Jul-2014) library.

30 June 2014 - 0.80 - Audio
---------------------------
- Audio Manager:
  . sound
  . music
  . validation test
  . known bug #0006: ogg playback is not supported at 48khz
  . known bug #0007: modules playback is not supported at 32bits
  . known bug #0008: libmodplug does not work on DLL mode
- Config Manager:
  . Audio support
  . info() method displays audio and general information
- Tool Interface:
  . added more useful file/directory methods
  . new strCompare(), strToLowerCase() and strToUpperCase() methods
- Normalize create() methods across all the managers.
- Using SDL_mixer 2.0 (2-Jun-2014) library.

29 May 2014 - 0.76 - Network tuning 
-----------------------------------
- NetTCP Interface:
  . fixed known bug #0004
  . fixed known bug #0005
  . improved security of transmitted data using xxHash + sequencer
  . added documentation and diagram
- Tool Interface:
  . new xxHash methods

15 May 2014 - 0.75 - Network  
----------------------------
- NetTCP Interface:
  . server arquitecture very robust and stable with support up to 8 clients
  . client arquitecture with a great performance
  . it is based on old CRM32Pro INetwork interface but with several improvements
  . validation test including a torture test
- Tool Interface:
  . Mersenne Twister algorithm replaced by Multiply-with-carry and WELL512
	They are faster and produce better results
  . new XOR() method
- Runtime checks for struct sizes are present on debug and release modes.
- Make use of void* for memory buffers.
- Using SDL_net 2.0 (2-Feb-2014) library.

30 April 2014 - 0.70 - Sprite module
------------------------------------
- Sprite Manager:
  . first working prototype
  . validation test
- Font Manager:
  . setting a position is moved to a method (as with Tile and Sprite) separating the logic from the graphic part
  . known bug #0002: disabling the colorkey of a stand-alone font will render 'garbage'
  
29 March 2014 - 0.65 - GFX module and some improvements 
-------------------------------------------------------
- Image Manager:  
  . render() and renderEx() methods can render to a screen or to another image
  . new findTex() method for allowing other modules to render into the textures for each screen
  . new applyFilter() method with some color effect: noise, blur, negative, grey, B/W, wiggle and pixelate
  . new rebuild() method for rebuilding existing textures
  . defines replaced by enum following the GDK coding standard v1.2
- Config Manager:
  . new getSnapshot() method added to the ScreenObj
  . new fadeToColor() and fadeToImage() methods added to the ScreenObj
- GFX Interface:
  . first working prototype
  . validation test
  . uses ImageMgr::findTex() for rendering to images

20 March 2014 - 0.60 - Tile and Font modules
--------------------------------------------
- Image Manager:
  . diagram included on the docs
  . improve image docs
  . known bug #0000: reported on SDL as #2424 and while it is fixed, RLE is disabled
  . known bug #0001: Direct3D and target textures does not work
- Tile Manager:
  . first working prototype
  . diagram included on the docs
  . validation test
- Font Manager:
  . first working prototype
  . diagram included on the docs
  . validation test
- Config Manager:
  . Screen objects has a render callback
  . new renderCallbacks() and render() private methods
- Main Interface:
  . preliminary keyboard input system
  . update() method implement the fixed virtual logic frame rate with interpolation
  . rendering your graphics: standard and advance methods 
- Updated SDL 2.0.2 8610 library.
- Updated libpng 1.6.9 library.
- Updated AES 18-Feb-2014 implementation.

22 February 2014 - 0.55 - Image and Cursor modules 
--------------------------------------------------
- Redesign of Image manager for reach better functionality.
- Cursor manager is adapted to the new Image paradigm.
- _C64RET() macro integrated on all Interfaces, Managers and Objects.
- Global GDK arquitecture diagram included on the docs.
- Main Interface diagram included on the docs.
- Validation tests for Image and Cursor managers.
- Updated SDL 2.0.2 8147 library.

31 January 2014 - 0.54 - Improve of classes hierarchy
-----------------------------------------------------
- GDK classes hierarchy and docs improved.
  Due to these improvement tasks, the API has been rewritten for all modules.
  There are two different types of modules:
  . Interface
  . Manager/Objects
  Both of them work with id handlers. Internally they use an unordered_map instead of a map.
- Documentation improved.
- Updated SDL 2.0.1 build 8054 library.

15 September 2013 - 0.53 - Image and Cursor modules
---------------------------------------------------
- Image manager module is ready (pending textures management).
- Cursor manager module is ready.
- Image and Cursor managers only open the same resource once and share the resource on next open/load calls.

31 August 2013 - 0.50 - Image and Cursor modules
------------------------------------------------
- Image manager module in development.
- Cursor manager module in development.
- Improved managers:
  . info() method for displaying information
  . at closing time it will warn in case any resource is still opened
  . Config manager can create any number of screen with the same name
  . XML manager can open the same file as many times as needed
  . Log manager can only create a Logger per unique name
  . Archive manager only open the same resource once and share the resource on next open/load calls
- Config module:
  . internally, uses a map instead of a vector.
  . implemented as interface
  . fixed some bugs when using more than one screen
- Log module:
  . LogMgr owns the default logger
- Archive module:
  . improved error checking
  . cleaned-up the interface
- Applied GDK coding standard v1.2.
- Updated SDL 2.0 build 7635 library.
- Using libpng 1.5.17 library.

3 August 2013 - 0.41 - 64bits support
-------------------------------------
- The GDK is built on 64bits by default:
  . all external libs have been modified to produce 64bits and 32bits versions
  . all modules are tested and working on both modes
- Fixed some bugs on all modules when using DLLs.

31 July 2013 - 0.40 - Archive, Tool and XML modules
---------------------------------------------------
- Archive module is ready using new CDC files.  
- Tool module with some generic and useful methods:
  . true random number generator
  . CRC32 methods
  . OS-level files management (check if a file exists, check file extension, etc.)
  . round values
  . string-zero methods
- XML module is ready.
- Creation of a module validation tests.
- Improve the main library header.
- Using zlib 1.2.8 library.
- Using tinyXML 2.6.2 library.

30 April 2013 - 0.30 - Config module
------------------------------------
- Config module is ready.
- All modules are fully documented, tested and all known bugs fixed.
	 
19 April 2013 - 0.20 - Timer module
-----------------------------------
- Timer module is ready.
- Created and applied the GDK coding standard.

11 April 2013 - 0.10 - API definition
-------------------------------------
- Main is designed with basic components.
- LogSystem module is ready.

1 April 2013 - 0.01 - First prototype
-------------------------------------
- Using SDL 2.0 library.