mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:37:37 +00:00
LibSoftGPU: Use destination alpha for texture decal function
According to the OpenGL spec, the decal function uses the destination (or texture) alpha instead of the source alpha. This fixes the sky in GLQuake.
This commit is contained in:
parent
fd628cdfec
commit
9fc419395e
1 changed files with 4 additions and 4 deletions
|
@ -1016,10 +1016,10 @@ ALWAYS_INLINE void Device::shade_fragments(PixelQuad& quad)
|
|||
quad.out_color = texel;
|
||||
break;
|
||||
case TextureEnvMode::Decal: {
|
||||
auto src_alpha = quad.out_color.w();
|
||||
quad.out_color.set_x(mix(quad.out_color.x(), texel.x(), src_alpha));
|
||||
quad.out_color.set_y(mix(quad.out_color.y(), texel.y(), src_alpha));
|
||||
quad.out_color.set_z(mix(quad.out_color.z(), texel.z(), src_alpha));
|
||||
auto dst_alpha = texel.w();
|
||||
quad.out_color.set_x(mix(quad.out_color.x(), texel.x(), dst_alpha));
|
||||
quad.out_color.set_y(mix(quad.out_color.y(), texel.y(), dst_alpha));
|
||||
quad.out_color.set_z(mix(quad.out_color.z(), texel.z(), dst_alpha));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue