Release notes
Changelog
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.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.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 |
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:
Format | 1.7 and prior | 1.8 |
---|---|---|
PNG, JPG, Other RGB(A) formats | Automatically pre-multiplied after decode | No change - Automatically pre-multiplied after decode |
DDS | Assumed to have pre-multiplied alpha | May need to re-save - Attempts to determine if alpha is pre-multiplied from metadata |
KTX, ASTC, PKM | Assumed to have pre-multiplied alpha | Must re-save - Assumed NOT to have pre-multiplied alpha |
User images | Assumed to have pre-multiplied alpha | User 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.