/
paint.go
36 lines (32 loc) · 853 Bytes
/
paint.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package graphics
import (
"gioui.org/f32"
"gioui.org/layout"
"gioui.org/op/clip"
"gioui.org/op/paint"
"image"
"image/color"
)
func paintRect(width, height float32, gtx *layout.Context) {
var p clip.Path
p.Begin(gtx.Ops)
p.Move(f32.Point{X: 0, Y: 0})
p.Line(f32.Point{X: width, Y: 0})
p.Line(f32.Point{X: 0, Y: height})
p.Line(f32.Point{X: -width, Y: 0})
p.Line(f32.Point{X: 0, Y: -height})
p.End().Add(gtx.Ops)
}
func fill(gtx *layout.Context, col color.RGBA) {
cs := gtx.Constraints
d := image.Point{X: cs.Width.Min, Y: cs.Height.Min}
dr := f32.Rectangle{
Max: f32.Point{X: float32(d.X), Y: float32(d.Y)},
}
paint.ColorOp{Color: col}.Add(gtx.Ops)
paint.PaintOp{Rect: dr}.Add(gtx.Ops)
gtx.Dimensions = layout.Dimensions{Size: d}
}
func toPointF(p image.Point) f32.Point {
return f32.Point{X: float32(p.X), Y: float32(p.Y)}
}