mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 10:25:37 +00:00
gpu/internal/rendertest: add regression test for issue 331
References: https://todo.sr.ht/~eliasnaur/gio/331 Signed-off-by: Andy Balholm <andy@balholm.com>
This commit is contained in:
@@ -185,6 +185,28 @@ func TestStrokedPathZeroWidth(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStrokedPathCoincidentControlPoint(t *testing.T) {
|
||||||
|
run(t, func(o *op.Ops) {
|
||||||
|
p := new(clip.Path)
|
||||||
|
p.Begin(o)
|
||||||
|
p.MoveTo(f32.Pt(70, 20))
|
||||||
|
p.CubeTo(f32.Pt(70, 20), f32.Pt(70, 110), f32.Pt(120, 120))
|
||||||
|
p.LineTo(f32.Pt(20, 120))
|
||||||
|
p.LineTo(f32.Pt(70, 20))
|
||||||
|
cl := clip.Stroke{
|
||||||
|
Path: p.End(),
|
||||||
|
Width: 20,
|
||||||
|
}.Op().Push(o)
|
||||||
|
|
||||||
|
paint.Fill(o, black)
|
||||||
|
cl.Pop()
|
||||||
|
}, func(r result) {
|
||||||
|
r.expect(0, 0, transparent)
|
||||||
|
r.expect(70, 20, colornames.Black)
|
||||||
|
r.expect(70, 90, transparent)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestPathReuse(t *testing.T) {
|
func TestPathReuse(t *testing.T) {
|
||||||
run(t, func(o *op.Ops) {
|
run(t, func(o *op.Ops) {
|
||||||
var path clip.Path
|
var path clip.Path
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
@@ -195,7 +195,7 @@ func verifyRef(t *testing.T, img *image.RGBA, frame int) (ok bool) {
|
|||||||
for y := bnd.Min.Y; y < bnd.Max.Y; y++ {
|
for y := bnd.Min.Y; y < bnd.Max.Y; y++ {
|
||||||
exp := ref.RGBAAt(x, y)
|
exp := ref.RGBAAt(x, y)
|
||||||
got := img.RGBAAt(x, y)
|
got := img.RGBAAt(x, y)
|
||||||
if !colorsClose(exp, got) {
|
if !colorsClose(exp, got) || !alphaClose(exp, got) {
|
||||||
t.Error("not equal to ref at", x, y, " ", got, exp)
|
t.Error("not equal to ref at", x, y, " ", got, exp)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -209,6 +209,11 @@ func colorsClose(c1, c2 color.RGBA) bool {
|
|||||||
return yiqEqApprox(c1, c2, delta)
|
return yiqEqApprox(c1, c2, delta)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func alphaClose(c1, c2 color.RGBA) bool {
|
||||||
|
d := int8(c1.A - c2.A)
|
||||||
|
return d > -5 && d < 5
|
||||||
|
}
|
||||||
|
|
||||||
// yiqEqApprox compares the colors of 2 pixels, in the NTSC YIQ color space,
|
// yiqEqApprox compares the colors of 2 pixels, in the NTSC YIQ color space,
|
||||||
// as described in:
|
// as described in:
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user