removed debug printer singleton from d2util (#901)

resolves #504
This commit is contained in:
gravestench 2020-11-03 19:19:59 +00:00 committed by GitHub
parent af1f0a0eda
commit f7fb35a4ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 6 deletions

View File

@ -1,5 +1,7 @@
package d2interface
import "github.com/hajimehoshi/ebiten/v2"
type renderCallback = func(Surface) error
type updateCallback = func() error
@ -19,4 +21,6 @@ type Renderer interface {
GetCursorPos() (int, int)
CurrentFPS() float64
ShowPanicScreen(message string)
Print(target *ebiten.Image, str string) error
PrintAt(target *ebiten.Image, str string, x, y int)
}

View File

@ -13,9 +13,6 @@ const (
ch = assets.CharHeight
)
// DebugPrinter is the global debug printer
var DebugPrinter = NewDebugPrinter() //nolint:gochecknoglobals // currently global by design
// NewDebugPrinter creates a new debug printer
func NewDebugPrinter() *GlyphPrinter {
img := ebiten.NewImageFromImage(assets.CreateTextImage())

View File

@ -4,6 +4,8 @@ import (
"errors"
"image"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2util"
"github.com/hajimehoshi/ebiten/v2"
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
@ -34,6 +36,7 @@ var _ d2interface.Renderer = &Renderer{}
type Renderer struct {
updateCallback
renderCallback
*d2util.GlyphPrinter
lastRenderError error
}
@ -67,7 +70,9 @@ func (r *Renderer) Layout(_, _ int) (width, height int) {
// CreateRenderer creates an ebiten renderer instance
func CreateRenderer(cfg *d2config.Configuration) (*Renderer, error) {
result := &Renderer{}
result := &Renderer{
GlyphPrinter: d2util.NewDebugPrinter(),
}
if cfg != nil {
config := cfg

View File

@ -11,7 +11,6 @@ import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2util"
)
// static check that we implement our interface
@ -208,7 +207,7 @@ func (s *ebitenSurface) handleStateEffect(opts *ebiten.DrawImageOptions) {
// DrawTextf renders the string to the surface with the given format string and a set of parameters
func (s *ebitenSurface) DrawTextf(format string, params ...interface{}) {
str := fmt.Sprintf(format, params...)
d2util.DebugPrinter.PrintAt(s.image, str, s.stateCurrent.x, s.stateCurrent.y)
s.Renderer().PrintAt(s.image, str, s.stateCurrent.x, s.stateCurrent.y)
}
// DrawLine draws a line