mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-05 09:25:38 +00:00
ui: build paths as ops
Instead of allocating and constructing a clip path, store path data directly in op lists. Use separate op lists for cached text layout paths. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+1
-8
@@ -10,7 +10,6 @@ import (
|
||||
|
||||
"gioui.org/ui"
|
||||
"gioui.org/ui/draw"
|
||||
"gioui.org/ui/f32"
|
||||
"gioui.org/ui/gesture"
|
||||
"gioui.org/ui/key"
|
||||
"gioui.org/ui/layout"
|
||||
@@ -49,11 +48,6 @@ type Editor struct {
|
||||
clicker gesture.Click
|
||||
}
|
||||
|
||||
type linePath struct {
|
||||
path *draw.Path
|
||||
off f32.Point
|
||||
}
|
||||
|
||||
const (
|
||||
blinksPerSecond = 1
|
||||
maxBlinkDuration = 10 * time.Second
|
||||
@@ -170,10 +164,9 @@ func (e *Editor) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
path := e.Face.Path(str)
|
||||
ui.OpPush{}.Add(ops)
|
||||
ui.OpTransform{Transform: ui.Offset(lineOff)}.Add(ops)
|
||||
draw.OpClip{Path: path}.Add(ops)
|
||||
e.Face.Path(str).Add(ops)
|
||||
draw.OpDraw{Rect: toRectF(clip).Sub(lineOff)}.Add(ops)
|
||||
ui.OpPop{}.Add(ops)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user