From 72a1b0339bf45397844c8c65e58058d63dfc5a97 Mon Sep 17 00:00:00 2001 From: Sergii Liebodkin Date: Thu, 20 Mar 2025 21:56:01 +0000 Subject: [PATCH] gl_engine: luma visual differneces fix https://github.com/thorvg/thorvg/issues/3045 --- src/renderer/gl_engine/tvgGlShaderSrc.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/renderer/gl_engine/tvgGlShaderSrc.cpp b/src/renderer/gl_engine/tvgGlShaderSrc.cpp index 648f0152..420406d9 100644 --- a/src/renderer/gl_engine/tvgGlShaderSrc.cpp +++ b/src/renderer/gl_engine/tvgGlShaderSrc.cpp @@ -442,7 +442,7 @@ void main() { \n const char* MASK_LUMA_FRAG_SHADER = TVG_COMPOSE_SHADER( uniform sampler2D uSrcTexture; \n uniform sampler2D uMaskTexture; \n - \n + \n in vec2 vUV; \n \n out vec4 FragColor; \n @@ -455,8 +455,7 @@ void main() { maskColor = vec4(maskColor.rgb / maskColor.a, maskColor.a); \n } \n \n - FragColor = \n - srcColor * (0.299 * maskColor.r + 0.587 * maskColor.g + 0.114 * maskColor.b) * maskColor.a; \n + FragColor = srcColor * dot(maskColor.rgb, vec3(0.2125, 0.7154, 0.0721)) * maskColor.a; \n } \n ); @@ -472,7 +471,7 @@ void main() { vec4 srcColor = texture(uSrcTexture, vUV); \n vec4 maskColor = texture(uMaskTexture, vUV); \n \n - float luma = (0.299 * maskColor.r + 0.587 * maskColor.g + 0.114 * maskColor.b); \n + float luma = dot(maskColor.rgb, vec3(0.2125, 0.7154, 0.0721)); \n FragColor = srcColor * (1.0 - luma); \n } \n );