. Coherent Labs

Changelog: Prysm

Version – released 05 Nov 2019


Dynamic data-binding is available as an experimental option


Support for gamepad in Unity3D

Feature Added support for all the dynamic text behaviors (Single line, Multiline and Multiline no wrap).

Support for custom plugins in the Player


Support for localization in the Player


Added the document.elementFromPoint and document.elementsFromPoint methods


Support for the text-overflow CSS property


Support for the white-space CSS property


Reduced memory consumption of CSS variables


Added support for BC7 compressed textures


Improved performance of dash stroke paths


Enhanced new text entry API


Added option for controlling vertex and index buffer ring size


Added option for controlling the SDF character size for font rendering


Improved layout for text with different alignment


Added relatedTarget to JavaScript events


Added support for HTTP(S) resources in Unity3D


Added location for keyboard events in Unreal Engine 4


Added location and isRepeat for keyboard events in Unity3D

Enhancement As of version 2019.1.3, documents with type Coherent Prysm Legacy won’t be available anymore. If you have projects created with this document type please make sure you have converted them to the Coherent Prysm document type via the document converter described here.

Fixed drawing of positioned elements below non-positioned elements


Fixed GC triggered crash in Unreal Engine 4 with preloaded images


Fixed borders when border-radius is used

Version – released 10 Oct 2019

API New License Keys have been generated!
Feature Support for Google Stadia for native and Unreal Engine 4
Feature Support for Linux for native and Unreal Engine 4
Feature Support for Unreal Engine 4.23
Enhancement Data-binding attribute for mask-image
Enhancement Moved shaders inside the plugin for Unreal Engine 4
Enhancement Updated Preact sample and documentation
Enhancement Added first tier of a more powerful text entry API
Enhancement Gamepad support for the Player on Mac OS X
Enhancement Added API to control which resources can be loaded from a view
Fix Fixed issues with using the IME and changing focus
Fix Fixed the order of applying transformations and filters to elements
Fix Fixed box shadows visible for non-visible elements
Fix Fixed adding visible children to non-visible elements
Fix Fixed video playback in Unreal Engine 4 on Mac OS X
Fix Fixed setting relative URL using the history API
Fix Fixed crash when calling C++ method from JavaScript inside engine.on events
Fix Fixed support for SVGs with transform and gradients
Fix Fixed mouse buttons for MouseEvent in Unreal Engine 4

Version – released 05 Sep 2019

Enhancement Added support for five button mouse events
Enhancement Added support for scroll events for textarea
Enhancement Support for pre tags
Enhancement Added support for the change event for input elements
Enhancement Added UserIndex for virtual keyboard support in Unreal Engine 4
API Added API to customize the resource loading in Unreal Engine 4
Fix Fixed controller indices when connecting and disconnecting multiple
Fix Fixed the garbage collector on PlayStation4 to collect more
aggresively on certain loads
Fix Fixed several JavaScript engine crashes on PlayStation4 and Xbox One
Fix Fixed crash when calling C++ methods with wrong number of arguments
from JavaScript
Fix Fixed reversed mouse scroll in Unreal Engine 4

Version – released 22 Aug 2019

Fix Fixed rendering artifacts related to text without specified width.
Fix Fixed memory corruption on PlayStation 4, XBox One, iOS, UWP.

Version – released 23 Jul 2019

Feature Support for mixing languages and fonts in a single text.
Feature Custom event handlers can now be added through the Events and Documents tab.
Feature When multiple scenes are exported separately, system folders and library folders can now be linked, so that resources from the library are referenced by a relative path, instead of being copied multiple times.
Enhancement The loop property of videos can now be controlled through the Coherent Prysm panel in Adobe Animate.
Enhancement When exporting a scene, Prysm now exports JavaScript files with symbol variables and animation labels for each scene rather, and not one file per document. A JavaScript file in the old format with all layers and all symbol variables is still exported for compatibility, but is not referenced in the exported HTML.
Enhancement Updated Android samples projects to support ARM64
Enhancement Updated Android samples projects to Android Studio 3.4
Enhancement Added support for optional RequireJS modules with error event for
script and link elements
Fix Fixed the offsetWidth and offsetHeight functions for hidden
Fix Fixed using custom-element-tag as selector in CSS stylesheets
Fix Enabled ARC for the metal backend library
Fix Fixed cooking game on the fly with Unreal Engine4
Fix Fixed crash when removing DOM elements with data-binding attributes
Fix When removing a file from the external files panel, while the file options are displayed, now removes the options correctly.
Fix Exporting a document containing a scene and a symbol with the same name now works, instead of displaying error.

Version – released 28 Jun 2019

