. Coherent Labs

Changelog: Gameface

Version 1.13.1.3 – released 03 Mar 2021


Feature Improved text rendering
Feature Updated V8 to version 8.8.278 for Microsoft Windows
Feature Precise text layout and positioning
Feature Embedded a last resort fallback font
Feature Implemented font preloading to avoid reading fonts from disk in time critical threads
Feature Nintendo Switch uses V8 for JavaScript execution
Enhancement Optimized matching of complex selectors against DOM elements
Enhancement Add support for automatic binding of UFunctions without parameters in Unreal Engine 4
Enhancement Added option in Unreal Engine 4 plugin for setting the default font
Enhancement Changed the Unreal Engine 4 plugin modules to be ClientOnly
Fix Fixed growing memory usage when data-bind-for is used inside data-bind-if
Fix Fixed advancing a View without a document
Fix Fixed a layout issue with aligned inline text
Fix Fixed a freeze when using font-fit mode fit
Fix Fix a crash in UMG Editor after saving UMG widgets with Cohtml and GT Widget in Unreal Engine 4.26
Api New font API for preloading fonts with specific font description
Api Deprecated the AddFontsFromFolder API
Api Deprecated the SetDefaultFallbackFontName API

Version 1.12.4.2 – released 08 Feb 2021


Feature Added clipboard support in Cohtml Player for Mac OS X
Feature Added support for font-weight CSS property support
Feature Added clipboard support for CohtmlPlugin in Unreal Engine 4
Feature Added support for media decoders and inspector for UnrealEngine 4 on Nintendo Switch
Feature Added WebSocket support for Unity3D
Enhancement Added support XMLHttpRequest timeout
Enhancement Added support for Unreal Engine 4.26
Enhancement Added support for Universal Rendering Pipeline for Unity3D
Enhancement Allowed OnEnabled and OnDisabled to be overridden in Unity3D
Fix Fixed exposing the INodeProxy to C# code in Unity3D
Fix Fixed redrawing SVG images every frame
Fix Fixed complex text shaping issues when mixing different languages
Fix Fixed Cohtml Player not working with –root cmd argument on Mac OS X
Fix Fixed freeze when running the video playback sample on a machine without audio devices
Fix Fixed missing context when using mutation observers
Fix Fixed issues with parsing @font-face URL declarations
Fix Fixed parsing of multiple CSS selectors followed by selection pseudo selector
Fix Fixed crash on closing the Player with open Websocket connections
Fix Fixed reversed Ctrl and Command/Meta modifiers on Mac OS X
Fix Fixed crash on Xbox One with Unity3D
Fix Fixed missing JavaScript context during destruction of canvas elements
Fix Fixed layout of flexbox items after changing their text content
Fix Removed usage of Unity3D APIs in static constructors on PlayStation 4
Fix Fixed clashes between renoir float2 and client float2 types
Fix Fixed parsing of fonts specified with url() without quotes
Fix Fixed mixing of files in a single folder from Unity3D packages for different platforms
Api Changed the logging severity of assert failures to be CriticalError and above the current Error level
Api The load event is fired after the fonts from the stylesheets have been loaded

Version 1.12.2.1 – released 18 Dec 2020


Feature Add aspect ratio media feature support
Feature Added support for the change event listener for input and textarea elements
Enhancement Support VW/VH suffices in scrollTop and scrollLeft element properties
Enhancement getModifierState support for Keyboard and Mouse events
Enhancement Update PlayStation 4 to SDK 8.0
Enhancement Update PlayStation 5 to SDK 2.0
Fix Fix image alignment with coh-inline paragraphs
Fix Fixed CohtmlToTransformMatrix2D to handle invalid inputs
Fix Fixed text-transformation styles sticking to detached nodes
Fix Added I18NManager in Unity3D for PlayStation 4 and PlayStation 5
Fix Fixed View flicking when creating multiple views
Fix Fixed a crash in FInternationalizationManager class
Fix Fixed crash when passing null for custom data-binding attribute state
Fix Fixed mouse cursor notification for input fields without explicit type
Fix Fixed event.target.selection indices for input elements
Fix Fixed the timestamp for gamepad events in Unreal Engine 4

