From f7fb35a4ec4fbd1ed31096bfbf92c400730adcba Mon Sep 17 00:00:00 2001 From: gravestench Date: Tue, 3 Nov 2020 19:19:59 +0000 Subject: [PATCH] removed debug printer singleton from d2util (#901) resolves #504 --- d2common/d2interface/renderer.go | 4 ++++ d2common/d2util/debug_print.go | 3 --- d2core/d2render/ebiten/ebiten_renderer.go | 7 ++++++- d2core/d2render/ebiten/ebiten_surface.go | 3 +-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/d2common/d2interface/renderer.go b/d2common/d2interface/renderer.go index 68f79308..1843bf0a 100644 --- a/d2common/d2interface/renderer.go +++ b/d2common/d2interface/renderer.go @@ -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) } diff --git a/d2common/d2util/debug_print.go b/d2common/d2util/debug_print.go index 31a5cc11..daa20386 100644 --- a/d2common/d2util/debug_print.go +++ b/d2common/d2util/debug_print.go @@ -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()) diff --git a/d2core/d2render/ebiten/ebiten_renderer.go b/d2core/d2render/ebiten/ebiten_renderer.go index 47948e79..68a87a1d 100644 --- a/d2core/d2render/ebiten/ebiten_renderer.go +++ b/d2core/d2render/ebiten/ebiten_renderer.go @@ -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 diff --git a/d2core/d2render/ebiten/ebiten_surface.go b/d2core/d2render/ebiten/ebiten_surface.go index 6e28784f..cf4ceca7 100644 --- a/d2core/d2render/ebiten/ebiten_surface.go +++ b/d2core/d2render/ebiten/ebiten_surface.go @@ -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