From 120af20237b308a3a45831df72ea9a700e76303c Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Thu, 5 Sep 2024 19:54:21 -0400 Subject: [PATCH] Fix outline shader for AMD cards --- Nuake/src/Resource/StaticResources.cpp | 27 +++++++++++++++++++++----- Resources/Shaders/outline.shader | 12 +++++++++++- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Nuake/src/Resource/StaticResources.cpp b/Nuake/src/Resource/StaticResources.cpp index 18ae9c55..3cd3c81b 100644 --- a/Nuake/src/Resource/StaticResources.cpp +++ b/Nuake/src/Resource/StaticResources.cpp @@ -271823,11 +271823,28 @@ namespace Nuake { 0x30, 0x2E, 0x39, 0x2C, 0x20, 0x69, 0x6E, 0x74, 0x28, 0x63, 0x6F, 0x6C, 0x20, 0x21, 0x3D, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x20, 0x2A, 0x20, 0x68, 0x61, 0x73, 0x48, 0x69, 0x74, 0x20, 0x2A, 0x20, 0x31, - 0x30, 0x2E, 0x30, 0x66, 0x29, 0x3B, 0x0D, 0x0A, 0x09, 0x09, 0x66, 0x72, - 0x61, 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x20, 0x3D, 0x20, 0x6D, 0x69, - 0x78, 0x28, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2C, - 0x20, 0x75, 0x5F, 0x4F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x43, 0x6F, - 0x6C, 0x6F, 0x72, 0x2C, 0x20, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x29, 0x3B, + 0x30, 0x2E, 0x30, 0x66, 0x29, 0x3B, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, + 0x09, 0x09, 0x76, 0x65, 0x63, 0x34, 0x20, 0x6F, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x20, 0x3D, 0x20, 0x76, 0x65, 0x63, + 0x34, 0x28, 0x0D, 0x0A, 0x09, 0x09, 0x09, 0x6D, 0x69, 0x78, 0x28, 0x66, + 0x72, 0x61, 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, 0x72, 0x2C, 0x20, + 0x75, 0x5F, 0x4F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x43, 0x6F, 0x6C, + 0x6F, 0x72, 0x2E, 0x72, 0x2C, 0x20, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x29, + 0x2C, 0x0D, 0x0A, 0x09, 0x09, 0x09, 0x6D, 0x69, 0x78, 0x28, 0x66, 0x72, + 0x61, 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, 0x67, 0x2C, 0x20, 0x75, + 0x5F, 0x4F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x43, 0x6F, 0x6C, 0x6F, + 0x72, 0x2E, 0x67, 0x2C, 0x20, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x29, 0x2C, + 0x0D, 0x0A, 0x09, 0x09, 0x09, 0x6D, 0x69, 0x78, 0x28, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, 0x62, 0x2C, 0x20, 0x75, 0x5F, + 0x4F, 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, + 0x2E, 0x62, 0x2C, 0x20, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x29, 0x2C, 0x0D, + 0x0A, 0x09, 0x09, 0x09, 0x6D, 0x69, 0x78, 0x28, 0x66, 0x72, 0x61, 0x67, + 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, 0x61, 0x2C, 0x20, 0x75, 0x5F, 0x4F, + 0x75, 0x74, 0x6C, 0x69, 0x6E, 0x65, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, + 0x61, 0x2C, 0x20, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x29, 0x0D, 0x0A, 0x09, + 0x09, 0x29, 0x3B, 0x0D, 0x0A, 0x0D, 0x0A, 0x09, 0x09, 0x66, 0x72, 0x61, + 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x20, 0x3D, 0x20, 0x6F, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x3B, 0x0D, 0x0A, 0x3B, 0x0D, 0x0A, 0x09, 0x7D, 0x0D, 0x0A, 0x09, 0x0D, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x28, 0x66, 0x72, 0x61, 0x67, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x2E, 0x61, 0x20, 0x3E, 0x20, 0x30, 0x2E, 0x31, 0x29, 0x0D, 0x0A, diff --git a/Resources/Shaders/outline.shader b/Resources/Shaders/outline.shader index 63288309..0344d6f6 100644 --- a/Resources/Shaders/outline.shader +++ b/Resources/Shaders/outline.shader @@ -62,7 +62,17 @@ void main() // Mix outline with background float alpha = smoothstep(0.5, 0.9, int(col != target) * hasHit * 10.0f); - fragColor = mix(fragColor, u_OutlineColor, alpha); + + + vec4 outputColor = vec4( + mix(fragColor.r, u_OutlineColor.r, alpha), + mix(fragColor.g, u_OutlineColor.g, alpha), + mix(fragColor.b, u_OutlineColor.b, alpha), + mix(fragColor.a, u_OutlineColor.a, alpha) + ); + + fragColor = outputColor; +; } if(fragColor.a > 0.1)