Version 1.12.0.1 – released 30 Nov 2020


Feature Support for CSS property text-stroke
Feature Support for layout and display of text in complex scripts
Feature Support CSS transitions for shorthand properties
Feature Add a way to pick the primitive that the Gameface component attaches to by specifying its name in Unreal Engine 4
Feature [Experimental] New Unity C# backend. It is supported for Unity 2019.3 or newer and for every platform except MacOSX, iOS and Androd.
Feature Support for Xbox Series X in Unity. The platform is supported only with C# rendering backend.
Enhancement Added Gameface Mac Player and Launcher to the UE4 packages
Enhancement Added mechanism for reusing ViewStates between HUD/UWidget recreations in Unreal Engine 4
Enhancement Added vw, vh suffices for scrollHeight and scrollWidth properties
Enhancement Added HTTP support for the Player on Mac OS X
Fix Fixed crash when binding JavaScript models with null value
Fix Fixed a crash when invoking innerHTML inside custom element callbacks
Fix Fixed wrongly calculated dimensions when using dynamically sized flex containers
Fix Fixed performance regression caused by allowing multiple paint rectangles
Fix Fixed XHR response status code propagating to JavaScript
Fix Fixed event.target.selection index values on input events
Fix Trigger video onerror for unsupported codecs and errors during decoding
Fix Fixed document loading after image loading has been canceled
Fix Fixed custom event attributes handling on cloned elements
Fix Fixed suffixed properties like right[PX|VH|VW] in computed styles
Fix Fixed potential crash during initialization on Mac OS X
Fix Fixed default input element cursor
Fix Ignore unsupported CSS selectors and continue parsing the stylesheet
Fix Fixed allocations without tags in MediaPlayerSourceBuffer
Fix Fixed accumulating unresolved promises for engine.call invocations with missing C++ handlers
Fix Fixed setting timestamp value when updating the gamepad data in Unreal Engine 4
Fix Fixed user image request leaks that caused deadlocks
Fix Fix possible broken state of ClickThroughQuery after resize
Fix Fix crash when game starts with Korean language
Fix Fix crash in break-iterators due to incorrect string conversion in Unreal Engine 4
Fix Add proper handling of overlapping border radii when clipping with rounded rectangle and filling and stroking rounded rectangle
Api Add API for setting rendering resolution, independent from the HTML resolution Render sublayers that are transformed with the correct scaling as well
Api Expose methods for setting all the caches
Api Calls to engine.call without C++ handler bound, will reject the returned promise objects
Api Modify the Renoir backends initialization so that all constructors take a single settings object

Version 1.11.0.1 – released 09 Nov 2020


Feature Added experimental generation of text atlases on GPU
Enhancement Increased maximum allowed blur radius for blur effects from 24px to 95px.
Enhancement Added PlayStation 5 CommonGame and samples
Enhancement Added XboxSeriesX CommonGame and samples
Enhancement Added XboxOneGDK CommonGame and samples
Fix Fixed Player failing to start in evaluation packages
Fix Fixed crash when updating and unregistering a model in the same SynchronizeModels
Fix Fixed keeping unresolved promises for engine.call calls without a C++ handler registered for the call
Fix Fixed crash when calling UnloadDocument explicitly before destroying a view or navigating to another URL
Fix Fixed ES6 modules crash and assert failure in Debug configuration
Fix Fixed parsing CSS stylesheets containing unsupported media queries
Fix Fixed evaluation of data-binding expression after unregistering and registering model for a second time
Fix Fixed ChakraCore crashes and possible memory leaks due to missing context
Fix Reduced video buffer size to reduce memory consumption
Fix Fixed performance regression of finished animations with fill mode forwards/both
Fix Fixed PlayStation 4 and XboxOne assembly definitions in Unity3D UPM package.
Fix Fixed using the inspector with Unity3D UPM packages
Api Calls to engine.call without a C++ handler registered and no failure callback for the promise will trigger error messages

