mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-20 07:27:19 -05:00
parent
af1f0a0eda
commit
f7fb35a4ec
@ -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)
|
||||
}
|
||||
|
@ -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())
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user