From e67ed84ad93b128cd4afe58b012b0e3889a34b66 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 16 Dec 2015 14:03:47 -0500 Subject: Did some build fixes. --- draw.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'draw.go') diff --git a/draw.go b/draw.go index 4d09bd5..27ed8ba 100644 --- a/draw.go +++ b/draw.go @@ -32,14 +32,35 @@ import "C" // dp.Context.Clip(p) // // ... // p.Free() // when done with the path +// +// A Path also defines its fill mode. (This should ideally be a fill +// parameter, but some implementations prevent it.) +// TODO talk about fill modes type Path struct { p *C.uiDrawPath } -// NewPath creates a new Path. -func NewPath() *Path { +// TODO +type FillMode uint +const ( + Winding FillMode = iota + Alternate +) + +// NewPath creates a new Path with the given fill mode. +func NewPath(fillMode FillMode) *Path { + var fm C.uiDrawFillMode + + switch fillMode { + case Winding: + fm = C.uiDrawFillModeWinding + case Alternate: + fm = C.uiDrawFillModeAlternate + default: + panic("invalid fill mode passed to ui.NewPath()") + } return &Path{ - p: C.uiDrawNewPath(), + p: C.uiDrawNewPath(fm), } } -- cgit v1.2.3