Version 1.10.0.2 – released 06 Oct 2020


Feature Added support for custom elements upgrading (V1 API)
Feature Added support for drawing and styling all HTML tags
Feature Added support for break-iterator for Asian text in UnrealEngine 4
Enhancement GPU timing for Nintendo Switch is now available when doing a performance trace in the Inspector
Enhancement Added packaging of V8 libraries with separated debug symbols for Unix based platforms in UnrealEngine 4
Fix Fixed a crash in V8 due to double exposing of the same C++ objects
Fix Fixed a crash when reloading a view with JavaScript breakpoint set at file level
Fix Fixed color interpolation between semi-transparent colors
Fix Fixed a rare issue causing nesting of events in the inspector performance timeline
Fix Fixed frontend and backend inspector performance events not appearing in the timeline
Fix Fixed disappearing elements when using gradients as masks
Fix Fixed wrong pending image counter causing an assert failure in Debug
Fix Fixed the scroll of Computed style panel in Inspector’s Elements tab
Fix Fix assertion caused by std::function on PlayStation 4
Fix Fixed crash when game starts with Korean language in UnrealEngine 4
Fix Fixed crash in Cohtml break-iterators due to incorrect string conversion in UnrealEngine 4

Version 1.9.9.8 – released 16 Sep 2020


Fix

Fixed crash when calling FreeRenderingResources on views with SVG images

Fix

Fixed possible leak of SVG tessellated data

Version 1.9.9.5 – released 10 Sep 2020


Fix

Fixed possible deadlock when advancing the views

Version 1.9.9.2 – released 02 Sep 2020


Enhancement Added support for the background-position-x and background-position-y CSS properties
Enhancement Improved Dualshock 4 contoller support for Unity3D
Fix Fixed wrongly fired resource abort notifications for already completed requests
Fix Fixed race issues when executing layout tasks in parallel
Fix Fixed linker issues when the library is delay loaded with certain compiler options
Fix Fixed a crash which was occuring during event dispatching
Fix Fixed an error about missing context argument in engine.off
Fix Fixed a bug causing rare failures to load style sheets
Fix Improved tagging of memory allocations to better reflect its usage
Fix Fixed chaining CSS animations on the same CSS property
Fix Fixed by ref binding of empty std::vector collections
Fix Removed requirement for Vulkan runtime on Windows for Unity3D plugin
Fix Fixed scrolling on Linux in Unity3D with the new InputSystem
Fix Fixed Unity3D editor deadlocks when stopping the game
Fix Fixed checkout issues for Perforce users in the Unreal Engine 4 plugin
Fix Fixed memory allignment issue in VirtualAllocators on PS5 and Switch
Api Added option to disable internal allocators that retain memory
Api Added “pixels per scroll” to set the speed of the scrolling in Unity3D
Api Increased the version of cohmtl.js – update all your copies

Version 1.9.7.2 – released 17 Aug 2020


Feature

Support for WebSockets in Unreal Engine 4

Fix

Fixed disappearing elements with certain style changes

Fix

Fixed crash when registering new engine.on handers during execution of a handler

Fix

Fixed crash when locking vertex or index buffers fails

Fix

Renamed internal rapidjson and rapidxml libraries to avoid clashes

Version 1.9.5.4 – released 06 Aug 2020


