mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 03:08:54 +01:00
ebiten: bug fix: Set after Set resulted in a wrong color
Updates #2154 Updates #2176
This commit is contained in:
parent
66bf40dc84
commit
80c26e6dcc
2
image.go
2
image.go
@ -127,7 +127,7 @@ func (i *Image) resolveSetVerticesCacheIfNeeded() {
|
|||||||
i.setVerticesCache = nil
|
i.setVerticesCache = nil
|
||||||
|
|
||||||
srcs := [graphics.ShaderImageNum]*ui.Image{emptyImage.image}
|
srcs := [graphics.ShaderImageNum]*ui.Image{emptyImage.image}
|
||||||
i.image.DrawTriangles(srcs, vs, is, affine.ColorMIdentity{}, graphicsdriver.CompositeModeSourceOver, graphicsdriver.FilterNearest, graphicsdriver.AddressUnsafe, i.adjustedRegion(), graphicsdriver.Region{}, [graphics.ShaderImageNum - 1][2]float32{}, nil, nil, false, true)
|
i.image.DrawTriangles(srcs, vs, is, affine.ColorMIdentity{}, graphicsdriver.CompositeModeCopy, graphicsdriver.FilterNearest, graphicsdriver.AddressUnsafe, i.adjustedRegion(), graphicsdriver.Region{}, [graphics.ShaderImageNum - 1][2]float32{}, nil, nil, false, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Size returns the size of the image.
|
// Size returns the size of the image.
|
||||||
|
@ -3350,3 +3350,29 @@ func TestImageTooManyDrawTriangles(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestImageSetOverSet(t *testing.T) {
|
||||||
|
img := ebiten.NewImage(1, 1)
|
||||||
|
img.Set(0, 0, color.RGBA{0xff, 0xff, 0xff, 0xff})
|
||||||
|
if got, want := img.At(0, 0), (color.RGBA{0xff, 0xff, 0xff, 0xff}); got != want {
|
||||||
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply the change by 'Set' by calling DrawImage.
|
||||||
|
dummy := ebiten.NewImage(1, 1)
|
||||||
|
img.DrawImage(dummy, nil)
|
||||||
|
if got, want := img.At(0, 0), (color.RGBA{0xff, 0xff, 0xff, 0xff}); got != want {
|
||||||
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
img.Set(0, 0, color.RGBA{0x80, 0x80, 0x80, 0x80})
|
||||||
|
if got, want := img.At(0, 0), (color.RGBA{0x80, 0x80, 0x80, 0x80}); got != want {
|
||||||
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply the change by 'Set' again.
|
||||||
|
img.DrawImage(dummy, nil)
|
||||||
|
if got, want := img.At(0, 0), (color.RGBA{0x80, 0x80, 0x80, 0x80}); got != want {
|
||||||
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user