diff --git a/Services/Compositor/SceneCompositor.cs b/Services/Compositor/SceneCompositor.cs index a94264e..e299058 100644 --- a/Services/Compositor/SceneCompositor.cs +++ b/Services/Compositor/SceneCompositor.cs @@ -624,6 +624,18 @@ public sealed class SceneCompositor Buffer.BlockCopy(src.BgraPixels, 0, dst, 0, dstW * dstH * 4); return; } + // Fully opaque source, covering entire destination canvas + if (op == 256 && src.IsOpaque && x0 == 0 && y0 == 0 && x1 == dstW && y1 == dstH) + { + Buffer.BlockCopy(src.BgraPixels, 0, dst, 0, dstW * dstH * 4); + return; + } + // Opaque source with 1:1 aligned region covering full canvas? treat same + if (op == 256 && src.IsOpaque && ex == 0 && ey == 0 && src.Width == dstW && src.Height == dstH) + { + Buffer.BlockCopy(src.BgraPixels, 0, dst, 0, dstW * dstH * 4); + return; + } var d = dst.AsSpan(); var s = src.BgraPixels.AsSpan();