From eac6017c2cfbddec9a112e9d6365fdf54f03021d Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 13 Jun 2020 13:42:26 +0100 Subject: [PATCH] Count sprite draw calls --- internal/scenario/draw.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/internal/scenario/draw.go b/internal/scenario/draw.go index 7c16d0b..9916dcd 100644 --- a/internal/scenario/draw.go +++ b/internal/scenario/draw.go @@ -95,17 +95,15 @@ func (s *Scenario) Draw(screen *ebiten.Image) error { return false }) - counter := map[string]int{} + counter := 0 for _, pt := range toDraw { for z := 0; z <= s.ZIdx; z++ { - if err := s.renderCell(int(pt.X), int(pt.Y), z, screen, counter); err != nil { + if err := s.renderCell(int(pt.X), int(pt.Y), z, screen, &counter); err != nil { return err } } } - //log.Printf("%#+v", counter) - // Finally, draw cursor chrome // FIXME: it looks like we might need to do this in normal painting order... spr, err := s.specials.Sprite(0) @@ -132,6 +130,8 @@ func (s *Scenario) Draw(screen *ebiten.Image) error { int(y1), ) + ebitenutil.DebugPrintAt(screen, fmt.Sprintf("Sprites: %v", counter), 0, 16) + /* // debug: draw a square around the selected cell x2, y2 := geo.Apply(cellWidth, cellHeight) @@ -164,7 +164,7 @@ func (s *Scenario) geoForCoords(x, y, z int) ebiten.GeoM { return geo } -func (s *Scenario) renderCell(x, y, z int, screen *ebiten.Image, counter map[string]int) error { +func (s *Scenario) renderCell(x, y, z int, screen *ebiten.Image, counter *int) error { sprites, err := s.area.SpritesForCell(x, y, z) if err != nil { return err @@ -179,10 +179,7 @@ func (s *Scenario) renderCell(x, y, z int, screen *ebiten.Image, counter map[str iso.Translate(-209, -332) for _, spr := range sprites { - // if _, ok := counter[spr.ID]; !ok { - // counter[spr.ID] = 0 - // } - // counter[spr.ID] = counter[spr.ID] + 1 + *counter = *counter + 1 op := ebiten.DrawImageOptions{GeoM: iso} op.GeoM.Translate(float64(spr.Rect.Min.X), float64(spr.Rect.Min.Y))