Articy:Access changelog ======================= ---------------------- # Version 1.3.0 ---------------------- NOTE: This version has changed some class interfaces and requires a rebuild of plugins for articy:draft. The data format is untouched New: - supporting Visual Studio 2015 (C/C++) Improved: - The JSON export sample Tutorial 12 now supports more data types like lists, scripts, references, has proper excaping for texts and also writes the global variables. Bugfixes: - fixed some issues with 64 bit version (C/C++) - fixed object indexer with array property values (C/C++) - Using OnVisit & OnConnectionPart Events of FlowTraverse lead to an crash because a delegate got out of scope too early (C#/C) - fixed missing exports for android libraries. - better handling of MacOS Unity 3D plugin. - some tutorials still had sample data from the outdated data format. ---------------------- # Version 1.2.3 ---------------------- NOTE: ACCESS_VERSION still is 1.2.2 because no changes were made that change interfaces Bugfixes: - Trying to export with a the binary exporter within a custom exporter crashes articy because the binary exporter tries to free memory from an already unloaded exporter plugin dll. - Some robustness improvements for exports. - [SRC] Updated makefile for better android lib building ---------------------- # Version 1.2.2 ---------------------- Bugfixes: - a missing Dispose call on a FlowTraverse object leads to a crash when the Repository was Released and the garbage collector has call the FlowTraverse destructor after that point in time. (C#) - When using the callback logger from C# the used delegates could be collected from the garbage collector earlier than the last invocation leading to an unstable state and follow up errors like "repository is already in use." (C#/AD) - a left over error text could create a crash when the application was shut down. (C/C++/C#/AD) ---------------------- # Version 1.2.1 ---------------------- Bugfixes: - Fixed problems in CSAPI when using code-generated C# classes - accessing a template member in an expresso script results in a nullptr Sources: - added some code to impove usage within UE. (TMap forward declaration, RGB macro bleeding from windgi.h) ---------------------- # Version 1.2.0 ---------------------- Plugins compiled with this version are incompatible with articy:draft version prior to 2.4.0. Please update to a newer articy:draft version to assure binary compatibility. articy:access: - It is now possible to register a handler for undefined articy:expresso functions - Added a new function to detect which part of an expression caused a condition to return false - It is now possible to create and switch between multiple articy:access repositories - Repositories can be "sticked" to threads when using multi repository support - It is now possible to attach metadata to members of class or template types - You can now write to the access log from C#, too - A new callback logger has been added - Using Log::* from inside a plugin will log to the exporter output window - The Java API has been updated to reflect latest CAPI changes - The C# API initialization is now more flexible (new: Access.Memory) - The C# API can be set to use "InternalBinding" to be fully compatible with Unity 3D and iOS platforms. - Some native structs in the C# API where updated to work around a bug with IL2CPP - Some P-Invoke calls in the C# API returning strings where updated to work around a bug with IL2CPP - Several C# API functions/types have been (re)moved and should be replaced Capi.MallocDelegate -> Memory.MallocDelegate Capi.FreeDelegate -> Memory.FreeDelegate Capi.ReallocDelegate -> Memory.ReallocDelegate Capi.Initialize -> Repository.Initialize / Memory.Initialize, Repository.Create Capi.ArtIsInitialized -> Capi.ArtIsMemoryInitialized / Capi.ArtIsRepositoryValid Capi.ExpressoValidate -> Expresso.Validate Capi.ExpressoValidateConst -> Expresso.ValidateConst Repository.HasInstance -> Repository.IsValid Repository.ThrowIfNotInitialized -> Repository.ThrowIfNotValid - Added exporter support for member alignment. * Default Classes are now always 32 bit aligned * added new Package attribute "Alignment" with its values "Manual", "DWORD_NoReorder" and "DWORD_Reorder" which should be used if you target iOS. "Manual" only adds padding if you manually specify it with "" tags "DWORD_NoReorder": add padding so multi-byte members start at an address offset that is either 4 byte or member size aligned "DWORD_Reorder" like "DWORD_NoReorder", will first sort members in descending size, then name to minimize padding * added new Package attribute "EnumDataType" to force enum values to a specific type. Valid values: Byte UnsignedByte Word UnsignedWord DWord UnsignedDWord default is "Byte" for backward compatibility * added new Package attribute "IntegerDataType" to force integer template values to a specific type. Valid values: Byte UnsignedByte Word UnsignedWord DWord UnsignedDWord auto default is "auto" for backward compatibility * added new Package attribute "FloatDataType" to force float template values to a specific type. Valid values: Float Double auto default is "auto" for backward compatibility * The code-generator now hides padding members regardless if they were manually added or automatically created. - added new Package attribute "ResolveTransformations" (default: 'true') to specify that transformations of location objects should be applied before exporting the coordinates. - added project solution files for Visual Studio 2012 & 2013 in the source distribution - the library distribution now comes as a "unified installer" where you can specify which platforms to extract. - the installer now also includes the tutorial projects and the "Maniac Manfred" sample game. File format changes: - The current XML and Binary file version has been increased to 1.5 - Default classes and list types are now 32 bit aligned and use padding bytes to prevent crashes on ARM64 CPUs ---------------------- # Version 1.1.8 ---------------------- Bugfixes: - Fixed a UTF8 to UTF16 string conversion problem (C#/Unity) - Fixed several missing UTF8 conversion flags (C#) - Fixed a problem when importing list instances without a prototype via XML - Fixed a problem when not loading legacy types via binary when legacy types are present - Fixed a caching problem when re-using list ids (C#) Articy:Access: - Added a new function to explicitly unbind existing articy:expresso functions ---------------------- # Version 1.1.7 ---------------------- Bugfixes: - Proper template member id resolving when the feature name contains an underscore (C#) - Most functions will now throw an exception if the repository is not initialized (C#) - Fixed an access violation on project close/clear after manually removing list instances Articy:Access: - Added exporter support for ignoring members in automatic template types (articy:draft 2.3.1) ---------------------- # Version 1.1.6 ---------------------- Bugfixes: - Fixed wrong marshalling with ListInstance.SetElements (Capi.ListSetReferences) - Fixed a crash when adding a reference to an empty list instance - Fixed a null exception when working with classes having no class or template data (C#) ---------------------- # Version 1.1.5 ---------------------- Plugins compiled with this version are incompatible with articy:draft version 2.2.6 or older. Please update to a newer articy:draft version to assure binary compatibility. Bugfixes: - Fixed a divide by 0 / SIGILL when using a traversal helper with a history size of 0 - Fixed a memory leak when importing XML files - Fixed a nullptr access when closing a C-API host (e.g. C# API) after an error was reported Articy:Access: - Improved support for resolver configs (C#) - Expresso.Execute will now throw an exception on error (C#) ---------------------- # Version 1.1.4 ---------------------- Plugins compiled with this version are incompatible with articy:draft version 2.2.5 or older. Please update to a newer articy:draft version to assure binary compatibility. Bugfixes: - The XML import now tries to reconstruct type and variable names if DebugStrings are enabled - When iterating over variables (C#), names that cannot be resolved are returned as "0x" Articy:Access: - It is now possible to export to memory stream in C#, too - It is now possible to create variables by hash in C#, too Documentation: - More C# API functions and members have been documented. ---------------------- # Version 1.1.3 ---------------------- Bugfixes: - Fixed a potential null exception when resolving a list reference (C#) Documentation: - Added a section about connections to the beginners guide - Added links to Unity setup section in the beginners guide ---------------------- # Version 1.1.2 ---------------------- Bugfixes: - C# base.variable value properties are now named and behave like their C++ counterparts - Fixed forwarding of GoTo method in C#/CAPI traversal - Fixed marshalling problem in C# when using FlowTraverse.GetCurrent() - Fixed sibling test in the flow traversal to now use IObject::IsSiblingOf() Articy:Access: - C# API now contains iterator functions for variables and namespaces - It is now possible to use types without members (e.g. empty templates) - Added relationship helper functions to IObject (C++), IDataObject (C#) and connection part classes - Support for compiling without RTTI and without exceptions (experimental) ---------------------- # Version 1.1.1 ---------------------- Bugfixes: - Fixed a memory leak in CMemberTraversal - Fixed several problems with expresso C# function bindings - Fixed several problems with the mono C#API project - Added missing CAPI traversal files to xcode projects Articy:Access: - Access.Capi.ExpressoDelegate is now Access.ExpressoDelegate. The signature changed to work with Access.Variable instead of Native.WeakType. ---------------------- # Version 1.1.0 ---------------------- Bugfixes: - Fixed handling of comments in multiline articy:expresso statements - Fixed unescaping of common escape codes (\r,\n,\t) inside articy:expresso statements - Fixed a memory leak when copying flow/member traverses - Fixed a crash upon double call to Memory::Deinitialize - Fixed weaktype reference assigning with Expresso::SetVar - Fixed a bug when releasing namespaces with a nesting of 2 or higher - The articy:expresso C-API (and C# API) error handling has been improved - The articy:expresso parser does now detect more errors and is more precise about their location - Nevigo::IString stride/codepoint functions now have a consistent behaviour across encodings - MacOSX libraries are now build as universal (32bit and 64bit) Articy:Access: - Added exporter support for global variables (articy:draft 2.2) - Added general support for condition and instruction nodes (articy:draft 2.2) - Flow traversal and resolve helpers are now aware of condition and instruction nodes - The script type of connection parts can now be changed during export, too - Connection parts now have a pin index [0..n] - The connection builder now supports pin indices - Plugins are now supported on non-windows platforms, too - Articy:expresso namespaces can now be cloned - The scripting state can now be saved/restored for temporary execution tests - Flow traversal can now temporarily execute outcomes during update - Expresso::Validate (and depending) signatures changed to allow different validation options - Added new classes to load/save a file from/to memory - It is now possible to load files from a MemoryStream (C# API) File format changes: - The current XML and Binary file version has been increased to 1.4 - Connection parts gained an extra member "pinIndex" (ushort) - Connection parts imported from a version 1.3 file will have their pin index set to invalid - To disable importing of 1.3 default type layouts, either call CRepository::RegisterDefaultClasses before importing data or set SArtImportConfig::RegisterLegacyTypes to false Documentation: - The beginners guide has been improved and extended - Several errors in the Doxygen documentation have been corrected - The bundle XML schema file has been updated - The C# documentation has been extended ---------------------- # Version 1.0.0 ---------------------- This revision contains changes the XML and Binary file format. Both file format versions have been incremented to 1.3. Beta file formats prior to this version will not be loaded and have to be re-exported. Bugfixes: - Child objects of locations that have been placed in folders are exported again - Export now supports exporting objects without class data - Package "using" tags can now be used recursive - Assertions when loading deprecated file formats are now more verbose and critical if necessary - Plugins will now do a library version check upon initialize - Attachment strips will be exported correctly - Bundle files will now be validated directly after chosing the file (so XML/XSD errors will show up earlier) - Blobs are now properly marshalled to Byte[] - CAPI now proberly catches versioning errors Articy:Access: - Expresso syntax and features changed significantly (see below) - Flow traversal now supports a mode to fetch the parent without emerging - You can now bind additional custom functions to FlowTraversal - Queries now support "Contains" operators for list references - Export now supports exporting objects as instances - Object and list ids can now be modified during the export progress ("id namespaces") - Many string functions now accept strings with different character encodings - Many string functions now accept characters als input - Containers now differentiate between PopBack and PopBackCopy - Memory statistics on exit can now be enabled/disabled (in release, too) - Block allocators can now be rerouted to the system allocator aka. (custom) malloc - Zones, Paths, Links and Spots now export a parent property by default - Links and Spots now export a position property by default Articy:Expresso: - The namespace separator is now a "." in all cases - Prototype namespaces must be prefixed with "$" - Instance namespaces must be prefixed with "#" - Technical names can be used to refer to a prototype or instance - Object members must be seperated with a ":" - It is now possible to have nested namespaces - It is now possible to attach functions to objects - Functions are now called C-Style (e.g. "f(x,y)") - Parsing has been improved (e.g. better error handling) - It is now possible to parse multiple lines of expression (separated by ";") - Statements can now be validated (simulated execution) - Automatic variable creation on first assigment is now an option - Weaktypes can be set to "strict" to ensure typesafeness - New variables are created as "invalid" and set to 0 - New standard math operations have been added Documentation: - Tutorial 06 has been updated to reflect expresso changes - Beginners guide has been updated to reflect expresso changes - Package documentation has been updated to reflect the new export features - C# documentation extended ------------------------- # Revision 26268 (Beta 5) ------------------------- Bugfixes: - Removed some minor issues on XCode 5 / OSX 10.9 / iOS 7 - Fixed some errors in the CAPI/C# resolver functions - Resolve functions won't get stuck in infinite loops during jump resolving - Removed erroneous member layout constraints on IConnectable - Fixed compiler errors on Queries trying to compare references - Exporting a package with version "0" does no longer give an XSD error Articy:Access: - Added helpers for simplified flow and member traversal - Added support for custom exporters/importers - Added support for Articy:Draft exporter plugins - Functions to resolve indirections (jumps/hubs) have been improved and extended - Added typeless MemberIds (to support heterogeneous MemberId vectors) - Queries now return lists of references and can be started on list of references - Text fields can now be exported as script references - The type of a script reference can now be defined in a bundle's type definition - EImportFormat and EExportFormat have been unified to EExchangeFormat - All collections now implement a "ForEach" method and provide a fitting delegate typedef - IObject now contains serverl "TryGet" functions that will return nullptr instead of throwing an exception when a member is not found. - Many smaller convenience functions have been added to the C++ API Documentation: - Tutorial 03 and 08 have been updated to use the latest changes and additions - Added Tutorial 11 to show traversal helpers (C++) - Updated the bundle documentation - Articy:Draft Query documentation has been improved Projects: - The makefile now contains targets for all tutorials - XCode projects show no project settings related warnings on XCode 5 - Updated the static framework tools for XCode ------------------------- # Revision 25736 (Beta 4) ------------------------- Bugfixes: - Fixed several iterator errors when compiling with GCC/CLang - CAPI now catches all exceptions and passes them to SetLastError - Fixed a problem with loading binary files that did not contain default types - Documents will now be exported correctly - Fixed some potential memory leaks Articy:Access: - Added Android and Java support - C# classes can now be generated as partial - C# API now supports iterating over blobs and texts - Added C++ convenience functions to load by filename - Bundle files will now be validated before export - Added a logger that writes to the native system log - Some fields have been renamed to match their Articy:Draft counterparts: PreviewText -> MenuText, Actor -> Speaker - StringIterator has been renamed to TextIterator to match naming structure - There are now "critical" asserts which will throw an exception when triggered. In release no message will be displayed, but the exception will still be thrown. All asserts with the "[error]" and "[critical]" tags have been converted as such. - More log messages when running in debug Documentation: - Documentation and some tutorials have been updated to match the latest changes - Added Documentation for Android support Projects: - Mono projects correctly set to c# 3.5 profile - Fixed some linker errors on xcode tutorial targets ------------------------- # Revision 25336 (Beta 3) ------------------------- This revision contains changes the XML and Binary file format. Both file format versions have been incremented to 1.2. Beta file formats prior to this version will not be loaded and have to be re-exported. Bugfixes: - Fixed exporting very long expresso string variables - Fixed some timer and threading problems on Linux/ARM - Fixed a case where string could get exported twice - Fixed a rendering bug on Intel Chipset within Maniac Manfred - Fixed use of cdecl/stddecl on gcc/llvm - C-API is now C89 compatible - Fixed several query related compiler warnings / linker errors - Expresso functions are now correctly released along with their namespace Articy:Access: - C# Support - The CAPI support has been extended - Import/Export now has versioning support - The Articy:Draft export is now able to generate type classes for C# and C++ - It is now possible to auto generate template definitions on export - It is now possible to export the color of objects - Packages can now have a content version and are able to convert data accordingly - Queries now support a limit operator - Added convenience functions to search objects by technical name - Delegates can now bind to function pointers, too - Several functions have been renamed to refelect their usage / avoid name clashes - Dialog and DialogFragment have been renamed to Dialogue and DialogueFragment - String Hashes are now calculated by using FNV1a instead of CRC32 - XML files are now order sensitive - Added NEVIGO_ASSERT_CRITICAL as a replacement for "[error]" and "[critical]" asserts. Critical asserts will now throw an exception (in release builds, too). Articy:Expresso: - It is now possible to register functions via the C-API Projects: - New C# API projects for Visual Studio and Mono - New targets for AccessPlugin, which is a standalone bundle of NvgCore, Access and AccessCAPI - Unity support files added Documentation: - The documentation now contains a full export example file - Updated the documentation to the latest changes - New tutorial on how to use the C# API - New tutorial on how to use versioning ------------------------- # Revision 23344 (Beta 2) ------------------------- This revision contains changes the XML and Binary file format. Both file format versions have been incremented to 1.1. Loading files with version 1.0 will fail as files exported with 1.0 do not contain all of the required connection data (due to a bug in the export). A simple re-export of your data with the Articy:Draft version delivered with this build will fix the problem. Bugfixes: - Improved XML loading performance - Import now asserts mismatching BundleIds. - Fixed problems with tutorials loading data from the executable directory. - Fixed several warnings with GCC release builds. - Fixed a problem with the timer on embedded Linux systems. - Fixed race conditions / shutdown issues in CThreadPool. - Fixed a problem when starting threads that were in the process of being started. - Fixed a problem with ResourceFileArchives not initializing correctly on Linux. - Fixed a problem when loading files on systems with different endianess. - Fixed the export of connections that "pierce through" a flow fragment. - Fixed several compiler settings and missing files in all projects and solutions. Articy:Access: - Connections are now represented as a list of ConnectionParts. Step and Connection structures/classes have been removed. (see tutorial8) - Jumps now contain a "virtual connection" instead of an object reference. - Added helper functions to auto-resolve jumps and hubs. (see tutorial8) - Added several convenience functions to fetch typed class/template data. - CAPI updated to match the latest C++API changes. Articy:Expresso: - Expresso now supports strings. (see documentation) - Expresso "base library" functions added. (see documentation) - Expresso functions are now bound to the same namespaces as variables, so releasing a namespace will "unload" the contained functions, too. Projects: - XCode debug information changed to DWARF (no dsym) - Improved makefiles to support: - Debug/Release builds - MacOS building (possible but not recommended) - Compiling C++98 with C++11 compatible compilers - Build servers - Better platform auto-detection Documentation: - Added a document about the Articy:API query language. - Added tutorial8 to explain proper connection handling. ------------------------- # Revision 22930 (Beta 1) ------------------------- First tagged release