----------------------------------------------------------
SASL 3.21.0
----------------------------------------------------------

-- Revert 3.20.1 changes for textures subpixel coordinates. This will be added in future version as per-texture option instead
-- Added dedicated function for importing X-Plane owned textures (can be used for getting pilot and copilot weather radar image in XP 12.3):
    - importXPTexture(number xpTexId)
-- 'importTexture', 'importXPTexture' returns imported textures width and height as 2 and 3 return values

----------------------------------------------------------
SASL 3.20.1
----------------------------------------------------------

-- Use better defaults for textures filtering
-- Use subpixel coordinates for texture parts drawing
-- Use double precision floating values to position object instances (available since X-Plane 12.3)
-- Added new X-Plane texture identifiers to import (available since X-Plane 12.3):
    - AIRCRAFT_WXR_PILOT_TEX
    - AIRCRAFT_WXR_COPILOT_TEX

----------------------------------------------------------
SASL 3.19.4
----------------------------------------------------------

-- Added a change related to fonts data processing

----------------------------------------------------------
SASL 3.19.3
----------------------------------------------------------

-- Added boolean parameter for 'onModuleShutdown' function indicating if project is being shutdown due to error condition

----------------------------------------------------------
SASL 3.19.2
----------------------------------------------------------

-- Added new functional to handle HTTP response results for 'net' functions group:
    - downloadFileSync
    - downloadFileAsync
    - downloadFileContentsSync
    - downloadFileContentsAsync
    - setDownloadFailOnHttpError
-- Added 'screenClear' parameter for 'avionicsDevice' function to optionally clear screen framebuffer before every draw
-- Fixed Lua code breaking change related to functions 'placeUserAtAirport', 'placeUserAtLocation'
-- Fixed possible conflicts between mouse interaction events for Avionics Devices in 3D and old 3D panel components

----------------------------------------------------------
SASL 3.19.1
----------------------------------------------------------

-- Circumvent possible rendering bugs/issues related to drawing masks ('drawMaskStart' etc) and NVIDIA 50 series graphics cards/drivers
-- Added Lua function to draw textured triangles
-- Added Lua wrappers for XPLMWeather interface:
    - getMETARForAirport(...)
    - getWeatherAtLocation(...)
-- Added functional to create and manage additional flight loop callbacks on project side:
    - registerFlightLoop(...)
    - unregisterFlightLoop(...)
    - scheduleFlightLoop(...)
-- Added missing functions for exlusive handling of AI aircraft and TCAS overrides:
    - countAircraft(...)
    - setActiveAircraftCount(...)
    - acquireExclusiveAircraftAccess(...)
    - releaseExclusiveAircraftAccess(...)
-- Added Lua global variables corresponding to some X-Plane interplugin messages:
    - XP_MSG_ENTERED_VR
    - XP_MSG_EXITING_VR
    - XP_MSG_RELEASE_PLANES
-- Added function to destroy previously created Avionics Devices ('destroy' method)
-- Added variant of 'createTextureDataStorage' function, which initializes its contents from specified file
-- Added function to save texture storage contents into file ('imageFromTextureStorage')
-- Fixed possible CTD when 'drawMaskEnd' function called in a wrong place
-- Fixed Avionics Device draw callback not clearing frame buffer before 'draw' by default
-- Fixed incorrect handling of 'onMouseDown' and 'onMouseWheel' functions in Avionics Devices
-- Fixed 'onMouseUp' events not called for Avionics Device because of incorrect coordinates
-- Fixed 'onMouseHold' event not called continuosly when mouse is not moving on Avionics Device

----------------------------------------------------------
SASL 3.18.2
----------------------------------------------------------

-- Fixed a bug in click system interface related to processing clicks from touch screen devices

----------------------------------------------------------
SASL 3.18.1
----------------------------------------------------------

-- Fixed usage of custom render targets for Avionics Devices drawing ('fbo' component property etc)
-- Fixed incorrect mouse wheel events handling in Avionics Devices
-- Fixed 'isPoppedOut' Devices function returning value of incorrect type
-- Fixed calling Avionics Devices component callbacks before project is fully initialized 
-- Fixed calling Avionics Devices component callbacks after project is stopped
-- Allow bezel size to be equal to screen size in Avionics Device
-- 'newInterpolator' function returns second value (table with function arguments)

----------------------------------------------------------
SASL 3.18.0
----------------------------------------------------------

-- Add Avionics Devices management interface for X-Plane 12
    - avionicsDevice(...)
    - avionicsDeviceBuiltin(...)
    - avionicsDeviceOverride(...)

----------------------------------------------------------
SASL 3.17.3
----------------------------------------------------------

-- Fix incorrect mouse events register/processing in click system interface when sim is on pause

----------------------------------------------------------
SASL 3.17.2
----------------------------------------------------------

-- Fix possible plugin crashes on project/plugin reloads

----------------------------------------------------------
SASL 3.17.0
----------------------------------------------------------

-- Update LuaJIT to the latest version
-- Tune internal JIT parameters to circumvent performance issues for some complex projects
-- Optimize memory usage a little bit for loading Lua scripts (Commercial version)
-- SASL project reports scripts loading time in Log
-- Fix managing OpenGL state when rendering into targets in "update" functions
-- Fix "request" function not creating new script instance when it should
-- Remove registering SASL developer commands for Commercial version
-- Context windows will reposition themselves into visible areas only when window visibility changes
-- Add function to treat project warnings as errors ("setLuaWarningsAsErrors")
-- Change default context windows decoration colors a little bit
-- Change OpenAL-soft backend on Windows OS 

----------------------------------------------------------
SASL 3.16.4
----------------------------------------------------------

-- Fix fatal regression in activation process introduced in 3.16.3

----------------------------------------------------------
SASL 3.16.3
----------------------------------------------------------

-- Included changes for Commercial versions

----------------------------------------------------------
SASL 3.16.2
----------------------------------------------------------

-- Included changes for Commercial versions

----------------------------------------------------------
SASL 3.16.1
----------------------------------------------------------

-- Added native plugin version for Apple Silicon ARM64 processors
-- Signed/notarized macOS plugin binaries
-- Switched to LuaJIT version supporting 64bit address space and use its default allocator
-- Changed some minor UI in widgets
-- Make ESC key unfocus currently selected command in Developer Widget commands tab
-- Added project option to call 'update' callback after XP flightmodel calculation (default is before XP FM)
-- Added "*" mode for product serial key field in Activation Widget (Commercial version)

----------------------------------------------------------
SASL 3.15.0
----------------------------------------------------------

- Fixed possible issue with sound playback in XP12 on macOS (switched to OpenAL-soft implementation)
- Added functions to save/load XP situations (.sit files)
- Added functions to place user aircraft at specific airport or other location
- Updated X-Plane SDK and MSVC tools used to build SASL plugin

----------------------------------------------------------
SASL 3.14.5
----------------------------------------------------------

- Fixed incorrect context window header height for some cases
- Fixed unnecessary events calling for context windows in some variants 
- Fixed possible case when context window not restore saved position properly due to deferred context window creation
- Add warning for cases when context window should save its state, but window name is not provided
- globalProperty wrapper will now use double values in case when both floating point types are provided via dataref accessors

----------------------------------------------------------
SASL 3.14.4
----------------------------------------------------------

- Fixed initial state of textures created with 'createRenderTarget' function, now they contain transparent black as earlier (regression from 3.14.0)
- Fixed missing dependencies for Linux plugin distributions

----------------------------------------------------------
SASL 3.14.2
----------------------------------------------------------

- Fixed possible regression crashes which occur in case of extensive usage of fonts or using of 'recreateTexture' function

----------------------------------------------------------
SASL 3.14.1
----------------------------------------------------------

- Fixed the order of calling 'onModuleInit' (and some other general callbacks) for subcomponents
- Fixed distribution packages not working correctly on server (Commercial version)

----------------------------------------------------------
SASL 3.14.0
----------------------------------------------------------

- Replace 'initialize' and 'initializeAll' component functions with 'onModuleInit' function called for every component (analogue to 'onModuleDone')
- Optimize rendering code in various ways (less queries, more caching, revised OpenGL state processing etc)
- Fixed possible incorrect clipping 1px off when drawing into render target
- Fixed a few regression issues with drawing in render targets (including drawing not always working when AA is enabled for target)
- Fixed incorrect call to OpenGL API when destroying shader objects
- Fixed correct shutdown of drawing system in case if render targets were not correctly restored in project's Lua code
- Fixed possible issue with capturing right mouse click when using Auxiliary click system interface
- Fixed redundant Project Tree processing when this page is not active in Developer Widget
- Fixed interface for using external texture spaces for fonts atlases
- Fixed drawing backgrounds for fonts with specified external texture spaces
- Fixed resetting correct render target in all cases
- Fixed possible texture memory not properly freed after call to 'destroyRenderTarget'
- Fixed redundant calls to 'onModuleShutdown' after failed check for correct .key file (Commercial version)
- Fixed showing SASL error notification after failed check for correct .key file (Commercial version)
- Fixed various minor issues which might occur during fonts loading/processing
- Fixed possibly incorrect kerning of fonts when auto-hinting is used
- Fixed the cases when text outlines may not appear strictly correct in some cases
- Added ability to specify hinting algorithm for font loading – 'loadFontHinted' function
- Added ability to disable custom blending support - 'setCustomBlending' function
- Added ability to optimize drawing in multiple render targets in 'update' callback - 'setUpdateDrawingReady'
- Removed some processing running in background when related page is not selected in Developer Widget
- Removed unused check of audio capture device
- Removed automatic creation of 'ovrdconfiguration.ini' file, fixed possible crash during its processing
- Make 3D primitives rendering capability disabled by default for projects (since it's not available on Vulkan anyway)
- Optimize memory usage for vertex data used in renderer

----------------------------------------------------------
SASL 3.13.1
----------------------------------------------------------

- Fixed Lua annotations for functions on C/C++ side
- Fixed possible issue with wrong 3D positional sounds location
- Fixed errors/warnings logging in cases when errors occured inside nested C++/Lua/C++... function calls
- Fixed possible incorrect warnings in case of anti-aliasing usage for render targets (textures)
- Fixed collecting telemetry in SASL Developer Widget when telemetry tab is not active
- Fixed 'resetBlending' function – initial blending state is correctly reset now
- Fixed 'getElapsedMicroseconds' function result
- Added validation for created framebuffers before usage
- Added ability to not create Depth/Stencil buffer attachment on render target creation (masking won't work in this case)
- Added ability to specify AA level for render target on render target creation, without need to specify this parameter in 'setRenderTarget' function
- Added ability to override SASL project configuration with 'ovrdconfiguration.ini' file (only in Free SASL version, may be useful for distributed development in teams) 
- Added improvements on logging side (fixed formatting and update logged information)
- Added general 'log' function, parametrized with more flexible output options per log action 
- Added ability to set decoration for custom decorated context windows with 'setDecoration' method
- Added special notification window reporting Lua errors when developer console in widget is not enabled/visible
- Added ability to draw convex geometry with per-vertex color specification
- Added ability to create separate instances of the same font file and use defined texture region for glyphs creation
- Added functions to display dynamic information about font and display generated fonts textures ('getFontInfo', 'drawFontTexture')
- Added 'initialize' callback for Lua components ('initialize' callbacks guaranteed to be called right before first 'update' call)
- Added logic to prevent possible drawing calls in components before 'initialize' and first 'update' calls are done.
- Improved text drawing performance a little bit and improved glyphs packaging algorithm
- Set SASL_STOP_PROCESSING as default Lua errors handling policy ('setLuaErrorsHandling' function can be used to alter behavior)

----------------------------------------------------------
SASL 3.12.1
----------------------------------------------------------

- Fixed possible broken XP menu layout after menu item deletion
- Fixed a few bugs related to nested XP menus creation
- Fixed artificial limit on how many XP menu items and Hot Keys may be created
- Fixed "getElapsedMicroseconds" function behavior
- Fixed a few possible crashes during Search usage in SASL Dev Widget
- Fixed possible crash after fast reloading of project and 'startProcess' function usage
- Fixed the crash in case of attempt to destroy currently active Render Target
- Fixed possible issue with incorrect Context Windows keyboard focusing
- Added 'hasFocus' method for Context Window object
- Added cache usage for Lua scripts and modules loaded with 'include' and 'request' function
- Added ability to force new instance of Lua module creation (for modules loaded with 'request')
- Added ability to schedule full SASL project reboot as soon as possible (may be used to reload the project in reaction to specific event)
- Added parameter for 'onAirportLoaded' callback indicating the number new flights started since SASL plugin enabling
- Added ability to omit file extension when using 'include' or 'request'
- Update default SASL Context Window decoration (drawing performance and title showing)

----------------------------------------------------------
SASL 3.11.0
----------------------------------------------------------

- Fixed 'readConfig', 'writeConfig' functions (make them correctly save information about values types)
- Fixed possible CTD in case of calling subprocess creation function on Mac OS
- Fixed the bug with  broken graphics processing in case of calling SASL project command in 2D draw callback
- Added function to save textures to files in common formats

----------------------------------------------------------
SASL 3.10.2
----------------------------------------------------------

- Fixed failing 'request' function behavior in both Free and Commercial SASL
- Fixed incorrect saving of telemetry active state between project reboots

----------------------------------------------------------
SASL 3.10.1
----------------------------------------------------------

- Fixed drawing components cursors in old-style <subpanel>
- Fixed possible crash in case of enabled telemetry in Dev Widget

----------------------------------------------------------
SASL 3.10.0
----------------------------------------------------------

- Fixed lookup of multi-typed datarefs (for example, for datarefs provinding both float and double, type request is how handled correctly)
- Fixed one of the Lua constants representing blending equation identifiers
- Fixed starting point of vertical text drawing
- Fixed possible crash in case of OBJ instance creation (with anim datarefs) without controlling datarefs list
- Fixed a few buttons highlighting in SASL Dev Widget 
- Fixed leftover input state and trees collapsing in SASL Dev Widget
- Fixed case where we're not checking valid graphics context before clearing (<clearRenderTarget>)
- Fixed tracking 3D mouse position in multi-monitor configurations (this time for sure)
- Fixed a few issues related to 3D sound usage
- Improved speed of datarefs and commands search in SASL Dev Widget
- Added full annotations for all SASL functions (api.lua) to simplify development using IDEs, code auto-completion tools and etc.
- Added special warnings for projects, which don't explicitly configure SASL performance related options
- Added automatic highlighting and copy-paste support for edit fields in SASL Dev Widget
- Added ability to execute selected command with keyboard ENTER in SASL Dev Widget 
- Added function to export OpenGL texture ids from SASL graphics system
- Added functional to load/save Lua tables serialized in 'ini', 'xml', 'json' formats (<readConfig>, <writeConfig>)
- Added ability to directly specify parent component for components created outside of hierarchy ('parent' field in function arguments)
- Added functional to run child processes in sync in async manner (<startProcessSync>, <startProcessAsync>)
- Added correct OpenGL state restoring in case if scripts will left it wrong
- Added ability to get raw DataRef pointers from Global Properties.
- Added 'request' function for scripts, similar to standard 'require', but working only with SASL project hierarchy
- Added simpler and faster additional interface for interpolation (<createLinearInterpolator>, etc)
- Added ability to use newlines (\n) for messageWindow text
- Updated telemetry functional  
- Updated dependencies (C++ libraries) and toolsets

----------------------------------------------------------
SASL 3.9.0
----------------------------------------------------------

- Fixed tracking of 3D panel mouse position in multi-monitor configurations and with rotational offsets applied for monitors
- Fixed bug with mouse cursor associated with 3D panel component being active after leaving 3D panel
- Fixed configuring 3D positional sounds for Aircraft plugins
- Fixed context windows states saving and restoring, also visibily is now saved as well
- Added Lua functions to track 3D panel mouse position - <getCSMouseIsOnPanel>, <getCSPanelMousePos>
- Added Lua routines to save and restore OGL internal line primitives settings
- Added option to draw text vertically 
- Added async variants of functions to perform data transfers from URL (Net interface)
- Updated SASL Dev Widget UI (scrollbars, drefs & commands search, dynamic text size, bugfixes)
- Updated SASL default cursors texture 

----------------------------------------------------------
SASL 3.8.0
----------------------------------------------------------

- Fixed cathing middle mouse button events for legacy pop-ups and 3d panel
- Fixed bug with attempt to render into texture, which is already freed
- Fixed SASL_CW_RESIZE_RIGHT_BOTTOM resizing mode for non-propotional context windows
- Improved cursor showing behavior for component, more logical and convenient
- Improved windows layering (legacy pop-ups window now live in separate layer)
- Added ability to save context window state (position, active context) between project loadings
- Added functional to work with stereographic projections
- Added ability to completely destroy context window, freeing all handled resources (<destroy> method)
- Added function to reset timer
- Added function to create hi-res system timer (can be used to measure time within same callback)
- Added annotations for Lua SASL interface (used for auto-completion)
- Restructured internal code related to events system, etc

----------------------------------------------------------
SASL 3.7.2
----------------------------------------------------------

- Fixed usage of nested render targets in non-graphics callbacks (<update>, etc)

----------------------------------------------------------
SASL 3.7.1
----------------------------------------------------------

- Fixed some unnecessary re-activation triggers on Windows OS (Commercial Version)
- Fixed irrelevant entry in the Log about error before activation (Commercial Version)

----------------------------------------------------------
SASL 3.7.0
----------------------------------------------------------

- Fixed possible CTD during automatic context window positioning
- Used other method to catch click event for additional Click System Layer in VR
- Added function to disable and enable Unicode support for the font instance
- Added new Lua callback for components on shutdown - <onModuleShutdown>

----------------------------------------------------------
SASL 3.6.5
----------------------------------------------------------

- Fixed CTD on X-Plane exit in case if SASL project is a Global Plugin
- Fixed internal click system bug with HOLD and UP mouse buttons statuses

----------------------------------------------------------
SASL 3.6.4
----------------------------------------------------------

- Fixed possibility of CTD on startup in Linux version
- Fixed middle mouse button event for old-style <subpanel> windows

----------------------------------------------------------
SASL 3.6.3
----------------------------------------------------------

- Minor internal DRM fix (Commercial Version)

----------------------------------------------------------
SASL 3.6.1
----------------------------------------------------------

- Added <drawArcLine> function
- Added functions for changing OpenGL line width and stipple parameters
- Updated arguments specification for component creation (properties are passed as references)
- Updated <setFontBckPadding> function

----------------------------------------------------------
SASL 3.6.0
----------------------------------------------------------

- Fixed drawing multi-line text with non-default alignment
- Fixed cursor management for context windows after window is closed
- Fixed some cases when incorrect functions arguments are not handled
- Fixed rendering in to target with anti-aliasing enabled
- Fixed memory issue in case of using anti-aliasing
- Fixed logging of failed command handler call, shows failed command ID
- Fixed data management for functional array-like properties (datarefs)
- Fixed possible memory leak in case of image loading failure
- Added size getter callback usage for functional array-like properties (datarefs)
- Added new text rendering mode (forcing monospacing)
- Added function for empty texture creation
- Added ability to specify font glyphs spacing factor
- Added ability to use nested masking stack and nested render targets
- Added functional for text rendering with background
- Added ability to create global properties (datarefs) as read-only
- Updated Click System layer functional
- Updated logging in some places
- Updated routines for text measurement
- Removed ability to setup cursors scale factor in Click System
- Removed some experimental text rendering modes

----------------------------------------------------------
SASL 3.5.1
----------------------------------------------------------

- Fixed <globalProperty> wrapper for string datarefs
- Fixed crash after <getEnvVariable> on Mac and Linux
- Fixed setting string datarefs (non-partial setters)
- Fixed broken <getCSMouseYPos> function
- Fixed special font render modes parametrization - ratio should be used instead of fixed value
- Fixed text measurement in case if special modes applied
- Added new mode for text drawing: with forced fixed horizontal advance
- Added new functions for fonts system (instance configurations, instance-specific drawing)
- Partially reverted focus logic for Context Windows (fixes possible issues with global key handlers)

----------------------------------------------------------
SASL 3.5.0
----------------------------------------------------------

- Fixed possible corruption of X-Plane interface textures after textured drawing in the Context Window
- Fixed Context Window keyboard focusing logic in different modes
- Fixed various issues with keeping Context Windows proportionality
- Fixed missing TYPE_UNKNOWN global value
- Fixed crash during rendering to texture target on initial project loading outside of any callback function
- Fixed a few issues with functional Lua datarefs
- Fixed auto-management of Context Window position 
- Fixed receiving global monitors bounds via <getMonitorBoundsGlobal> in X-Plane < 11.30
- Fixed cursor shape cut by Context Window edges
- Fixed issue with CA certificates on Windows OS during usage of <net> functionality
- Fixed instancing of Fonts IDs - specifying different fonts options for different fonts instances is now working
- Fixed fonts usage with outline thickness < 1.0 
- Fixed a few SVG usage issues: loading, fill rules, passing SVG error message into Log
- Fixed fonts data caching
- Fixed necessity of tuning X-Plane App Security Settings on Mac OS 10.14
- Added ability to use fixed glyph spacing mode for text rendering
- Added ability to use partial getters/setters for string datarefs (same as for array datarefs)
- Added function for getting current Context Windows mode
- Added callback parameter for Context Window - designed to intercept various events related to internal windowing system
- Added ability to enable VR auto-handling for Context Window
- Added ability to select MSAA level during rendering to target
- Added alternative mode for Context Window resizing - only one resize spot on right bottom edge (only applies to windows without default X-Plane decoration)
- Added ability to separetely apply custom window decoration for base window rectangle - in the same way as for header decoration
- Added options to alter behavior of some drawing routines related to wide lines and convex polygons
- Added interface for managing environment variables for current process
- Added function to clear rectangular shape in current render target
- Added functional for setting various download timeouts
- Improved datarefs sub-system
- Improved <globalProperty> function, allowing to use array index notation
- Improved auxiliary click system interface
- Improved activation widget interface (Commercial Version)

----------------------------------------------------------
SASL 3.4.2
----------------------------------------------------------

- Added way to invert masking logic on <drawUnderMask> call
- Fixed global key handlers - now there's additional argument which identifies the event 

----------------------------------------------------------
SASL 3.4.1
----------------------------------------------------------

- Improved custom datarefs export to DRE and to Datarefs Tree in Widget - now the export is correct 
    even if dataref is created after initial project loading
- Improved work with render targets - now rendering in texture is possible not only in <draw> callbacks
- Improved type casts messages for datarefs lookup - now they're mandatory DEBUG level messages
- Improved datarefs lookup and creation speed
- Improved texture minification filtering - using mipmaps
- Improved images loading - supporting more formats and specifications
- Fixed <sasl.gl.loadImageFromMemory> function presence
- Fixed resetting current logging level after project reboot
- Fixed broken sound system on some Linux distributions
- Fixed crash on project reboot when Functional Properties in use 

----------------------------------------------------------
SASL 3.4.0
----------------------------------------------------------

- Fixed a few issues with <noResize> and <noMove> options for <contextWindow>
- Remade proportional resizing in <contextWindow>
- Added ability to configure custom window header - <customDecore> option for <contextWindow>
- Added ability to change parameters (movable, resizable, proportional) for <contextWindow> on the fly
- <contextWindow> now saves its previous position on modes changing (pop-out, free, etc)
- Fixed a bug with 3D panel clicks introduces in 3.3.0 version.

----------------------------------------------------------
SASL 3.3.3
----------------------------------------------------------

- Fixed various issues with unnecessary re-activation requests (Commercial Version)
- Fixed <drawMaskStart> function

----------------------------------------------------------
SASL 3.3.2
----------------------------------------------------------

- Fixed cache for interpolators objects
- Fixed graphics artifacts in SASL Developer widget title

----------------------------------------------------------
SASL 3.3.1
----------------------------------------------------------

- Fixed various issues with unnecessary re-activation requests (Commercial Version)
- Fixed activation dialog appearance on some multi-monitor setups (Commercial Version)
- Dump problematic path in case of <listFiles> function fails
- Fixed huge FPS drop in case of Context Windows usage in VR

----------------------------------------------------------
SASL 3.3.0
----------------------------------------------------------

- Removed XP10 support
- Add support for XP11 features (multi-monitors, OS pop-out windows, VR support etc)
    - Refer to the <XP11> marks in the documentation 
- Add support for using SVG format
- Updated warnings and errors dumping
- Updated SASL Developer Widget to support multi-monitors and OS pop-out mode
- Improved DRM functionality to avoid unnecessary activations requests (Commercial Version)

----------------------------------------------------------
SASL 3.2.7
----------------------------------------------------------

- Fix various issues with unnecessary re-activation requests (Commercial Version)

----------------------------------------------------------
SASL 3.2.6
----------------------------------------------------------

- Fix various issues with unnecessary re-activation requests (Commercial Version)

----------------------------------------------------------
SASL 3.2.5
----------------------------------------------------------

- Fixed issue with huge project reboot time in case of DRE windows presence 
- Fixed OpenAL issues on Mac OS with SASL 3.2.4
- Improved DRM regarding unnecessary activations requests (Commercial Version) 
- Fixed <hideOSCursor> option for components on 3D panel
- Added <setRenderTextPixelAligned> function to set pixel accurate text rendering mode
- Added info about warnings and errors log entries count (since Reboot) into Developer Widget
- Add ability to use alpha texture as mask between <drawMaskStart> and <drawUnderMask> calls
- Fixed <fbo> option for components
- Added new function for setting Lua stacktrace limit used in case of Warnings and Errors
- Fixed <unloadImage> function absence 
- Added default mouse wheel handler for popups (now they're not transparent for mouse wheel action)
- Fixed error logging in case of resources lookup fail
- Returned ability to specify <position> for component as function
- Fixed some SASL virtual keys constants values 
- Fixed hard crash in case of some graphics resources lookup fail during draw routines call

----------------------------------------------------------
SASL 3.2.4
----------------------------------------------------------

- Fixed minimal Mac OS version support: 10.11 is minimum supported now
- Fixed SASL project reloading command in case if <startDisabled> option is used

----------------------------------------------------------
SASL 3.2.3
----------------------------------------------------------

- Fixed interaction with FlightFactor Acf Plugin Manager

----------------------------------------------------------
SASL 3.2.2
----------------------------------------------------------

- Fixed sound system device issue on Mac OS

----------------------------------------------------------
SASL 3.2.1
----------------------------------------------------------

- Fixed DRM issues (Commercial Version) 

----------------------------------------------------------
SASL 3.2.0
----------------------------------------------------------

- Use different user instructions and interface during activation for different project types (Commercial Version)
- Fixed floating bug with crash after initial product activation (Commercial Version)
- Updated DRM system and fixed some issues with unnecessary activation requests on user side (Commercial Version)
- Updated ecnryption mechanism (Commercial Version) 
- Use new dependencies system, all 3rd-party libraries updated to most fresh stable versions
- Fixed symlinks handling on Linux and Mac during <listFiles> call 
- Fixed drawing wide poly-line with 2 nodes 
- Functions from <sasl.net> namespace returns error messages in case of errors
- Fixed SASL widget appearing if the previous position was out-of-the-screen 
- Improved usability of tree node selectors (+/-) in SASL widget
- Fixed wrong cursor appearing on buttons in SASL widgets system 
- Click on SASL Widget brings it in front of all other widgets
- Fixed tracking mouse buttons with enabled OS options to swap left and right mouse buttons
- Added defined Lua constants for key codes and virtual key codes 
- Push empty Lua table instead of <nil> in case of internal errors in <listFiles> function
- Fixed bug in external string datarefs writing (incorrect null-termination) 
- Added functional to disable specific parts of SASL engine:
    - Drawing in 3D - <set3DRendering>
    - Drawing on aircraft panel (for non-scenery project types) - <setAircraftPanelRendering>
    - Interactivity - <setInteractivity>
- Fixed little bug in cashing inside SASL logger
- Use single low-level phase for all 3D drawings (using single pass, only non-blended stuff)
- Remade Telemetry page in SASL Widget
- Added Lua interface for managing X-Plane Hot Keys:
    - <registerHotKey>
    - <unregisterHotKey>
    - <setHotKeyCombination>
- Add <setLuaErrorsHandling> function to control Lua errors handling modes (keep VM processing or stop until reload)
- Turned some warnings messages all over the functional into errors messages
- Reworked Lua logging system using Lua stacktraces on errors and warnings
- Added check for using <set> on non-property types
- Fixed crash occured when menu handler is not attached to the menu item
- Fixed a few little bugs in Menus functional

----------------------------------------------------------
SASL 3.1.2
----------------------------------------------------------

- Added Lua interface for minimal, simple and synchronous file downloading

----------------------------------------------------------
SASL 3.1.1
----------------------------------------------------------

- Fixed option for starting SASL project in Disabled mode through configuration file 
- Fixed handling errors on calling <onModuleDone> project functions
- Added project options for using advanced rendering on Aircraft Panel
- Fixed interpolation helpers

----------------------------------------------------------
SASL 3.0.4
----------------------------------------------------------

- Made activation process more verbose, more errors will be shown and described (Commercial Version)
- Changed definitions of some graphics-related constants to be platform-independent
- Added more blending constants for consistence
- Fixed aircraft panel drawing in case of multi-pass panel rendering (we now drawing only in Emissive stage)
- Fixed registering multiple command handlers for same command ID in the same phase
- Fixed holding OS-specific resources after plugin stop (Commercial Version, Windows)

----------------------------------------------------------
SASL 3.0.3
----------------------------------------------------------

- Fixed showing interactive areas after project reload 
- Remade button to Show ID (Commercial Version)
- Fixed HWID generation fail on some machines (Commercial Version)

----------------------------------------------------------
SASL 3.0.2
----------------------------------------------------------

- Add message about new SASL version availability on every tab of SASL Developer Widget
- Add global Lua variable which can be used to highlight interactive areas in case of "Show Clickable Areas In Cockpit" X-Plane option enabled
- Fixed component's dimensions inheritance from main component 
- Added order changing for low level SASL windows in reaction to handled click event

----------------------------------------------------------
SASL 3.0.1
----------------------------------------------------------

- Fixed bug with mouse tracking in case of Scenery Project outside of scenery project bounds

----------------------------------------------------------
SASL 3.0.0
----------------------------------------------------------

- Made <Execute Command> button generate commands calling with different stages, based on mouse button state  
- Fixed hiding cursor for panel components when corresponding option is selected
- Fixed global option to use 2d panel setup 
- Fixed bug with getting size of array property
- Fixed startup crash on Windows in some cases (Commercial version)

----------------------------------------------------------
SASL 3.0.0-rc4
----------------------------------------------------------

- Fix commands execution via Commands Tab in SASL Widget
- Add functions to draw wide Bezier lines:
	<drawWideBezierLineQ>
	<drawWideBezierLineC>
	<drawWideBezierLineQAdaptive>
	<drawWideBezierLineCAdaptive>
- A couple of fixes for poly-lines and convex polygons drawing
- Text positioning more smooth now 
- Fixed a few bugs in arcs drawing (there was a huge bug causing hundreds unnecessary vertices on every call)
- Logging on loading now more laconic 
- Added new options for popups, which will adapt popups after any XP Window resize:
	<pinnedToXWindow = { boolean, boolean }>
	<proportionalToXWindow = boolean >
- Fixed text outline positioning
- Removed legacy unnecessary bitwise operations functions (<bitand>, <bitor>, <bitxor>).
	Use <bit> package functional supplied with LuaJIT.
- Fixed generating mouse hold events for right and middle mouse buttons
- Added global reload SASL commands which will reload all available SASL instances
- Made restructure for resources loading functions
- Add Lua function to load .OBJ objects asynchronously (but we need to wait for XP 11.10 out, currently there's a bug)

----------------------------------------------------------
SASL 3.0.0-rc3
----------------------------------------------------------

- Added notifications about new SASL version available (SASL Widget)
- Fixed bug with visibility of some tree expand symbols (SASL Widget)  
- Fixed bug with changing current keyboard input entry during scroll bar moving (SASL Widget)
- Added preferences saving and auto-loading for SASL Widget 
- Fixed standard components table entries filtering in SASL Project Tree tab (SASL Widget)
- Fixed bug with panel initial size selection on first project loading 

----------------------------------------------------------
SASL 3.0.0-rc2
----------------------------------------------------------

- Fixed <listFiles> function for MacOS and Linux
- Fixed search paths stacking during <include> operation

----------------------------------------------------------
SASL 3.0.0-rc1
----------------------------------------------------------

- Rework Sound System functional
- Add single element array properties support - <globalPropertyiae>, <globalPropertyfae>
- Made arcs and poly-lines drawing more accurate
- Fix unstable crash inside Fonts system
- Fix <deleteTextureDataStorage> function registering
- Remove useless and counter-intuitive <setTextureSize> function
- Fix setting and getting string datarefs (both regular and functional)
- Make <onPlaneCrash> callback called only for Aircraft project type
- Add Commands Tab for SASL Widget
- Add routines to draw rotated text - <drawRotatedBitmapText>, <drawRotatedText>
- Add <globalProperty> sim property getter with automatic type retrieving
- Fix textures memory size updating (SASL Widget)
- Add option to synchronize all widget tabs size (SASL Widget)
- Tune UI elements colors (SASL Widget)
- Fix tree nodes flickering on tab change (SASL Widget)
- Add check-box and corresponding commands for stopping and starting project processing (SASL Widget)
- Fix appearance of TRACE and DEBUG records in SASL console tab (SASL Widget)
- Fix shared datarefs handling
- Change default components positions and sizes handling (inheritance model) 
- Implemented new subpanel interaction 
- Rename <onMouseClick> event to <onMouseHold> (to prevent misunderstanding of callback)
- Implement new default components
- Remove <setLineWidth> function 
- Change the way of drawing wide lines, add new routines to draw wide lines, wide poly-lines, convex shapes with wide borders, etc
- Add alignment parameter for bitmap text drawing routine
- Optimize text drawing
- Made reload command visible before Lua initialization 
- Add Lua function to get project name

----------------------------------------------------------
SASL 3.0.0-beta3
----------------------------------------------------------

- Second parameter of <setRenderTarget> is now optional (false by default)
- Fixed crash during <tables> getting from Lua, if param isn't actually a table (proper warning instead)
- Fixed vertices dump during texture manipulation routines
- Fixed bug with getting and setting raw data to texture data storages
- Fixed entering empty strings in edit fields of SASL Widget
- Fixed dynamic Project Tree updating (now properly updates all types of nodes)
- Fixed bug with monitoring Lua memory usage in Telemetry Page of SASL Widget 
- Second parameter of <playSample> is optional now
- Applied combined sort for Project Tree and DataRefs in SASL Widget (lexicographic for string IDs, and simple for arrays)
- Corrected specifying texture parts to draw and flipped data getting from current target
- Fix entering negative values in SASL Widget edit fields
- Fixed cursor events handling (now passing through the whole XP window system, when needed)
- Fixes for functional properties (arrays and strings)
- Fix custom datarefs getting and setting
- Fixed cashing textures loaded from memory
- Corrected SASL Widget UI
- Memory allocation for image buffers imroved
- FBO functional improved, clipping during render-to-texture is allowed, fix getting current framebuffer data
- <recreateTexture> function fixed
- Added <getTextureSourceSize> function to query size of source image.  
- New function to destroy render target(<destroyRenderTarget>) and creation function renamed:
    <getNewRenderTargetID> -> <createRenderTarget>
- Fix for releasing graphics memory in case of textures and fonts unloading.
- Added simple validation for command and datarefs identifiers ("sim" root isn't allowed).
- Removed "security" parameter from configuration.
- Fixed mouse events handling for 3D panel.
- Added ability to hide X-Plane cursor as option, when setting cursor for component (boolean "hideOSCursor" field in "cursor" table).
- Added function to set texture size, associated with texture.
- Functions renamed for consistence: 
    <loadImageFromMemory> -> <loadTextureFromMemory>
    <unloadImage> -> <unloadTexture>
- Table with 3 values now can be passed as Color for drawing routines, as well as table with 4 values.
- Getting texture part from other texture fixed.
- Little changes for developer widget interface, it's now adjustable via configuration file (text size, font, colors, etc).
- Message Windows now bringing to front on selecting.
- Fix for OpenAL errors checking.
- Developer widget is resizable now and brings to front on selecting.
- Allow to use NUMPAD ENTER for developer widget.
- Added function to get current X-Plane version.
- Added functional to create global key handler callbacks (not for specific components).
- Added additional parameters for <onKeyDown> and <onKeyUp> components callbacks (defining if Shift, Alt<Option>, and Ctrl is down)
- Fix for default draw primitives opacity handling.
- Fix for drawing textures (in case if texture drawn before other graphics primitives).
- Fix for drawing large text (properly handled now).
- Added <onMouseEnter> and <onMouseLeave> events for components.
- Added new callbacks - <onPlaneLoaded>, <onPlaneUnloaded>.
- Fix for proper <onModuleDone> callback on project unloading.
- Popups positions now stored in "popupsPositions.txt" file and there is no errors dump, if the file not exist yet.
- Configuration files format for projects changed, and configuration now is a part of project, not attached to SASL plugin binary. 
- Measurement function for new fonts system returns only lenght for now.
- Added measurment function for text drawn with old bitmap fonts.
- A little bit faster fonts rendering.
- Fixed default blending handling (blending state properly restores in both X-Plane 10 and X-Plane 11).
- Fixed a few logging typos.
- Changed reload command to project-specific.

----------------------------------------------------------
SASL 3.0.0-beta2
----------------------------------------------------------

- Added ability to initialize created array datarefs with SIZE parameter.
- More warnings during datarefs usage.
- Added ability to use float arrays as color parameters in drawing routines.
- Fixed right and middle mouse buttons click event handling in case if X-Plane window is not active (Linux, Windows)
- Fixed CTD on using test drawing routines on Linux and Mac OS.
- Proper re-initialization of DataRef Tree on SASL reload.
- Popups subpanel accepts now initial visibility parameter.
- Added ability to omit last parameter for array dataref get/set.
- Fixed CTD with disabled developer widget.
- Timer-based message windows appearence fixed.
- Fixed error output on update stage.
- Fixed bug with X-Plane commands phases.

----------------------------------------------------------
SASL 3.0.0-beta1
----------------------------------------------------------