Feature Added line break iterator API to aid text wrapping
Feature Enabled saving profile from Inspector’s Performance tab
Feature Added support for aborting of resource requests when the view is destroyed or navigate to another page
Feature Update PlayStation 4 SDK to version 7.5
Feature Added setting for converting property names to lower case in Unreal Engine 4 when using the automatic UType binder
Feature Added a special CSS property “coh-composition-id” which allows users to compose the element with a custom renderer
Feature Added special CSS properties “coh-custom-effect-name” along with several custom animatable parameters that allow users to apply a custom shader to the element
Feature Added new RendererCaps members which allow customizing the maximum allowed texture size. These new properties must be filled in the RendererBackend::FillCaps method.
Feature Support for Live Views in Unity3D
Enhancement Increased the maximum allowed paint rectangles
Enhancement Paint rectangles now leave a short trail
Enhancement Made CohtmlView and CohtmlUISystem Unity3D specific methods virtual
Enhancement Added customizing the Library configuration in Unity3D
Fix Fixed getPropertyValue for the transform CSS property
Fix Fixed crash when using toLocaleLowerCase on Xbox
Fix Fixed FInputGesture deprecated warnings in Unreal Engine 4
Fix Fixed History feature minor memory retention on reload
Fix Fixed capital letters, spaces and special characters in Unity3D with the new Input System
Fix Fixed multiple view srendering and overlaying in HDRP mode for Unity3D
Fix Fixed crash in the CSS parser for malformed calc expressions
Fix Fixed crash when toggling view visibility in Unreal Engine 4
Fix Fixed crash when responding to resource requests after destroying the library in Unreal Engine 4
Api Added an API for an external break iterator implementation
Api Add View::SetCustomSceneCompositor method that forwards the passed arguments the Renoir scene, which fires callbacks on the interface
Api Add View::SetSceneCustomEffectRenderer method that forwards the passed arguments the Renoir scene, which fires callbacks on the interface
Api Added API for clearing the navigation history of a given cohtml::View
Api Added an option to receive resource request calls on the main thread

Version 1.9.2.4 – released 20 Jul 2020


Feature

Support for PlayStation 4 SDK 7.5

Version 1.9.2.2 – released 14 Jul 2020


Feature

Paint rectangles can be toggled by the Inspector rendering panel

Enhancement

Added support for percent values in SVG images

Enhancement

Reduced per-frame allocations for transformations

Enhancement

Extended the performance timeline of the Inspector with additional events

Enhancement

Made the destruction of the UCohtmlWidget non-blocking in the Unreal Engine 4 plugin

Fix

QuerySelectorAll returns elements in the correct depth-first-search order

Fix

Fixed crash when dispatching events during document unloading

Fix

Fixed crash when starting a XmlHTTPRequest during document unloading

Fix

Fixed elements disappearing during scrolling

API

Deprecated the Android builds with the gnustl standard library. They are moved to the *_gnustl folders

Fix

Fixed lifetime of the AudioWrapper objects in the Unreal Engine 4 plugin

Fix

Fixed the plugin unload order in the Unreal Engine 4

Fix

Crash when responding to XmlHTTPRequests after the plugin has been uninitialized in Unreal Engine 4

Version 1.9.0.12 – released 18 Jun 2020


Feature

Support for Unreal Engine 4 4.25

API

This version is not compatible with versions of Unreal Engine 4 different that 4.25

Version 1.9.0.11 – released 17 Jun 2020


Feature

Unity3D Package Manager packages for console platforms

Feature

Added custom memory allocator support to Renoir backends

Feature

Added callbacks for resources lifetime in Renoir backends

Enhancement

Improved the performance of loading font collections

Enhancement

Reduced the repaint area when a small part of the view is changed

Enhancement

Improved error messages when binding map-like objects with non-string keys

Enhancement

Improved using custom SystemSettings in Unity3D

Enhancement

Added engine.off information to the Documentation

Enhancement

Updated support for Unity3D HDRP to the latest rendering pipeline API changes

Fix

Text wrapping properly respects  

Fix

Query selectors and CSS selectors work with data- attributes

Fix

Fixed crash when multiple gradient definitions are parsed in parallel

Fix

Fixed assert on view destruction for ChakraCore platforms with multiple views and data-binding are used

Fix

Fixed degrading performance when using hover on complex selectors

Fix

