The separated issue for this answer.
The usecase is simple. I render a text widget without knowing the final size of it.
This is the current state:
func CreateImg() *image.RGBA {
m3 := material3.New(widget.Hex(0x6750A4))
r := offscreen.NewRenderer(200, 100,
offscreen.WithTheme(m3),
offscreen.WithBackground(widget.RGBA8(30, 30, 50, 230)),
)
now := time.Now().Format("15:04:05")
label := primitives.Box(
primitives.Text(now).
FontSize(32).
Bold().
Color(widget.RGBA8(220, 220, 255, 255)),
).Padding(10)
r.Render(label)
return r.Image()
}
I suggest to have an offscreen render which fits. Seems like I was way to influenced by flutter but I thought about a widget tree, children render first...
I would love to have it changed to something similar as for fitting:
func CreateImg() *image.RGBA {
m3 := material3.New(widget.Hex(0x6750A4))
r := offscreen.NewRenderer(
offscreen.WithTheme(m3),
offscreen.WithBackground(widget.RGBA8(30, 30, 50, 230)),
)
now := time.Now().Format("15:04:05")
label := primitives.Box(
primitives.Text(now).
FontSize(32).
Bold().
Color(widget.RGBA8(220, 220, 255, 255)),
).Padding(10)
r.Render(label)
return r.Image()
}
Size would be optional, like:
func CreateImg() *image.RGBA {
m3 := material3.New(widget.Hex(0x6750A4))
r := offscreen.NewRenderer(
offscreen.WithSize(200, 100),
offscreen.WithTheme(m3),
offscreen.WithBackground(widget.RGBA8(30, 30, 50, 230)),
)
now := time.Now().Format("15:04:05")
label := primitives.Box(
primitives.Text(now).
FontSize(32).
Bold().
Color(widget.RGBA8(220, 220, 255, 255)),
).Padding(10)
r.Render(label)
return r.Image()
}
The separated issue for this answer.
The usecase is simple. I render a text widget without knowing the final size of it.
This is the current state:
I suggest to have an offscreen render which fits. Seems like I was way to influenced by flutter but I thought about a widget tree, children render first...
I would love to have it changed to something similar as for fitting:
Size would be optional, like: