diff --git a/gpu/internal/rendertest/refs/TestDepthOverlap.png b/gpu/internal/rendertest/refs/TestDepthOverlap.png new file mode 100644 index 00000000..6c5d9980 Binary files /dev/null and b/gpu/internal/rendertest/refs/TestDepthOverlap.png differ diff --git a/gpu/internal/rendertest/render_test.go b/gpu/internal/rendertest/render_test.go index 9cdb68ec..3e027eb3 100644 --- a/gpu/internal/rendertest/render_test.go +++ b/gpu/internal/rendertest/render_test.go @@ -223,6 +223,22 @@ func TestNegativeOverlaps(t *testing.T) { }) } +func TestDepthOverlap(t *testing.T) { + run(t, func(ops *op.Ops) { + stack := op.Save(ops) + paint.FillShape(ops, red, clip.Rect{Max: image.Pt(128, 64)}.Op()) + stack.Load() + + stack = op.Save(ops) + paint.FillShape(ops, green, clip.Rect{Max: image.Pt(64, 128)}.Op()) + stack.Load() + }, func(r result) { + r.expect(96, 32, colornames.Red) + r.expect(32, 96, colornames.Green) + r.expect(32, 32, colornames.Green) + }) +} + type Gradient struct { From, To color.NRGBA }