Release notes



Released 16 April 2020
FeatureAdded experimental inline layout for text
EnhancementAllowed registering models with complex sub-model as a first member (on the same address)
FixFixed array-like behavior of NodeList collections for platforms using ChakraCore
FixImproved rendering of SVGs when background-repeat with transformations is used
FixFixed crash when destroying the view or navigating to a different URL with XML HTTP Requests in flight


Released 27 April 2020
APIChanged Unity3D license keys – please download your new key from the developer portal
FeatureAdded support for multiple UISystem instances in Unity3D
APIRefactored the Unity3D plugin to be based on the vanilla C++ API
EnhancementLocalization works for elements that are added dynamically to the DOM
EnhancementAdded support for DirectX 12 to the Unity3D plugin
FixFixed running Unity3D with Vulkan on Linux
FixFixed text transformation on dynamically created elements
FixReintroduced the scrolling optimization with fixes for the artifacts and input issues.


Released 5 Jun 2020
FixFixed crash with scrolling and moving the mouse outside of the view


Released 5 May 2020
FeatureAdded support for images that have non-premultiplied alpha
EnhancementUpdated Unity3D HDRP rendering support to new Unity3D 2019.3
EnhancementMouse pointer events are handled during scrolling
EnhancementAdded localization sample with React
FixFixed border color when top side of the border is missing
FixFixed pointer-events for HTML elements when the parent is clipped or creates a stacking context
FixFixed typing into text input fields when text transform is used
FixFixed Unity3D warning about package version using more than 3 numbers

Migration guide

Gameface version 1.8 introduces support for using images that do not have their alpha channel pre-multiplied into the other color channels. Prior to version 1.8, all images in the SDK were treated as if they were using pre-multiplied alpha, disregarding any image metadata that might tell otherwise.

User images can now specify whether their alpha channel is pre-multiplied via the new cohtml::IAsyncResourceResponse::UserImageData::AlphaPremultiplication property. You can set the property to the correct value in the UserImageData object that is passed to the cohtml::IAsyncResourceResponse::ReceiveUserImage API in the cohtml::IAsyncResourceHandler::OnResourceRequest callback of your resource handler. This allows you to re-use the same image in both your engine and UI, even if the engine uses a non-pre-multiplied alpha pipeline.

Following is a table that describes the differences and solutions for various image formats:

Format1.7 and prior1.8
PNG, JPG, Other RGB(A) formatsAutomatically pre-multiplied after decodeNo change - Automatically pre-multiplied after decode
DDSAssumed to have pre-multiplied alphaMay need to re-save - Attempts to determine if alpha is pre-multiplied from metadata
KTX, ASTC, PKMAssumed to have pre-multiplied alphaMust re-save - Assumed NOT to have pre-multiplied alpha
User imagesAssumed to have pre-multiplied alphaUser controlled via cohtml::IAsyncResourceResponse::UserImageData::AlphaPremultiplication

Note that the output of all operations in the Gameface is still an alpha-pre-multiplied texture, so the blending of the resulting UI texture is not affected.