From 9d90bab91ba69e8e67604c2b713a4937304b129b Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Thu, 30 Dec 2021 00:32:17 +0100 Subject: [PATCH] LibSoftGPU: Prevent fog from overwriting the alpha channel Fog only affects the RGB channels according to the spec. --- Userland/Libraries/LibSoftGPU/Device.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibSoftGPU/Device.cpp b/Userland/Libraries/LibSoftGPU/Device.cpp index 3602dc5752..0aa9efc912 100644 --- a/Userland/Libraries/LibSoftGPU/Device.cpp +++ b/Userland/Libraries/LibSoftGPU/Device.cpp @@ -742,8 +742,10 @@ void Device::submit_triangle(const Triangle& triangle, Vector const& ena break; } - // Mix texel with fog - fragment = mix(m_options.fog_color, fragment, factor); + // Mix texel's RGB with fog's RBG - leave alpha alone + fragment.set_x(mix(m_options.fog_color.x(), fragment.x(), factor)); + fragment.set_y(mix(m_options.fog_color.y(), fragment.y(), factor)); + fragment.set_z(mix(m_options.fog_color.z(), fragment.z(), factor)); } return fragment;