Feature Added ability to define Custom data-binding attributes
Feature Vulkan backend Windows implementation for the native SDK
Feature Experimental Unreal Engine 4 Switch support. Video and inspector are
not supported yet.
Feature Experimental support for libc++ for Android
Feature Experimental support for Android ARM64
Feature Added support for CSS cursors in Unreal Engine 4
Feature Added text-transform for Unreal Engine 4
Feature Added an API to advance a view, without it rendering anything
Feature Added support for overflow-wrap CSS property
Enhancement Added DPI scaling to the player application
Enhancement Added data-bind-font-size
Enhancement Enhanced virtual keyboard support for Unreal Engine 4
Enhancement Added engine.whenReady promise object, equivalent to
Enhancement Added support for mipmaps in DDS textures
Enhancement Added support for the touchmove event
Enhancement Added controller support in the PlayStation 4, Nintendo Switch and
UWP samples
API Added API to control the size of the text atlas texture
Fix Fixed assert when creating input elements in multiple views
Fix Fixed missing invocations to the finish callback of animations
Fix Fixed restarting an animation inside the finish callback
Fix Fixed logging warnings in cohtml.js

Version – released 24 Jun 2019

Fix Fixed crash when using by-value getters in data-binding
Fix Fixed crash when recreating views on PlayStation 4
Fix Fixed missing text on the UMG widget on PlayStation 4
Fix Fixed broken gradients on the UMG widget on PlayStation 4
Fix Fixed rendering uninitialized textures with the UMG widget on Xbox One

Version – released 13 May 2019

Feature Added support for aliases to data-binding models
Feature Added support for batch export from the command line.
Feature Added a recursive symbol duplication service
Feature Added the :active pseudo selector
Feature Added the visibility CSS property
Feature Added the KeyboardEvent.repeat property
Enhancement Added data-bind-html, which allows to set innerHTML with data-binding
Enhancement Allowed the localization texts to contain html tags
Enhancement Added the load event to script and stylesheet elements
Enhancement Enhanced log messages for wrong property names used for data-binding
Enhancement {{model}} (without property) can be used for data-binding
Enhancement Scrolling works correctly with nested scrollable elements
Enhancement Automatically casting enum types to int for iOS and Switch for binding
Enhancement Binding supports long numbers
Enhancement Regular on event handlers work with data-bind-for
Enhancement Not handled promise rejections are logged
Enhancement Added engine.unregisterModel API to unregister a model from JavaScript
Enhancement Added an API to set the ILocalizationManager in Unreal Engine 4 integration
Enhancement Added support for exposing UDataTable to JavaScript
Enhancement Added ability to customize the automatic binding in Unreal Engine 4
Fix Fixed disappearing SVG images when background-image property is changed
Fix Positioning of text caret in text inputs with aligment
Fix Fixed text selection when text has CSS transform
Fix Fixed crash in Unreal Engine 4 when chaining multiple property accesses in data-binding
Fix Fixed the gamepaddisconnected event to contain which gamepad has been disconnected
Fix Fixed cloneNode to clone attached event listeners
Fix Fixed handling special symbols for input fields in the Binding tab
Fix Fixed events addition to elements generated with data-bind-for

Version – released 24 Apr 2019

Feature Updated Unreal Engine to 4.22
Fix Fixed crash when using View::UnloadDocument
Fix Fixed support for React v16.5
Fix Fixed using iterator names that are prefix of other iterator names
in data-binding
Fix Fixed using {{model}} in data-binding expressions for C++ models.
Fix Fixed indexOf and slice for arrays exposed by-ref on ChakraCore

Version – released 09 Apr 2019

