mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-14 23:17:27 +01:00
internal/mipmap: refactoring: add a fast path
This commit is contained in:
parent
00fade9dcf
commit
dc41960d3b
@ -83,9 +83,21 @@ func (m *Mipmap) DrawTriangles(srcs [graphics.ShaderSrcImageCount]*Mipmap, verti
|
||||
return
|
||||
}
|
||||
|
||||
level := 0
|
||||
if !canSkipMipmap && srcs[0] != nil && canUseMipmap(srcs[0].imageType) {
|
||||
level = math.MaxInt32
|
||||
// Use the fast path if mipmap is not used.
|
||||
if canSkipMipmap || srcs[0] == nil || !canUseMipmap(srcs[0].imageType) {
|
||||
var imgs [graphics.ShaderSrcImageCount]*buffered.Image
|
||||
for i, src := range srcs {
|
||||
if src == nil {
|
||||
continue
|
||||
}
|
||||
imgs[i] = src.orig
|
||||
}
|
||||
m.orig.DrawTriangles(imgs, vertices, indices, blend, dstRegion, srcRegions, shader, uniforms, fillRule, hint)
|
||||
m.markDirty()
|
||||
return
|
||||
}
|
||||
|
||||
level := math.MaxInt32
|
||||
for i := 0; i < len(indices); i += 3 {
|
||||
idx0 := indices[i]
|
||||
idx1 := indices[i+1]
|
||||
@ -115,7 +127,6 @@ func (m *Mipmap) DrawTriangles(srcs [graphics.ShaderSrcImageCount]*Mipmap, verti
|
||||
if level == math.MaxInt32 {
|
||||
panic("mipmap: level must be calculated at least once but not")
|
||||
}
|
||||
}
|
||||
|
||||
var imgs [graphics.ShaderSrcImageCount]*buffered.Image
|
||||
for i, src := range srcs {
|
||||
|
Loading…
Reference in New Issue
Block a user