Fixed updated layout styles depending on rem or em units when the unit changes

Fix

Fixed flex properties that continued to be in effect after removing their CSS declarations

Fix

Fixed loading resources with a backslash in the URL for Unity3D

Fix

Fixed gamma-correctness for Unity3D HDRP

Fix

Fixed handling of events by the TextInputHandler when Advance() is not called on the System

Fix

Fixed crash caused by updating of the pointed/hovered elements after scrolling.

API

Deprecated handled flag for input events

Version 1.8.2.10 – released 5 Jun 2020


Fix

Fixed crash with scrolling and moving the mouse outside of the view

Version 1.8.2.5 – released 5 May 2020


Feature

Added support for images that have non-premultiplied alpha

Enhancement

Updated Unity3D HDRP rendering support to new Unity3D 2019.3

Enhancement

Mouse pointer events are handled during scrolling

Enhancement

Added localization sample with React

Fix

Fixed border color when top side of the border is missing

Fix

Fixed pointer-events for HTML elements when the parent is clipped or creates a stacking context

Fix

Fixed typing into text input fields when text transform is used

Fix

Fixed Unity3D warning about package version using more than 3 numbers

Version 1.8.1.4 – released 27 April 2020


API

Changed Unity3D license keys – please download your new key from the developer portal

Feature

Added support for multiple UISystem instances in Unity3D

API

Refactored the Unity3D plugin to be based on the vanilla C++ API

Enhancement

Localization works for elements that are added dynamically to the DOM

Enhancement

Added support for DirectX 12 to the Unity3D plugin

Fix

Fixed running Unity3D with Vulkan on Linux

Fix

Fixed text transformation on dynamically created elements

Fix Reintroduced the scrolling optimization with fixes for the artifacts and input issues.

Version 1.8.0.11 – released 16 April 2020


Feature

Added experimental inline layout for text

Enhancement

Allowed registering models with complex sub-model as a first member (on the same address)

Fix

Fixed array-like behavior of NodeList collections for platforms using ChakraCore

Fix

Improved rendering of SVGs when background-repeat with transformations is used

Fix

Fixed crash when destroying the view or navigating to a different URL with XML HTTP Requests in flight

Version 1.7.4.1 – released 24 April 2020


Fix Reintroduced the scrolling optimization with fixes for the artifacts and input issues.

Version 1.7.3.1 – released 15 April 2020


Enhancement

Added sample with polyfill for <ol>, <ul> lists and <li>

Enhancement

Added sample for using subtitles for videos

Enhancement

Moved text case transformations to the DOM thread

Fix

Fix turned off the scrolling optimization, because it can break the input in certain cases

Fix

Fix layout overwriting the scroll position set on the DOM thread

Fix

Fix crash when element change parents with overflow: hidden

Fix

Fix some animations not running to complete 100%

Fix

Fix crashes due to missing temporary allocator in TriggerEvent when calling it from fibers or different threads

Fix

Fix scrollWidth for text with overflow

Fix

Fix coordinated for scroll event in Unity3D packaged games

Fix

Fix Unity3D reloading when TextTransformationManager is used

Fix

Fix scrolling coordinates with the new Unity3D input system

Version 1.7.0.15 – released 16 March 2020


Fix Reintroduced the scrolling optimization with fixes for the artifacts and input issues.

Version 1.7.0.14 – released 11 March 2020


Fix Reverted scrolling optimization due to causing artifacts and input issues.

Version 1.7.0.12 – released 09 March 2020


Enhancement

Improve performance of scrolling and hit tests

Enhancement

Improve performance of reading font files

Enhancement

Add virtual list scrolling sample

Enhancement

Add support gamepad with Input Manager in Unity3D

Enhancement

Implement gamepad editor tool to insert gamepad controls in Unity3D

Enhancement

Add units support for flex basis

Enhancement

Add support for preloaded images in Unity3D with DirectX 12

Enhancement

Support building the PlayerOverrides project in Unreal Engine 4

