Beispiel #1
func (self *Surface) StrokeExtents() (left, top, right, bottom float64) {
	var x1, y1, x2, y2 float64
	px1 := (*C.double)(&x1)
	py1 := (*C.double)(&y1)
	px2 := (*C.double)(&x2)
	py2 := (*C.double)(&y2)
	C.cairo_stroke_extents(self.context, px1, py1, px2, py2)
	left = float64(*px1)
	top = float64(*py1)
	right = float64(*px2)
	bottom = float64(*py2)
Beispiel #2
func (self *Surface) StrokeExtents() (left, top, right, bottom float64) {
		(*C.double)(&left), (*C.double)(&top),
		(*C.double)(&right), (*C.double)(&bottom))
	return left, top, right, bottom
Beispiel #3
// StrokeExtents is a wrapper around cairo_stroke_extents().
func (v *Context) StrokeExtents() (x1, y1, x2, y2 float64) {
	var cx1, cy1, cx2, cy2 C.double
	C.cairo_stroke_extents(v.native(), &cx1, &cy1, &cx2, &cy2)
	return float64(cx1), float64(cy1), float64(cx2), float64(cy2)
Beispiel #4
//StrokeExtents computes a bounding box in user coordinates covering the area
//that would be affected, (the "inked" area), by a Stroke operation given the
//current path and stroke parameters.
//If the current path is empty, returns the empty rectangle ZR.
//Surface dimensions and clipping are not taken into account.
//Note that StrokeExtents must necessarily do more work to compute the precise
//inked areas in light of the stroke parameters, so PathExtents may be more
//desirable for sake of performance if non-inked path extents are desired.
//Originally cairo_stroke_extents.
func (c *Context) StrokeExtents() Rectangle {
	var x1, y1, x2, y2 C.double
	C.cairo_stroke_extents(c.c, &x1, &y1, &x2, &y2)
	return cRect(x1, y1, x2, y2)