mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-13 04:22:05 +01:00
Add a benchmark + fix sub image allocations
This commit is contained in:
parent
30157b5dea
commit
1dd96726c4
@ -27,10 +27,11 @@ type glyphAtlas struct {
|
|||||||
type glyphImage struct {
|
type glyphImage struct {
|
||||||
atlas *glyphAtlas
|
atlas *glyphAtlas
|
||||||
node *packing.Node
|
node *packing.Node
|
||||||
|
img *ebiten.Image
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *glyphImage) Image() *ebiten.Image {
|
func (i *glyphImage) Image() *ebiten.Image {
|
||||||
return i.atlas.image.SubImage(i.node.Region()).(*ebiten.Image)
|
return i.img
|
||||||
}
|
}
|
||||||
|
|
||||||
func newGlyphAtlas() *glyphAtlas {
|
func newGlyphAtlas() *glyphAtlas {
|
||||||
@ -54,6 +55,7 @@ func (g *glyphAtlas) NewImage(w, h int) *glyphImage {
|
|||||||
return &glyphImage{
|
return &glyphImage{
|
||||||
atlas: g,
|
atlas: g,
|
||||||
node: n,
|
node: n,
|
||||||
|
img: g.image.SubImage(n.Region()).(*ebiten.Image),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
package text_test
|
package text_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"image"
|
"image"
|
||||||
"image/color"
|
"image/color"
|
||||||
"regexp"
|
"regexp"
|
||||||
@ -23,6 +24,7 @@ import (
|
|||||||
|
|
||||||
"github.com/hajimehoshi/bitmapfont/v3"
|
"github.com/hajimehoshi/bitmapfont/v3"
|
||||||
"golang.org/x/image/font"
|
"golang.org/x/image/font"
|
||||||
|
"golang.org/x/image/font/gofont/goregular"
|
||||||
"golang.org/x/image/math/fixed"
|
"golang.org/x/image/math/fixed"
|
||||||
|
|
||||||
"github.com/hajimehoshi/ebiten/v2"
|
"github.com/hajimehoshi/ebiten/v2"
|
||||||
@ -371,3 +373,23 @@ func TestDrawOptionsNotModified(t *testing.T) {
|
|||||||
t.Errorf("got: %v, want: %v", got, want)
|
t.Errorf("got: %v, want: %v", got, want)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkDrawText(b *testing.B) {
|
||||||
|
var txt string
|
||||||
|
for i := 0; i < 32; i++ {
|
||||||
|
txt += "The quick brown fox jumps over the lazy dog.\n"
|
||||||
|
}
|
||||||
|
screen := ebiten.NewImage(16, 16)
|
||||||
|
source, err := text.NewGoTextFaceSource(bytes.NewReader(goregular.TTF))
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
f := &text.GoTextFace{
|
||||||
|
Source: source,
|
||||||
|
Size: 10,
|
||||||
|
}
|
||||||
|
op := &text.DrawOptions{}
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
text.Draw(screen, txt, f, op)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user