Fix

Fix crash in video when there are multiple layout threads and views are not updated every frame

Fix

Fix scrolling in elements with dynamically changed content and size

Fix

Fix crash when using data-bind-for for a string value

Fix

Fix crash when converting a non-boolean value to boolean for data-binding

Fix

Fix undefined behavior when binding empty arrays and vectors

Fix

Fix clearing of canvas textures in certain cases

Fix

Add missing temp allocator for IME related methods of cohtml::View

Fix

Fix scrolling and panning when it is performed very slowly

Fix

Fix triggering events with null objects from C# to JavaScript in Unity3D

Fix

Fix changing styles in the inspector in Chrome 80 and later

Fix

Fix submission warnings for debug symbols on Stadia

API

Switch C++ standard library to libc++ on Stadia

API

Switch C++ standard library to libc++ on Linux

API

Add developer option for controlling whether to snap the display boxes before transforming. Warning: Enabling this option results in more repainting.

Version 1.6.1.1 – released 20 Feb 2020


Feature

Support for WebSockets (see the documentation how to use them)

Feature Support for Android x86_64
Feature Moved Unity3D packages to use the Unity3D Package Manager
Enhancement Improved support for nullable types in Unity3D
API

Moved COHTML_BUILD_VERSION and COHTML_SDK_VER to <cohtml/Revision.h> header

Version 1.6.0.4 – released 11 Feb 2020


Fix Fixed running the inspector in Google Chrome version 80.

Version 1.6.0.1 – released 04 Feb 2020


Enhancement

Significantly reduced memory usage of SVG images

Enhancement

Exposed the image cache inspection API to Unity3D

Enhancement

Added support for DateTime struct in Unity3D

Enhancement

Added support for read-only List in Unity3D

Feature

Support for Unreal Engine 4 4.24

Fix

Fixed drawing order for combinations of elements with z-index and positioning

Fix

Fixed several issues with stroking paths in SVG images

Fix

Fixed clipping child elements when parent has border-radius

Fix

Fixed text selection and caret placement on transformed text

Fix

Firing events on wrong elements in certain cases

Fix

Fixed text alignment with text-overflow

Fix

Fixed parsing floating point numbers in stylesheets on non-US locale POSIX based platforms

Fix

Exposed UnbindCall and UnregisterEvent to Unity3D

Fix

Exposed ITextTransformationManager to Unity3D

Fix

Fixed exposing FString on POSIX based platforms

Version 1.5.0.1 – released 19 Dec 2019


API

Improved anti-aliasing

Feature

Added a dropdown (<select>) reusable widget

Feature

Added new input sample using the text entry API

Feature

Support for Unity3D new InputSystem

Enhancement

Fixed pathological memory usage with better GC heuristics

Enhancement

Vertex and index buffers for SVGs are properly reused

Enhancement

Added rotate-around-point for SVG

Fix

Fixed various issues with scaling SVGs

Fix

Fixed assert when using box-shadow on an element with width 0

Fix

Fixed bitmap fonts reloading after FreeRenderingResources

Fix

Fixed support for SVGs with transform and gradients

Fix

Fixed crash when seeking a paused video

Version 1.4.2.2 – released 13 Dec 2019


Fix

Fixed video playback freezing with certain videos

Version 1.4.2.1 – released 09 Dec 2019


Fix

Fixed regression in rendering certain SVGs with applied transformation

Fix

Fixed text-shadow being rendered when the text is not visible

Version 1.4.2.0 – released 05 Dec 2019


Feature

Unity3D support for Linux

Feature

Unity3D support for PlayStation 4

Enhancement

Made async and defer scripts work according to the standard

Enhancement

Enhanced the Player to support DPI on Mac OS X

Fix

Fixed styling of elements affected by attribute based CSS selectors

Fix

Fixed using preloaded images in Unity3D on Xbox One

Fix

Fixed [] of dom collections to return undefined for invalid indices

Fix

