mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-10 18:13:18 +01:00
ebiten: bug fix: SubImage+At didn't consider the original image's setVerticesCache
Close #2428
This commit is contained in:
parent
b983014e95
commit
aecbf2344d
3
image.go
3
image.go
@ -858,6 +858,9 @@ func (i *Image) at(x, y int) (r, g, b, a byte) {
|
|||||||
return 0, 0, 0, 0
|
return 0, 0, 0, 0
|
||||||
}
|
}
|
||||||
x, y = i.adjustPosition(x, y)
|
x, y = i.adjustPosition(x, y)
|
||||||
|
if i.isSubImage() {
|
||||||
|
i = i.original
|
||||||
|
}
|
||||||
if c, ok := i.setVerticesCache[[2]int{x, y}]; ok {
|
if c, ok := i.setVerticesCache[[2]int{x, y}]; ok {
|
||||||
return c[0], c[1], c[2], c[3]
|
return c[0], c[1], c[2], c[3]
|
||||||
}
|
}
|
||||||
|
@ -3433,3 +3433,15 @@ func TestImageTooManyConstantBuffersInDirectX(t *testing.T) {
|
|||||||
t.Errorf("got: %v, want: %v", got, want)
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue #2428
|
||||||
|
func TestImageSetAndSubImage(t *testing.T) {
|
||||||
|
const w, h = 16, 16
|
||||||
|
img := ebiten.NewImage(w, h)
|
||||||
|
img.Set(1, 1, color.RGBA{0xff, 0, 0, 0xff})
|
||||||
|
got := img.SubImage(image.Rect(0, 0, w, h)).At(1, 1).(color.RGBA)
|
||||||
|
want := color.RGBA{0xff, 0, 0, 0xff}
|
||||||
|
if got != want {
|
||||||
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user