mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 03:08:54 +01:00
internal/graphicsdriver/metal: Update the view only when necessary
This commit is contained in:
parent
12960a31ab
commit
7668052a6b
@ -610,8 +610,6 @@ func (g *Graphics) Reset() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *Graphics) draw(rps mtl.RenderPipelineState, dst *Image, dstRegion driver.Region, srcs [graphics.ShaderImageNum]*Image, indexLen int, indexOffset int, uniforms []interface{}) error {
|
func (g *Graphics) draw(rps mtl.RenderPipelineState, dst *Image, dstRegion driver.Region, srcs [graphics.ShaderImageNum]*Image, indexLen int, indexOffset int, uniforms []interface{}) error {
|
||||||
g.view.update()
|
|
||||||
|
|
||||||
rpd := mtl.RenderPassDescriptor{}
|
rpd := mtl.RenderPassDescriptor{}
|
||||||
// Even though the destination pixels are not used, mtl.LoadActionDontCare might cause glitches
|
// Even though the destination pixels are not used, mtl.LoadActionDontCare might cause glitches
|
||||||
// (#1019). Always using mtl.LoadActionLoad is safe.
|
// (#1019). Always using mtl.LoadActionLoad is safe.
|
||||||
@ -687,6 +685,10 @@ func (g *Graphics) draw(rps mtl.RenderPipelineState, dst *Image, dstRegion drive
|
|||||||
func (g *Graphics) DrawTriangles(dstID driver.ImageID, srcIDs [graphics.ShaderImageNum]driver.ImageID, offsets [graphics.ShaderImageNum - 1][2]float32, shaderID driver.ShaderID, indexLen int, indexOffset int, mode driver.CompositeMode, colorM *affine.ColorM, filter driver.Filter, address driver.Address, dstRegion, srcRegion driver.Region, uniforms []interface{}) error {
|
func (g *Graphics) DrawTriangles(dstID driver.ImageID, srcIDs [graphics.ShaderImageNum]driver.ImageID, offsets [graphics.ShaderImageNum - 1][2]float32, shaderID driver.ShaderID, indexLen int, indexOffset int, mode driver.CompositeMode, colorM *affine.ColorM, filter driver.Filter, address driver.Address, dstRegion, srcRegion driver.Region, uniforms []interface{}) error {
|
||||||
dst := g.images[dstID]
|
dst := g.images[dstID]
|
||||||
|
|
||||||
|
if dst.screen {
|
||||||
|
g.view.update()
|
||||||
|
}
|
||||||
|
|
||||||
var srcs [graphics.ShaderImageNum]*Image
|
var srcs [graphics.ShaderImageNum]*Image
|
||||||
for i, srcID := range srcIDs {
|
for i, srcID := range srcIDs {
|
||||||
srcs[i] = g.images[srcID]
|
srcs[i] = g.images[srcID]
|
||||||
|
Loading…
Reference in New Issue
Block a user