themes and styles
This commit is contained in:
@@ -171,15 +171,23 @@ func (w *World) Render(drawer PrimitiveDrawer, params RenderParams) error {
|
||||
return err
|
||||
}
|
||||
|
||||
bg := color.RGBA{A: 255} // default black
|
||||
var bg color.Color = color.RGBA{A: 255} // default black
|
||||
|
||||
if params.Options != nil && params.Options.BackgroundColor != nil {
|
||||
if v, ok := params.Options.BackgroundColor.(color.RGBA); !ok {
|
||||
panic("Options.BackgroundColor is not color.RGBA type")
|
||||
} else {
|
||||
bg = v
|
||||
}
|
||||
} else {
|
||||
tc := w.Theme().BackgroundColor()
|
||||
if alphaNonZero(tc) {
|
||||
bg = tc
|
||||
}
|
||||
}
|
||||
|
||||
allowWrap := params.Options == nil || !params.Options.DisableWrapScroll
|
||||
|
||||
defer func() {
|
||||
if !params.Debug {
|
||||
return
|
||||
@@ -217,8 +225,6 @@ func (w *World) Render(drawer PrimitiveDrawer, params RenderParams) error {
|
||||
policy = *params.Options.Incremental
|
||||
}
|
||||
|
||||
allowWrap := params.Options == nil || !params.Options.DisableWrapScroll
|
||||
|
||||
// --- Try incremental path first when state is initialized and geometry matches ---
|
||||
dxPx, dyPx, derr := w.ComputePanShiftPx(params)
|
||||
if derr == nil {
|
||||
@@ -243,6 +249,7 @@ func (w *World) Render(drawer PrimitiveDrawer, params RenderParams) error {
|
||||
if len(toDraw) > 0 {
|
||||
for _, r := range toDraw {
|
||||
drawer.ClearRectTo(r.X, r.Y, r.W, r.H, bg)
|
||||
w.drawBackground(drawer, params, r)
|
||||
}
|
||||
|
||||
plan, err := w.buildRenderPlanStageA(params)
|
||||
@@ -295,6 +302,7 @@ func (w *World) Render(drawer PrimitiveDrawer, params RenderParams) error {
|
||||
|
||||
for _, r := range dirtyToDraw {
|
||||
drawer.ClearRectTo(r.X, r.Y, r.W, r.H, bg)
|
||||
w.drawBackground(drawer, params, r)
|
||||
}
|
||||
|
||||
// Additionally redraw a bounded portion of deferred dirty regions.
|
||||
@@ -328,6 +336,7 @@ func (w *World) Render(drawer PrimitiveDrawer, params RenderParams) error {
|
||||
}
|
||||
|
||||
drawer.ClearAllTo(bg)
|
||||
w.drawBackground(drawer, params, RectPx{X: 0, Y: 0, W: params.CanvasWidthPx(), H: params.CanvasHeightPx()})
|
||||
w.drawPlanSinglePass(drawer, plan, allowWrap)
|
||||
return w.CommitFullRedrawState(params)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user