func NewSurface(s uintptr, needsRef bool) *Surface {
	surface := WrapSurface(s)
	if needsRef {
		surface.reference()
	}
	runtime.SetFinalizer(surface, (*Surface).destroy)
	return surface
}
func NewSurface(s uintptr, needsRef bool) *Surface {
	surface := WrapSurface(s)
	if needsRef {
		surface.reference()
	}
	runtime.SetFinalizer(surface, (*Surface).destroy)
	return surface
}
func NewSurface ( s uintptr , needsRef bool ) * Surface { surface := WrapSurface ( s ) if needsRef { surface . reference ( ) } runtime . SetFinalizer ( surface , ( * Surface ) . destroy ) return surface }
// NewSurface creates a gotk3 cairo Surface from a pointer to a
// C cairo_surface_t.  This is primarily designed for use with other
// gotk3 packages and should be avoided by applications.
NewSurface creates a gotk3 cairo Surface from a pointer to a C cairo_surface_t . This is primarily designed for use with other gotk3 packages and should be avoided by applications .