Feature Added the ability to export instance names as ID’s via a checkbox in the “Settings” tab
Feature Added CSS transitions in Prysm Exporter
Feature Added support for the font-fit-mode property which resizes text based on its AABB dimensions
Feature Added support for passing DOM elements as arguments to CLAnimations.js functions
Feature Labels from all layers are now exported
Feature Added an option for playing all the nested animations of an element. This option is also added to the CLAnimations.js methods
Feature Added a checkbox in the Settings tab that toggles the export of invisible layers
Feature Checked enable-complex-css by default
Feature Made UE4Root path to be relative to the fla file
Feature Added more options for events handlers related to playing an element animation. With these options you can target elements more accurately
Feature Authortime shared symbols now include all of the metadata added in the source file
Enhancement The exported labels are now subgrouped by layers
Enhancement There is no more need to add an instance name to a symbol to be able to change its custom properties. All properties of a symbol are now shared between all of its instances in the document
Enhancement Instance names are used for targeting a specific element when you want to play its animation
Enhancement Removed the symbol instance metadata option from “Events” and “Binding” tabs to simplify workflow
Enhancement Generated events are now written in separate JS files which are included in the html
Fix Metadata is no longer cleared from elements on guide layers
Fix Fixed a number of crashes and bad exported values
Fix Fixed some SVG mask cases for Prysm Documents. SVG masks are now outputted to a separate file instead of being embedded in the HTML
Fix Fixed SVG mask paths that broke drag and drop into the player
Feature Added support for CSS transitions
Feature Added support for pointer-events CSS property
Feature Enhanced the flex CSS property to support setting grow and shrink
Feature Added support for CSS cursors
Feature Added support for the console tab and script debugging on Mac OS X
Feature Added support for mix-blend-mode: add
Feature Added support for KeyboardEvent.location
Feature Added support for copy and paste
Feature Added support for Home and End keys
Feature Added automatic sizing for text fields
Feature Added API to get the Nodes attributes from cohtml::INodeProxy
Feature Added text selection to all elements
Enhancement Refactored Renoir backend API to work better with low-level rendering APIs like Metal
Enhancement Replaced JavaScriptCore with ChakraCore on Xbox One and PlayStation 4
Enhancement Replaced JavaScriptCore with V8 on Mac OS X
Enhancement The inspector no longer disconnects when the view is reloaded
Enhancement Significantly improved inspector loading speed for pages with lots of elements
Enhancement Data-binding attributes are visible in the inspector
Enhancement Reduced thread-local variables count to allow running on more Android devices
Enhancement Android uses the Android NDK r15b
Enhancement Added gestures support in Unity3D
Enhancement Added range requests support in Unity3D
Enhancement Added gamepad support to PlayStation4 samples
Enhancement Improved performance for drawing polylines in canvas
Enhancement Allowed loading stylesheets encoded in UTF-8 with BOM
Enhancement Moved V8 background tasks to worker threads tasks
Enhancement Added GPU debug metadata in Unreal Engine 4
Enhancement Implemented animation shorthand CSS property
Enhancement Added custom HTMLMediaElement events signaling when a decoder cannot keep up (cohplaybackstalled) and when it catches up (cohplaybackresumed). These events can be used to synchronize other animations with the video playback.
Enhancement Seeking paused videos now shows a preview of the seeked position
Enhancement Added non-standard property to the CanvasRenderingContext2D “enableFastLineSegmentDrawing” which can allows much faster drawing in a canvas if the image consists of line segments only
Fix Fixed assert when calling bound C++ methods with incorrect arguments from JavaScript
Fix Fixed assert when removing the src attribute of an img and reloading the view
Fix Fixed using the skewX property in animations
Fix Fixed leaking some GPU resources on reloading the view
Fix Fixed calling the connectedCallback on custom elements in appendChild
Fix Fixed calling bound methods on objects that have been removed with View::DestroyExposedInstance
Fix Fixed using unsigned numbers for specifying a color in data-binding
Fix Fixed possible memory leak of ParseHTML when the system is destroyed before the load has finished.
Fix Fixed crash when using canvas stroke with gradient
Fix Fixed Inspector to show all transformations on an element with multiple transformations.
Fix Fixed currentTime attribute when the animation is paused
Fix Fixed onBlur, onFocus events on input elements when using React
API Changed Renoir API to allow simultaneous usage from Coherent GT and Gameface
API Split Renoir backend in UnrealEngine 4 to a separate module
API Added virtual destructors to pure virtual classes and structs
API Added default implementation to ViewListener’s methods
API Renamed Renoir library files to start with lib
API Moved enable color writes to the PSO instead of SetRenderTarget param

This is part of a breaking change in Renoir backends. See the how to update guide
API Moved MSAA to the PSO

This is part of a breaking change in Renoir backends. See the how to update guide
API Added upload buffer (constant buffers) management in Renoir

This is part of a breaking change in Renoir backends. See the how to update guide
API Moved auxiliary constant buffers from the Renoir backend to Renoir core library

This is part of a breaking change in Renoir backends. See the how to update guide
API Started doing ClearQuad instead of ClearRenderTarget based on new backend capability

This is part of a breaking change in Renoir backends. See the how to update guide
API Added BeginRenderPass and EndRenderPass backend commands to Renoir

This is part of a breaking change in Renoir backends. See the how to update guide

Version – released 08 Feb 2019

Feature Added default rendering backend implementation for the Metal graphics API
Feature Added support for CSS Custom properties (variables)
Feature Added support for CSS “!important” rule
Feature Added support for multiple values in the CSS background-image property
Feature Added support for the CSS calc() function. Currently, mixing percentages with other value types is not supported.
Feature Selection API for input and textarea
Feature Added support for CSS ::selection pseudo element
Feature Added support for CSS :root pseudo-class
Feature Implemented a system that alerts the user about duplicate instance names which cause metadata clashes.
Feature Added cache control API for clearing and setting sizes of caches
Feature Added JavaScript capturing event phase processing
Feature Duplicate instance names can now be automatically renamed via the panel
Feature Most cases of shapes transformed in untweened spans are now exported properly
Feature Frame-by-frame animations are now supported
Enhancement Added support for letter spacing in inputs, buttons and text areas
Enhancement Added default styles for input, button and textarea
Enhancement Added text-align support for input, button and textarea
Enhancement Improved support for SVGs without viewBox
Enhancement Cohtml.js can be used in a standard web browser. Significantly increases the compatibility of pages testing in web browsers.
Enhancement Added samples for workflows based on WebPack and Redux
Enhancement Add support for multiple data models in data-bind expressions
Enhancement Upgraded the JavaScript VM on Windows and Android to V8 6.9.427

