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:
Elias Naur
2019-06-02 16:43:28 +02:00
parent 9f58ed0fea
commit 1e38eec0ab
15 changed files with 248 additions and 160 deletions
+1 -2
View File
@@ -100,11 +100,10 @@ func (l Label) Layout(ops *ui.Ops, cs layout.Constraints) layout.Dimens {
if !ok {
break
}
path := l.Face.Path(str)
lclip := toRectF(clip).Sub(off)
ui.OpPush{}.Add(ops)
ui.OpTransform{Transform: ui.Offset(off)}.Add(ops)
draw.OpClip{Path: path}.Add(ops)
l.Face.Path(str).Add(ops)
draw.OpDraw{Rect: lclip}.Add(ops)
ui.OpPop{}.Add(ops)
}