Count sprite draw calls
This commit is contained in:
@@ -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))
|
||||
|
Reference in New Issue
Block a user