Skip to content

Commit e1f8f14

Browse files
committed
moved canvas dimensions + label font settings to CanvasConfig
1 parent 31f1e9d commit e1f8f14

4 files changed

Lines changed: 18 additions & 17 deletions

File tree

canvas.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,22 @@ type Canvas struct {
1818
fixture_zbuf []bool // used for label placement to search for "free" pixels
1919
}
2020

21-
func (cv *Canvas) Init(width int, height int) error {
22-
cv.width = width
23-
cv.height = height
21+
func (cv *Canvas) Init(canvasConfig CanvasConfig) error {
22+
cv.width = canvasConfig.Width
23+
cv.height = canvasConfig.Height
2424

25-
cv.canvas = image.NewNRGBA(image.Rect(0, 0, width, height))
25+
cv.canvas = image.NewNRGBA(image.Rect(0, 0, canvasConfig.Width, canvasConfig.Height))
2626

27-
cv.fixture_zbuf = make([]bool, height*width)
27+
cv.fixture_zbuf = make([]bool, canvasConfig.Height*canvasConfig.Width)
2828

29-
cv.zbuffer = make([]float64, height*width)
29+
cv.zbuffer = make([]float64, canvasConfig.Height*canvasConfig.Width)
3030
for i := range cv.zbuffer {
3131
cv.zbuffer[i] = math.Inf(-1)
3232
}
3333

3434
var err error
3535

36-
cv.label_face, err = initFontFace(10, 300)
36+
cv.label_face, err = initFontFace(canvasConfig.LabelFontSize, canvasConfig.LabelDPI, canvasConfig.LabelFont)
3737
if err != nil {
3838
return err
3939
}

config.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
package rasterizer
22

33
type RasterizerConfig struct {
4+
CanvasConfig CanvasConfig
45
RenderLabels bool
56
Rotation Rotation
67
OverrideColors OverrideColorMap
78
}
9+
10+
type CanvasConfig struct {
11+
Width int
12+
Height int
13+
LabelFont []byte
14+
LabelDPI float64
15+
LabelFontSize float64
16+
}

label_drawer.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ import (
1515
"golang.org/x/image/math/fixed"
1616
)
1717

18-
var (
19-
//go:embed fonts/DejaVuSansMono.ttf
20-
fontBytes []byte
21-
)
22-
2318
type fontFace struct {
2419
face *font.Face
2520
ascent int
@@ -35,7 +30,7 @@ type padding struct {
3530
left int
3631
}
3732

38-
func initFontFace(size float64, dpi float64) (*fontFace, error) {
33+
func initFontFace(size float64, dpi float64, fontBytes []byte) (*fontFace, error) {
3934
parsed_font, err := opentype.Parse(fontBytes)
4035
if err != nil {
4136
return nil, fmt.Errorf("failed to parse font bytes: %v", err)

rasterizer.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,8 @@ func drawStageModel(mesh *MVRTypes.StageModel, canvas *Canvas, config Rasterizer
218218
}
219219

220220
func Draw(mesh *MVRTypes.StageModel, config RasterizerConfig) (*Canvas, error) {
221-
const width = 4000
222-
const height = 3000
223-
224221
canvas := &Canvas{}
225-
err := canvas.Init(width, height)
222+
err := canvas.Init(config.CanvasConfig)
226223

227224
if err != nil {
228225
return nil, err

0 commit comments

Comments
 (0)