Skip to content
SiteEmail

Feature

Added an interface for time zone support for Sony PlayStation and Nintendo Switch

Enhancement

Implemented an optimization to reduce the number of render passes when rendering complex effects

Enhancement

Added functionality and API to capture backend command buffers

Enhancement Unity

Support for Android x64

Enhancement

Introduced new backend API for resource barriers (see the rendering migration guide)

Enhancement

Enhance batching to check for older combinable commands

Fix

Fixed the growth of the stroke width for elements in SVGs to be bidirectional

Fix Unity

Fixed binding between C# and JavaScript

Fix

Fixed typescript definition of registering binding attribute

Fix

Fixed order of custom element reactions when content is added through insertAdjacentHTML

Fix

Fixed wrong indexing arrays with literal numbers in data-binding expressions

Fix

Fixed crash in data-binding with complex expression and literal numbers indexing arrays

Fix

Fixed the Date.now() time on Nintendo Switch.

Fix

Fixed clipped text shadows when using line height which is less that the character height.

Fix

Fixed background/mask-position when using a gradient as an image

Fix

Fixed mask-position property when the mask-image is a gradient.

Fix

Fixed a crash when changing the html background before the body element is created.

Fix Unreal Engine

Fixed assert when custom effects are enabled

Fix Unreal Engine

Fixed safe zone calculation with multiple viewports

Fix Unreal Engine

Fixed texture drawing in atlas crash in Unreal Engine 5 with DirectX12

Fix

Fixed the default value of stop-color in gradients defined in SVGs


Feature

Experimental support for inline layout background styles per row (color, images and gradients)

Fix

Fixed elements leaving visual artifacts after being removed from the DOM

Fix

Fixed a case where CSS variables will fail to be resolved

Fix

Fixed a crash when certain SVGs have zero width/height

Added support for resource state transitions in the rendering backends

Section titled “Added support for resource state transitions in the rendering backends”

With this version of Gameface, the Renoir rendering library supports the ability to explicitly issue state transitions for textures and depth-stencil textures. The feature is aimed at modern graphics APIs that support GPU resource states. Previously, the state transitioning logic was up to the backend to implement. Now Renoir can request state transitions explicitly through rendering commands. There are several API changes related to this:

  • There is a new field in the renoir::RendererCaps structure - SupportsResourcesStateTransitions. If the field is set to true, Renoir will generate commands that indicate that the state of a texture should be changed. For example, just before a texture is used as a render target, there will be a command that changes the state of the texture in question to "render target".

  • Two new backend commands -- BC_TransitionTextureState and BC_TransitionDSTextureState. Together with the new structures - TransitionTextureStateCmd and TransitionDSTextureStateCmd - these command tell the rendering backend which texture should be transitioned to which state.

For examples of how the new commands should be handled, you can check out the provided DX12 and Vulkan rendering backend.

Added a rendering backend API that allows the execution of resource commands

Section titled “Added a rendering backend API that allows the execution of resource commands”

The rendering backends now have a new method - RendererBackend::ExecuteResourceCommands - that should be implemented to make GPU resource creation and destruction possible. The job of the method is very similar to RendererBackend::ExecuteRendering but it only processes resource commands. Renoir will create several BackendResourceCommandsBuffer (very similar to BackendCommandsBuffer) objects and will pass them to RendererBackend::ExecuteResourceCommands where the resource command should be executed by the backend. The resource commands definitions can be found in the new public header RenoirBackend/BackendResourceCommands.h. All of the provided rendering backends have a proper implementation of the new RendererBackend::ExecuteResourceCommands method. Those can be used as a reference implementation for custom backends.