From fbe6d59c043873287c0fdec079a45ba81398f720 Mon Sep 17 00:00:00 2001 From: Jinny You Date: Thu, 12 Sep 2024 17:43:41 +0900 Subject: [PATCH] wg_engine: Enable premultiplied canvas on browser Emscripten 3.1.66 includes support for WebGPU's premultiplied canvas. Surface configurations have been updated with premultiplied alpha mode to support this feature. see: https://github.com/emscripten-core/emscripten/commit/c82a307c612d430028a3d06ddf8b3fdd2852b2fb --- src/renderer/wg_engine/tvgWgRenderer.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/renderer/wg_engine/tvgWgRenderer.cpp b/src/renderer/wg_engine/tvgWgRenderer.cpp index b8e92553..211ef194 100755 --- a/src/renderer/wg_engine/tvgWgRenderer.cpp +++ b/src/renderer/wg_engine/tvgWgRenderer.cpp @@ -322,12 +322,15 @@ bool WgRenderer::target(WGPUSurface surface, uint32_t w, uint32_t h) { .device = mContext.device, .format = mContext.preferredFormat, .usage = WGPUTextureUsage_RenderAttachment, + #ifdef __EMSCRIPTEN__ + .alphaMode = WGPUCompositeAlphaMode_Premultiplied, + #endif .width = w, .height = h, - #ifdef __EMSCRIPTEN__ + #ifdef __EMSCRIPTEN__ .presentMode = WGPUPresentMode_Fifo, - #else + #else .presentMode = WGPUPresentMode_Immediate - #endif + #endif }; wgpuSurfaceConfigure(surface, &surfaceConfiguration);