. Coherent Labs

Changelog: Gameface

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 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.


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.