Release notes



Released 05 Dec 2018
FeatureUWP Added support for UWP ARM.
FeatureUWP 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.
FeatureAPI 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.
FeatureJavaScript can now modify objects exposed by C++. This allows the UI to update game state directly without invoking functions.
FeatureAdded 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.
FeatureAPI 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.
FeatureAdded support for the line-height CSS property.
FeatureAdded support for exposing objects containing std::pair, std::map and std::unordered_map to the UI.
EnhancementAPI Added support for the window.onresize event.
FixFixed a bug in the Player application which would fail to load files whose paths contained non-ASCII characters.
FixFixed a crash in the Player application when using the –height= parameter.
FixFixed a bunch of minor memory leaks across the scripting sybsystem.
FixAnimations on elements with display: none will now be properly paused and resumed when display: none is removed.
FixAdded virtual destructors to the cohtml::DebugDump and cohtml::FrameCapture structs.
FixFixed rendering of SVG gradients which were misplaced when under the effects of a transformation (translation, rotation, etc.).
FixFixed 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.
FixErrors thrown inside event handlers of engine.on are now properly logged across all platforms. Previously, these errors would be silently ignored.
FixInvoking 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.
FixFixed a crash when calling cohtml::System::Uninitialize while a video was still playing.
FixFixed a bug which would cause videos to sometimes stop spuriously.
FixFixed a bug which would cause some SVGs to be rendered incorrectly.
FixFixed a bug which would cause elements whose background is a linear-gradient to not update when another linear gradient is applied.
FixFixed rendering artefacts caused when the current value of box-shadow and only box-shadow was changed on an element.
FixFixed an issue which would cause hover effects on images to not appear every other time.
FixFixed a bug which caused playFromTo from the WebAnimations API to not play correctly after an animation has ended.
FixFixed an assert in Debug that was being hit when calculating new styles for some elements that have both box-shadow and transform applied.
FixFixed a crash on Nintendo Switch when destroying rendering resources.
FixYou no longer have to define COHERENT_HORIZON manually to build for Nintendo Switch.
FixFixed a bug which would cause the SDK to throw an error whenever you accessed window.history.state on iOS.
FixFixed a crash caused when using regular expressions while the garbage collector is running.
FixMacOS Some debug features were disabled in debug builds on MacOS and iOS (e.g asserts). They are now available on all platforms in Debug.
FixUnreal EngineDisplaying a Gameface UMG widget inside a ScaleBox widget will now preserve scaling properly.