Release notes
What’s new
Content Development
Blending With Game Content
Gameface now supports blending of DOM elements with the 3D scene texture behind the UI. DOM elements can utilize the mix-blend-mode
property and their colors can be properly blended with the game content behind them.

Particles that blend with game content
For more details, see the documentation for Blending With Game Content
Player CLI enhanced options
The Player now supports the --remote-debugging-port
command line argument and passing URLs without using the --url
CLA, for example Player.exe coui://uiresources/MyUI.html
. This change aims to improve the compatibility between the Player and third-party tools that have integration with Chrome or the Inspector protocol, for example when using Visual Studio Code debugging.
Migration guide
Changes to ScriptCompiler
In this release, we have removed the possibility to pass ST_Unknown
to ScriptCompiler::Compile()
. The user is responsible to pass the correct script type ST_Classic
or ST_Module
to ScriptCompiler::Compile()
. That’s important because the produced optimizedData
is different and it will be rejected by V8 if it is not correct. If you are not sure of which type is the script, you can try passing ST_Classic
first and if the return value is nullptr
, try with ST_Module
. However, this is not recommended because modules that don’t contain specific keywords like import
/export
might be successfully compiled as normal scripts.
Gameface will issue a warning if the optimizedData
is pre-compiled as module and used as script or vice-versa:
Based on the supplied isCompiledAsModule
in IAsyncResourceResponse::ReceiveOptimizedData()
, Gameface will issue a warning if the optimizedData
is used in the wrong place: "Trying to initialize module <name> with optimizedData precompiled as a script instead of a module."
/ "Trying to initialize normal script <name> with optimizedData precompiled as a module."
.
Changelog
Version 1.68.0
Released 04 Jul 2025
Feature | Added support for blending UI content with the game content behind the UI texture. For more information, see the documentation of the feature |
Enhancement | Added support for using white-space: nowrap to group multiple non-wrapping nodes |
Enhancement | Added --remote-debugging-port and --js-flags command line options to the Player to improve compatibility with Chromium based browsers |
Enhancement | Added --working-dir-to-exec-dir for setting the Player working directory to be the same as the directory containing the Player executable |
Enhancement | Updated Android samples to be compatible with Android Studio Koala 2024.1.2 and Gradle 8.6.0 |
EnhancementUnity | Improved the UI of the data-binding leader board sample in Unity |
Enhancement | Improved fetching of media data to accommodate for high bit-rate video files |
Enhancement | Improved decoders synchronization during playback to prevent performance stalls on the game thread |
Enhancement | Improved decode scheduling to reduce video playback stalls |
Enhancement | Improved memory efficiency of video playback |
Enhancement | Significantly reduced layout performance overhead of playing videos |
Enhancement | Improved video frame display timing |
Enhancement | Added support for sharing depth-stencil textures with different size than the color texture |
Enhancement | Enhanced the Player command-line help descriptions for options with enum values |
Enhancement | Support for Sony PlayStation 5 SDK 11.000 |
Enhancement | Support for Sony PlayStation 4 SDK 12.500 |
Enhancement | Added DirectX 12 support to the Player |
Enhancement | Updated the documentation for implementing the Property interface for using data-binding with dynamic types |
Enhancement | Allowed empty arrays to be indexed in data-binding expressions |
Enhancement | Added a warning if the pre-compiled optimized data is not compatible and will not be used to speed JavaScript execution |
EnhancementUnreal Engine | Added preliminary support for Unreal Engine 5.6 |
EnhancementUnreal Engine | Fixed allocator mismatch crash for mobile platforms by using StaticAllocatorType.Ansi Allocator for mobile platforms |
EnhancementUnreal Engine | Added documentation how to ensure that there is no allocator mismatch on mobile platforms |
EnhancementUnreal Engine | Added detection and warning for user UTextures whose lifetime is bound to a UWorld |
Fix | Fixed using the Backdrop Filter and Custom Effects features in the Player |
Fix | Fixed crash due to preloading font data of an already destroyed typeface |
Fix | Fixed a crash when parsing specific complex data-binding expressions |
Fix | Fixed video memory leak when recreating the view |
Fix | Fixed a compiler error when using /Zc:wchar_t- with Microsoft Visual Studio |
Fix | Fixed wrong values with dynamic data binding when replacing attributes with setAttribute() |
Fix | Fixed font-face rules in SVG styles affecting elements outside the SVG |
Fix | Fixed inline SVGs not redrawing on font load when their font is not previously loaded |
Fix | Fixed crash when trying to use non-inline SVG with keyframe rule |
Fix | Stopped rematching all elements when an svg with style tag is inserted in the DOM |
Fix | Fixed failing to restyle with attribute selectors inside SVG styles |
Fix | Fixed adding and removing styles from inline SVGs |
Fix | Fixed fonts failing to unload when font-face rule is inside SVG |
Fix | Fixed error in complex data-binding expressions with JavaScript models that fail to compile |
FixUnity | Close the virtual keyboard when touching outside the input field on iOS |
Fix | Allow asynchronous style solving when composition-id and custom-effect-name properties are empty or initial |
Fix | Fixed a crash when setting a composition-id on theelement without surface partitioning |
Fix | Fixed losing video volume adjustments on seek in the Player app |
Fix | Fixed a potential stall at the end of the video causing it to get stuck |
Fix | Fixed a crash when adding pathLength to SVG nodes which have no display |
FixUnity | Fixed support multiple same-type members in a class for data-binding in Unity |
Fix | Fixed a ResizeObserver assert when destroying a non-inline SVG during styling |
Fix | Fixed a possible crash if a ScriptCompiler instance was destroyed too soon |
Fix | Limited the memory used for constant buffers |
Fix | Fixed accumulation of memory in the GPU resource tracking |
Fix | Fixed assert for re-exposing DOM nodes when GC happens inside cloneNode |
API | Removed the default value of scriptType parameter in ScriptCompiler.Compile() |
API | Removed ScriptCompiler::ScriptType::ST_Unknown |
API | Removed support for Sony PlayStation 5 SDK 8.000 |
API | Removed support for Sony PlayStation 4 SDK 11.500 |