Skip to content

Commit

Permalink
ebitenutil: use bitmapfont for the debug print
Browse files Browse the repository at this point in the history
This removes ebitenutil/internal/assets.
  • Loading branch information
hajimehoshi committed Jul 31, 2022
1 parent caa04c4 commit dad72b8
Show file tree
Hide file tree
Showing 8 changed files with 101 additions and 81 deletions.
20 changes: 16 additions & 4 deletions ebitenutil/debugprint.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,32 @@
// See the License for the specific language governing permissions and
// limitations under the License.

//go:generate go run gen.go
//go:generate go run github.com/hajimehoshi/file2byteslice/cmd/file2byteslice -input text.png -output text.png.go -package ebitenutil -var textPng

package ebitenutil

import (
"bytes"
"image"
_ "image/png"

"github.com/hajimehoshi/ebiten/v2"
"github.com/hajimehoshi/ebiten/v2/ebitenutil/internal/assets"
)

var (
debugPrintTextImage = ebiten.NewImageFromImage(assets.CreateTextImage())
debugPrintTextImage *ebiten.Image
debugPrintTextSubImages = map[rune]*ebiten.Image{}
)

func init() {
img, _, err := image.Decode(bytes.NewReader(textPng))
if err != nil {
panic(err)
}
debugPrintTextImage = ebiten.NewImageFromImage(img)
}

// DebugPrint draws the string str on the image on left top corner.
//
// The available runes are in U+0000 to U+00FF, which is C0 Controls and Basic Latin and C1 Controls and Latin-1 Supplement.
Expand All @@ -51,8 +63,8 @@ func drawDebugText(rt *ebiten.Image, str string, ox, oy int, shadow bool) {
w, _ := debugPrintTextImage.Size()
for _, c := range str {
const (
cw = assets.CharWidth
ch = assets.CharHeight
cw = 6
ch = 16
)
if c == '\n' {
x = 0
Expand Down
80 changes: 80 additions & 0 deletions ebitenutil/gen.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// Copyright 2022 The Ebitengine Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//go:build ignore
// +build ignore

package main

import (
"fmt"
"image"
"image/color"
"image/png"
"os"

"github.com/hajimehoshi/bitmapfont/v2"
"golang.org/x/image/font"
"golang.org/x/image/math/fixed"
)

func main() {
if err := run(); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
}

func run() error {
// These values are copied from an example in github.com/hajimehoshi/bitmapfont.
const (
charWidth = 6
lineHeight = 16

dotX = 4
dotY = 12
)

var lines []string
for j := 0; j < 8; j++ {
var line string
for i := 0; i < 32; i++ {
line += string(rune(i + j*32))
}
lines = append(lines, line)
}

d := font.Drawer{
Dst: image.NewRGBA(image.Rect(0, 0, charWidth*32, lineHeight*8)),
Src: image.NewUniform(color.White),
Face: bitmapfont.Face,
Dot: fixed.P(dotX, dotY),
}
for _, line := range lines {
d.Dot.X = fixed.I(dotX)
d.DrawString(line)
d.Dot.Y += fixed.I(lineHeight)
}

f, err := os.Create("text.png")
if err != nil {
return err
}
defer f.Close()

if err := png.Encode(f, d.Dst); err != nil {
return err
}

return nil
}
53 changes: 0 additions & 53 deletions ebitenutil/internal/assets/assets.go

This file was deleted.

19 changes: 0 additions & 19 deletions ebitenutil/internal/assets/license.md

This file was deleted.

Binary file removed ebitenutil/internal/assets/text.png
Binary file not shown.
5 changes: 0 additions & 5 deletions ebitenutil/internal/assets/textrgba.go

This file was deleted.

Binary file added ebitenutil/text.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions ebitenutil/text.png.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit dad72b8

Please sign in to comment.