The Debug configuration now uses V8 build in Debug, so there will be more error checking at the cost of some performance
Enhancement Reduced the count of dynamic TLS slots allocation for Nintendo Switch
Enhancement Added support for Unreal Engine 4.21
Enhancement Implemented path stroking/filling with gradients in canvas elements
Enhancement Paths to JavaScript and CSS files linked to the document are now relative to the FLA file
Enhancement Labels in the CLAnimation.js file are now separated by scene
Fix Added CloneNode for CustomElements
Fix Fixed CustomElement’s callback invocations (they weren’t always fired)
Fix Fixed canvas element resize behavior (canvas context state is now correctly reset)
Fix Added missing ICU library to the Nintendo Switch package
Fix Fixed animations’ currentTime in Web Animations API (it was reported incorrectly when the animation is paused)
Fix Fixed crash on Nintendo Switch when not passing a custom log handler
Fix Fixed a bug related to changing paths for Autortime sharing on publish
Fix Duplicate instance names no longer have cases where their position is broken
Fix Fixed math rounding and output order differences between Windows and Mac
API Input elements no longer inherit the font related styles of their parents
API Added GPU debug metadata emission useful for graphics debugging.
Enable with View::EmitRenderingMetadata and handle the
BC_PushMetadata, BC_PopMetadata commands in your RendererBackend implementation.
Issue Shape Tween spans are now ignored


Released 05 Dec 2018

Feature Added support for setting the “overflow” of elements. Overflow refers to parts of an element which are outside the boundaries of the element. Each element can now specify if the overflowing parts should be visible, hidden or if the element should scroll.
Feature Added complete support for z-index. Z-index determines the order in which elements are rendered on the screen so elements with lower z-index are ‘behind’ elements with higher z-index.
Feature UWP Added support for UWP ARM.
Feature UWP The SDK will now use ChakraCore as JavaScript VM on UWP x86. JavaScriptCore is still the JSVM for UWP x64. This nets about 30% performance increase in JavaScript execution. ChakraCore on UWP x64 will be available in a later release.
Feature API Added the ability to dump all currently used images in the UI. This is useful when you want to know which files to package, preload or generate atlases for. See the new method cohtml::View::GetUsedImagesList.
Feature Added support for exposing objects containing std::pair, std::map and std::unordered_map to the UI.
Enhancement Exporting for Prysm will no longer generate fake events in the history panel of Adobe Animate. Previously, hitting the ‘Export’ button would create tens of events, effectively corrupting the undo/redo stack.
Fix Fixed a bug in the Player application which would fail to load files whose paths contained non-ASCII characters.
Fix Fixed a crash in the Player application when using the –height parameter.
Fix Fixed a bunch of minor memory leaks across the scripting sybsystem.
Fix Added virtual destructors to the cohtml::DebugDump and cohtml::FrameCapture structs.
Fix Fixed rendering of SVG gradients which were misplaced when under the effects of a transformation (translation, rotation, etc.).
Fix Fixed a bug which would cause some SVG files no never be loaded if a lot of SVGs were loaded simultaneously at the start of the application.
Fix Fixed a crash when calling cohtml::System::Uninitialize while a video was still playing.
Fix Fixed a bug which would cause videos to sometimes stop spuriously.
Fix Fixed a bug which would cause some SVGs to be rendered incorrectly.
Fix Fixed a bug which would cause elements whose background is a linear-gradient to not update when another linear gradient is applied.
Fix Fixed an issue which would cause hover effects on images to not appear every other time.
Fix Fixed an assert in Debug that was being hit when calculating new styles for some elements that have both box-shadow and transform applied.
Fix Switch Fixed a crash on Nintendo Switch when destroying rendering resources.
Fix Switch You no longer have to define COHERENT_HORIZON manually to build for Nintendo Switch.
Fix iOS Fixed a bug which would cause the SDK to throw an error whenever you accessed window.history.state on iOS.
Fix iOS MacOS Some debug features were disabled in debug builds on MacOS and iOS (e.g asserts). They are now available on all platforms in Debug.
Fix UE4 Displaying a Prysm UMG widget inside a ScaleBox widget will now preserve scaling properly.
Fix UE4 Mouse input will now be correctly calculated even in the presence of safe zones. Previously, if UE4 deemed safe zones were needed, the UI would render correctly but mouse input would be offset.