mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 18:58:54 +01:00
shareable: Bug fix: Image invalidation by ReplacePixels
ReplacePixels on a part of image might invalidate the other part of the image on MacBook Pro 2013, especially when the other part is rendered by DrawImage. Fixes #593 #758
This commit is contained in:
parent
cae5f6bf4b
commit
e809991c9f
@ -65,9 +65,11 @@ func (b *backend) TryAlloc(width, height int) (*packing.Node, bool) {
|
||||
newImg := restorable.NewImage(s, s, false)
|
||||
oldImg := b.restorable
|
||||
w, h := oldImg.Size()
|
||||
vs := graphics.QuadVertices(w, h, 0, 0, w, h, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1)
|
||||
is := graphics.QuadIndices()
|
||||
newImg.DrawImage(oldImg, vs, is, nil, graphics.CompositeModeCopy, graphics.FilterNearest)
|
||||
// Do not use DrawImage here. ReplacePixels will be called on a part of newImg later, and it looked like
|
||||
// ReplacePixels on a part of image deletes other region that are rendered by DrawImage (#593, 758).
|
||||
// TODO: Add validations to ensure that an image cannot accept DrawImage after ReplacePixels on a part of
|
||||
// it.
|
||||
newImg.ReplacePixels(oldImg.Pixels(), 0, 0, w, h)
|
||||
oldImg.Dispose()
|
||||
b.restorable = newImg
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user