Fixed using sampler filtering for bitmap fonts

Fix

Fixed detecting mouse events on elements with certain transformations

Fix

Exposed the ILocalizationManager to Unity3D

Fix

Fixed SVGs disappearing with certain transformations

API

Fixed gamepad indices to work as specified by the standard. Read more about the changes

Version 1.4.1.0 – released 05 Nov 2019


Feature

Dynamic data-binding is available as an experimental option

Feature

Support for gamepad in Unity3D

Feature

Support for custom plugins in the Player

Feature

Support for localization in the Player

Feature

Added the document.elementFromPoint and document.elementsFromPoint methods

Enhancement

Support for the text-overflow CSS property

Enhancement

Support for the white-space CSS property

Enhancement

Reduced memory consumption of CSS variables

Enhancement

Added support for BC7 compressed textures

Enhancement

Improved performance of dash stroke paths

Enhancement

Enhanced new text entry API

Enhancement

Added option for controlling vertex and index buffer ring size

Enhancement

Added option for controlling the SDF character size for font rendering

Enhancement

Improved layout for text with different alignment

Enhancement

Added relatedTarget to JavaScript events

Enhancement

Added support for HTTP(S) resources in Unity3D

Enhancement

Added location for keyboard events in Unreal Engine 4

Enhancement

Added location and isRepeat for keyboard events in Unity3D

Fix

Fixed drawing of positioned elements below non-positioned elements

Fix

Fixed GC triggered crash in Unreal Engine 4 with preloaded images

Fix

Fixed borders when border-radius is used

Version 1.4.0.3 – 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

Scaling SVG’s no longer results in wrong transformations

Fix

Fixed mouse buttons for MouseEvent in Unreal Engine 4

Version 1.3.2.1 – 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 controllers

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 1.3.1.4 – 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 1.3.1.1 – released 23 Jul 2019


Feature

Support for mixing languages and fonts in a single text.

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 elements

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

Version 1.3.0.2 – 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
engine.on('Ready')
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 1.2.3.1 – 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 1.2.2.3 – released 13 May 2019


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

Version 1.2.1.1 – 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
platforms

Version 1.2.0.4 – released 09 Apr 2019


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 1.1.0.4 – 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 Added cache control API for clearing and setting sizes of caches
Feature Added JavaScript capturing event phase processing
Enhancement Added support for the letter-spacing CSS property for inputs, buttons and textareas
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
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
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.

Version 1.0.0.6

Released 05 Dec 2018


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 initial support for virtual lists to the data binding system. Virtual lists allow users to work on sections of some lists of data instead of the full data. For example, you might want to display only the first 5 items of your in-game store instead of all items. See the docs for engine.makeVirtualList. This release brings support for pagination i.e. splitting your list into pages. Future improvements will add support for predicate filtering and sorting.
Feature JavaScript can now modify objects exposed by C++. This allows the UI to update game state directly without invoking functions.
Feature Added partial support for custom elements across all platforms. Custom elements provide a way for JavaScript devs to create their own HTML elements. Support is *partial* because new classes can only be derived from HTMLElement.
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 the line-height CSS property.
Feature Added support for exposing objects containing std::pair, std::map and std::unordered_map to the UI.
Enhancement API Added support for the window.onresize event.
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 Animations on elements with display: none will now be properly paused and resumed when display: none is removed.
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 Errors thrown inside event handlers of engine.on are now properly logged across all platforms. Previously, these errors would be silently ignored.
Fix Invoking console.log with null or undefined will now produce the same behaviour across all platforms. Previously, some would throw errors, others would log empty strings or empty objects.
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 rendering artefacts caused when the current value of box-shadow and only box-shadow was changed on an element.
Fix Fixed an issue which would cause hover effects on images to not appear every other time.
Fix Fixed a bug which caused playFromTo from the WebAnimations API to not play correctly after an animation has ended.
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 Fixed a crash caused when using regular expressions while the garbage collector is running.
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 Gameface 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.