
;; Objects for namespace Gsk

(define-object BroadwayRendererClass
  (in-module "Gsk")
  (c-name "GskBroadwayRendererClass")
  (gtype-id "GSK_TYPE_BROADWAY_RENDERER_CLASS")
)

(define-object CairoRendererClass
  (in-module "Gsk")
  (c-name "GskCairoRendererClass")
  (gtype-id "GSK_TYPE_CAIRO_RENDERER_CLASS")
)

(define-object ColorStop
  (in-module "Gsk")
  (c-name "GskColorStop")
  (gtype-id "GSK_TYPE_COLOR_STOP")
)

(define-object ComponentTransfer
  (in-module "Gsk")
  (c-name "GskComponentTransfer")
  (gtype-id "GSK_TYPE_COMPONENT_TRANSFER")
)

(define-object GLRendererClass
  (in-module "Gsk")
  (c-name "GskGLRendererClass")
  (gtype-id "GSK_TYPE_GL_RENDERER_CLASS")
)

(define-object GLShaderClass
  (in-module "Gsk")
  (c-name "GskGLShaderClass")
  (gtype-id "GSK_TYPE_GL_SHADER_CLASS")
)

(define-object ParseLocation
  (in-module "Gsk")
  (c-name "GskParseLocation")
  (gtype-id "GSK_TYPE_PARSE_LOCATION")
)

(define-object Path
  (in-module "Gsk")
  (c-name "GskPath")
  (gtype-id "GSK_TYPE_PATH")
)

(define-object PathBuilder
  (in-module "Gsk")
  (c-name "GskPathBuilder")
  (gtype-id "GSK_TYPE_PATH_BUILDER")
)

(define-object PathMeasure
  (in-module "Gsk")
  (c-name "GskPathMeasure")
  (gtype-id "GSK_TYPE_PATH_MEASURE")
)

(define-object PathPoint
  (in-module "Gsk")
  (c-name "GskPathPoint")
  (gtype-id "GSK_TYPE_PATH_POINT")
)

(define-object RenderReplay
  (in-module "Gsk")
  (c-name "GskRenderReplay")
  (gtype-id "GSK_TYPE_RENDER_REPLAY")
)

(define-object RendererClass
  (in-module "Gsk")
  (c-name "GskRendererClass")
  (gtype-id "GSK_TYPE_RENDERER_CLASS")
)

(define-object RoundedRect
  (in-module "Gsk")
  (c-name "GskRoundedRect")
  (gtype-id "GSK_TYPE_ROUNDED_RECT")
)

(define-object ShaderArgsBuilder
  (in-module "Gsk")
  (c-name "GskShaderArgsBuilder")
  (gtype-id "GSK_TYPE_SHADER_ARGS_BUILDER")
)

(define-object Shadow
  (in-module "Gsk")
  (c-name "GskShadow")
  (gtype-id "GSK_TYPE_SHADOW")
)

(define-object Stroke
  (in-module "Gsk")
  (c-name "GskStroke")
  (gtype-id "GSK_TYPE_STROKE")
)

(define-object Transform
  (in-module "Gsk")
  (c-name "GskTransform")
  (gtype-id "GSK_TYPE_TRANSFORM")
)

(define-object VulkanRendererClass
  (in-module "Gsk")
  (c-name "GskVulkanRendererClass")
  (gtype-id "GSK_TYPE_VULKAN_RENDERER_CLASS")
)

(define-object BlendNode
  (in-module "Gsk")
  (c-name "GskBlendNode")
  (gtype-id "GSK_TYPE_BLEND_NODE")
)

(define-object BlurNode
  (in-module "Gsk")
  (c-name "GskBlurNode")
  (gtype-id "GSK_TYPE_BLUR_NODE")
)

(define-object BorderNode
  (in-module "Gsk")
  (c-name "GskBorderNode")
  (gtype-id "GSK_TYPE_BORDER_NODE")
)

(define-object BroadwayRenderer
  (in-module "Gsk")
  (c-name "GskBroadwayRenderer")
  (gtype-id "GSK_TYPE_BROADWAY_RENDERER")
)

(define-object CairoNode
  (in-module "Gsk")
  (c-name "GskCairoNode")
  (gtype-id "GSK_TYPE_CAIRO_NODE")
)

(define-object CairoRenderer
  (in-module "Gsk")
  (c-name "GskCairoRenderer")
  (gtype-id "GSK_TYPE_CAIRO_RENDERER")
)

(define-object ClipNode
  (in-module "Gsk")
  (c-name "GskClipNode")
  (gtype-id "GSK_TYPE_CLIP_NODE")
)

(define-object ColorMatrixNode
  (in-module "Gsk")
  (c-name "GskColorMatrixNode")
  (gtype-id "GSK_TYPE_COLOR_MATRIX_NODE")
)

(define-object ColorNode
  (in-module "Gsk")
  (c-name "GskColorNode")
  (gtype-id "GSK_TYPE_COLOR_NODE")
)

(define-object ComponentTransferNode
  (in-module "Gsk")
  (c-name "GskComponentTransferNode")
  (gtype-id "GSK_TYPE_COMPONENT_TRANSFER_NODE")
)

(define-object CompositeNode
  (in-module "Gsk")
  (c-name "GskCompositeNode")
  (gtype-id "GSK_TYPE_COMPOSITE_NODE")
)

(define-object ConicGradientNode
  (in-module "Gsk")
  (c-name "GskConicGradientNode")
  (gtype-id "GSK_TYPE_CONIC_GRADIENT_NODE")
)

(define-object ContainerNode
  (in-module "Gsk")
  (c-name "GskContainerNode")
  (gtype-id "GSK_TYPE_CONTAINER_NODE")
)

(define-object CopyNode
  (in-module "Gsk")
  (c-name "GskCopyNode")
  (gtype-id "GSK_TYPE_COPY_NODE")
)

(define-object CrossFadeNode
  (in-module "Gsk")
  (c-name "GskCrossFadeNode")
  (gtype-id "GSK_TYPE_CROSS_FADE_NODE")
)

(define-object DebugNode
  (in-module "Gsk")
  (c-name "GskDebugNode")
  (gtype-id "GSK_TYPE_DEBUG_NODE")
)

(define-object FillNode
  (in-module "Gsk")
  (c-name "GskFillNode")
  (gtype-id "GSK_TYPE_FILL_NODE")
)

(define-object GLRenderer
  (in-module "Gsk")
  (c-name "GskGLRenderer")
  (gtype-id "GSK_TYPE_GL_RENDERER")
)

(define-object GLShader
  (in-module "Gsk")
  (c-name "GskGLShader")
  (gtype-id "GSK_TYPE_GL_SHADER")
)

(define-object GLShaderNode
  (in-module "Gsk")
  (c-name "GskGLShaderNode")
  (gtype-id "GSK_TYPE_GL_SHADER_NODE")
)

(define-object InsetShadowNode
  (in-module "Gsk")
  (c-name "GskInsetShadowNode")
  (gtype-id "GSK_TYPE_INSET_SHADOW_NODE")
)

(define-object IsolationNode
  (in-module "Gsk")
  (c-name "GskIsolationNode")
  (gtype-id "GSK_TYPE_ISOLATION_NODE")
)

(define-object LinearGradientNode
  (in-module "Gsk")
  (c-name "GskLinearGradientNode")
  (gtype-id "GSK_TYPE_LINEAR_GRADIENT_NODE")
)

(define-object MaskNode
  (in-module "Gsk")
  (c-name "GskMaskNode")
  (gtype-id "GSK_TYPE_MASK_NODE")
)

(define-object NglRenderer
  (in-module "Gsk")
  (c-name "GskNglRenderer")
  (gtype-id "GSK_TYPE_NGL_RENDERER")
)

(define-object OpacityNode
  (in-module "Gsk")
  (c-name "GskOpacityNode")
  (gtype-id "GSK_TYPE_OPACITY_NODE")
)

(define-object OutsetShadowNode
  (in-module "Gsk")
  (c-name "GskOutsetShadowNode")
  (gtype-id "GSK_TYPE_OUTSET_SHADOW_NODE")
)

(define-object PasteNode
  (in-module "Gsk")
  (c-name "GskPasteNode")
  (gtype-id "GSK_TYPE_PASTE_NODE")
)

(define-object RadialGradientNode
  (in-module "Gsk")
  (c-name "GskRadialGradientNode")
  (gtype-id "GSK_TYPE_RADIAL_GRADIENT_NODE")
)

(define-object RenderNode
  (in-module "Gsk")
  (c-name "GskRenderNode")
  (gtype-id "GSK_TYPE_RENDER_NODE")
)

(define-object Renderer
  (in-module "Gsk")
  (c-name "GskRenderer")
  (gtype-id "GSK_TYPE_RENDERER")
)

(define-object RepeatNode
  (in-module "Gsk")
  (c-name "GskRepeatNode")
  (gtype-id "GSK_TYPE_REPEAT_NODE")
)

(define-object RepeatingLinearGradientNode
  (in-module "Gsk")
  (c-name "GskRepeatingLinearGradientNode")
  (gtype-id "GSK_TYPE_REPEATING_LINEAR_GRADIENT_NODE")
)

(define-object RepeatingRadialGradientNode
  (in-module "Gsk")
  (c-name "GskRepeatingRadialGradientNode")
  (gtype-id "GSK_TYPE_REPEATING_RADIAL_GRADIENT_NODE")
)

(define-object RoundedClipNode
  (in-module "Gsk")
  (c-name "GskRoundedClipNode")
  (gtype-id "GSK_TYPE_ROUNDED_CLIP_NODE")
)

(define-object ShadowNode
  (in-module "Gsk")
  (c-name "GskShadowNode")
  (gtype-id "GSK_TYPE_SHADOW_NODE")
)

(define-object StrokeNode
  (in-module "Gsk")
  (c-name "GskStrokeNode")
  (gtype-id "GSK_TYPE_STROKE_NODE")
)

(define-object SubsurfaceNode
  (in-module "Gsk")
  (c-name "GskSubsurfaceNode")
  (gtype-id "GSK_TYPE_SUBSURFACE_NODE")
)

(define-object TextNode
  (in-module "Gsk")
  (c-name "GskTextNode")
  (gtype-id "GSK_TYPE_TEXT_NODE")
)

(define-object TextureNode
  (in-module "Gsk")
  (c-name "GskTextureNode")
  (gtype-id "GSK_TYPE_TEXTURE_NODE")
)

(define-object TextureScaleNode
  (in-module "Gsk")
  (c-name "GskTextureScaleNode")
  (gtype-id "GSK_TYPE_TEXTURE_SCALE_NODE")
)

(define-object TransformNode
  (in-module "Gsk")
  (c-name "GskTransformNode")
  (gtype-id "GSK_TYPE_TRANSFORM_NODE")
)

(define-object VulkanRenderer
  (in-module "Gsk")
  (c-name "GskVulkanRenderer")
  (gtype-id "GSK_TYPE_VULKAN_RENDERER")
)


;; Functions for namespace Gsk

(define-function gsk_component_transfer_equal
  (c-name "gsk_component_transfer_equal")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "self")
    '("gconstpointer" "other")
  )
)

(define-function gsk_path_parse
  (c-name "gsk_path_parse")
  (return-type "GskPath*")
  (parameters
    '("const-char*" "string")
  )
)

(define-function gsk_rect_snap_get_direction
  (c-name "gsk_rect_snap_get_direction")
  (return-type "GskSnapDirection")
  (parameters
    '("GskRectSnap" "snap")
    '("GskSide" "side")
  )
)

(define-function gsk_rect_snap_new
  (c-name "gsk_rect_snap_new")
  (return-type "GskRectSnap")
  (parameters
    '("GskSnapDirection" "top")
    '("GskSnapDirection" "right")
    '("GskSnapDirection" "bottom")
    '("GskSnapDirection" "left")
  )
)

(define-function gsk_serialization_error_quark
  (c-name "gsk_serialization_error_quark")
  (return-type "GQuark")
)

(define-function gsk_stroke_equal
  (c-name "gsk_stroke_equal")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "stroke1")
    '("gconstpointer" "stroke2")
  )
)

(define-function gsk_transform_parse
  (c-name "gsk_transform_parse")
  (return-type "gboolean")
  (parameters
    '("const-char*" "string")
    '("GskTransform**" "out_transform")
  )
)

(define-function gsk_value_dup_render_node
  (c-name "gsk_value_dup_render_node")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gsk_value_get_render_node
  (c-name "gsk_value_get_render_node")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GValue*" "value")
  )
)

(define-function gsk_value_set_render_node
  (c-name "gsk_value_set_render_node")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GskRenderNode*" "node")
  )
)

(define-function gsk_value_take_render_node
  (c-name "gsk_value_take_render_node")
  (return-type "none")
  (parameters
    '("GValue*" "value")
    '("GskRenderNode*" "node")
  )
)

(define-function gsk_serialization_error_quark
  (c-name "gsk_serialization_error_quark")
  (return-type "GQuark")
)

(define-function gsk_component_transfer_equal
  (c-name "gsk_component_transfer_equal")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "self")
    '("gconstpointer" "other")
  )
)

(define-method copy
  (of-object "GskComponentTransfer")
  (c-name "gsk_component_transfer_copy")
  (return-type "GskComponentTransfer*")
)

(define-method free
  (of-object "GskComponentTransfer")
  (c-name "gsk_component_transfer_free")
  (return-type "none")
)

(define-function gsk_component_transfer_new_discrete
  (c-name "gsk_component_transfer_new_discrete")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
  (parameters
    '("guint" "n")
    '("float*" "values")
  )
)

(define-function gsk_component_transfer_new_gamma
  (c-name "gsk_component_transfer_new_gamma")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
  (parameters
    '("float" "amp")
    '("float" "exp")
    '("float" "ofs")
  )
)

(define-function gsk_component_transfer_new_identity
  (c-name "gsk_component_transfer_new_identity")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
)

(define-function gsk_component_transfer_new_levels
  (c-name "gsk_component_transfer_new_levels")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
  (parameters
    '("float" "n")
  )
)

(define-function gsk_component_transfer_new_linear
  (c-name "gsk_component_transfer_new_linear")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
  (parameters
    '("float" "m")
    '("float" "b")
  )
)

(define-function gsk_component_transfer_new_table
  (c-name "gsk_component_transfer_new_table")
  (is-constructor-of "GskComponentTransfer")
  (return-type "GskComponentTransfer*")
  (parameters
    '("guint" "n")
    '("float*" "values")
  )
)

(define-function gsk_path_parse
  (c-name "gsk_path_parse")
  (return-type "GskPath*")
  (parameters
    '("const-char*" "string")
  )
)

(define-method equal
  (of-object "GskPath")
  (c-name "gsk_path_equal")
  (return-type "gboolean")
  (parameters
    '("const-GskPath*" "path2")
  )
)

(define-method foreach
  (of-object "GskPath")
  (c-name "gsk_path_foreach")
  (return-type "gboolean")
  (parameters
    '("GskPathForeachFlags" "flags")
    '("GskPathForeachFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method foreach_intersection
  (of-object "GskPath")
  (c-name "gsk_path_foreach_intersection")
  (return-type "gboolean")
  (parameters
    '("GskPath*" "path2")
    '("GskPathIntersectionFunc" "func")
    '("gpointer" "user_data")
  )
)

(define-method get_bounds
  (of-object "GskPath")
  (c-name "gsk_path_get_bounds")
  (return-type "gboolean")
  (parameters
    '("graphene_rect_t*" "bounds")
  )
)

(define-method get_closest_point
  (of-object "GskPath")
  (c-name "gsk_path_get_closest_point")
  (return-type "gboolean")
  (parameters
    '("const-graphene_point_t*" "point")
    '("float" "threshold")
    '("GskPathPoint*" "result")
    '("float*" "distance")
  )
)

(define-method get_end_point
  (of-object "GskPath")
  (c-name "gsk_path_get_end_point")
  (return-type "gboolean")
  (parameters
    '("GskPathPoint*" "result")
  )
)

(define-method get_next
  (of-object "GskPath")
  (c-name "gsk_path_get_next")
  (return-type "gboolean")
  (parameters
    '("GskPathPoint*" "point")
  )
)

(define-method get_previous
  (of-object "GskPath")
  (c-name "gsk_path_get_previous")
  (return-type "gboolean")
  (parameters
    '("GskPathPoint*" "point")
  )
)

(define-method get_start_point
  (of-object "GskPath")
  (c-name "gsk_path_get_start_point")
  (return-type "gboolean")
  (parameters
    '("GskPathPoint*" "result")
  )
)

(define-method get_stroke_bounds
  (of-object "GskPath")
  (c-name "gsk_path_get_stroke_bounds")
  (return-type "gboolean")
  (parameters
    '("const-GskStroke*" "stroke")
    '("graphene_rect_t*" "bounds")
  )
)

(define-method get_tight_bounds
  (of-object "GskPath")
  (c-name "gsk_path_get_tight_bounds")
  (return-type "gboolean")
  (parameters
    '("graphene_rect_t*" "bounds")
  )
)

(define-method in_fill
  (of-object "GskPath")
  (c-name "gsk_path_in_fill")
  (return-type "gboolean")
  (parameters
    '("const-graphene_point_t*" "point")
    '("GskFillRule" "fill_rule")
  )
)

(define-method is_closed
  (of-object "GskPath")
  (c-name "gsk_path_is_closed")
  (return-type "gboolean")
)

(define-method is_empty
  (of-object "GskPath")
  (c-name "gsk_path_is_empty")
  (return-type "gboolean")
)

(define-method print
  (of-object "GskPath")
  (c-name "gsk_path_print")
  (return-type "none")
  (parameters
    '("GString*" "string")
  )
)

(define-method ref
  (of-object "GskPath")
  (c-name "gsk_path_ref")
  (return-type "GskPath*")
)

(define-method to_cairo
  (of-object "GskPath")
  (c-name "gsk_path_to_cairo")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-method to_string
  (of-object "GskPath")
  (c-name "gsk_path_to_string")
  (return-type "char*")
)

(define-method unref
  (of-object "GskPath")
  (c-name "gsk_path_unref")
  (return-type "none")
)

(define-method add_cairo_path
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_cairo_path")
  (return-type "none")
  (parameters
    '("const-cairo_path_t*" "path")
  )
)

(define-method add_circle
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_circle")
  (return-type "none")
  (parameters
    '("const-graphene_point_t*" "center")
    '("float" "radius")
  )
)

(define-method add_layout
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_layout")
  (return-type "none")
  (parameters
    '("PangoLayout*" "layout")
  )
)

(define-method add_path
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_path")
  (return-type "none")
  (parameters
    '("GskPath*" "path")
  )
)

(define-method add_rect
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_rect")
  (return-type "none")
  (parameters
    '("const-graphene_rect_t*" "rect")
  )
)

(define-method add_reverse_path
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_reverse_path")
  (return-type "none")
  (parameters
    '("GskPath*" "path")
  )
)

(define-method add_rounded_rect
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_rounded_rect")
  (return-type "none")
  (parameters
    '("const-GskRoundedRect*" "rect")
  )
)

(define-method add_segment
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_add_segment")
  (return-type "none")
  (parameters
    '("GskPath*" "path")
    '("const-GskPathPoint*" "start")
    '("const-GskPathPoint*" "end")
  )
)

(define-method arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_arc_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
  )
)

(define-method close
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_close")
  (return-type "none")
)

(define-method conic_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_conic_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "weight")
  )
)

(define-method cubic_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_cubic_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "x3")
    '("float" "y3")
  )
)

(define-method free_to_path
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_free_to_path")
  (return-type "GskPath*")
)

(define-method get_current_point
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_get_current_point")
  (return-type "const-graphene_point_t*")
)

(define-method html_arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_html_arc_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "radius")
  )
)

(define-method line_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_line_to")
  (return-type "none")
  (parameters
    '("float" "x")
    '("float" "y")
  )
)

(define-method move_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_move_to")
  (return-type "none")
  (parameters
    '("float" "x")
    '("float" "y")
  )
)

(define-method quad_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_quad_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
  )
)

(define-method ref
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_ref")
  (return-type "GskPathBuilder*")
)

(define-method rel_arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_arc_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
  )
)

(define-method rel_conic_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_conic_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "weight")
  )
)

(define-method rel_cubic_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_cubic_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "x3")
    '("float" "y3")
  )
)

(define-method rel_html_arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_html_arc_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
    '("float" "radius")
  )
)

(define-method rel_line_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_line_to")
  (return-type "none")
  (parameters
    '("float" "x")
    '("float" "y")
  )
)

(define-method rel_move_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_move_to")
  (return-type "none")
  (parameters
    '("float" "x")
    '("float" "y")
  )
)

(define-method rel_quad_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_quad_to")
  (return-type "none")
  (parameters
    '("float" "x1")
    '("float" "y1")
    '("float" "x2")
    '("float" "y2")
  )
)

(define-method rel_svg_arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_rel_svg_arc_to")
  (return-type "none")
  (parameters
    '("float" "rx")
    '("float" "ry")
    '("float" "x_axis_rotation")
    '("gboolean" "large_arc")
    '("gboolean" "positive_sweep")
    '("float" "x")
    '("float" "y")
  )
)

(define-method svg_arc_to
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_svg_arc_to")
  (return-type "none")
  (parameters
    '("float" "rx")
    '("float" "ry")
    '("float" "x_axis_rotation")
    '("gboolean" "large_arc")
    '("gboolean" "positive_sweep")
    '("float" "x")
    '("float" "y")
  )
)

(define-method to_path
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_to_path")
  (return-type "GskPath*")
)

(define-method unref
  (of-object "GskPathBuilder")
  (c-name "gsk_path_builder_unref")
  (return-type "none")
)

(define-function gsk_path_builder_new
  (c-name "gsk_path_builder_new")
  (is-constructor-of "GskPathBuilder")
  (return-type "GskPathBuilder*")
)

(define-method get_length
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_get_length")
  (return-type "float")
)

(define-method get_path
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_get_path")
  (return-type "GskPath*")
)

(define-method get_point
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_get_point")
  (return-type "gboolean")
  (parameters
    '("float" "distance")
    '("GskPathPoint*" "result")
  )
)

(define-method get_tolerance
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_get_tolerance")
  (return-type "float")
)

(define-method ref
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_ref")
  (return-type "GskPathMeasure*")
)

(define-method unref
  (of-object "GskPathMeasure")
  (c-name "gsk_path_measure_unref")
  (return-type "none")
)

(define-function gsk_path_measure_new
  (c-name "gsk_path_measure_new")
  (is-constructor-of "GskPathMeasure")
  (return-type "GskPathMeasure*")
  (parameters
    '("GskPath*" "path")
  )
)

(define-function gsk_path_measure_new_with_tolerance
  (c-name "gsk_path_measure_new_with_tolerance")
  (is-constructor-of "GskPathMeasure")
  (return-type "GskPathMeasure*")
  (parameters
    '("GskPath*" "path")
    '("float" "tolerance")
  )
)

(define-method compare
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_compare")
  (return-type "int")
  (parameters
    '("const-GskPathPoint*" "point2")
  )
)

(define-method copy
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_copy")
  (return-type "GskPathPoint*")
)

(define-method equal
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_equal")
  (return-type "gboolean")
  (parameters
    '("const-GskPathPoint*" "point2")
  )
)

(define-method free
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_free")
  (return-type "none")
)

(define-method get_curvature
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_get_curvature")
  (return-type "float")
  (parameters
    '("GskPath*" "path")
    '("GskPathDirection" "direction")
    '("graphene_point_t*" "center")
  )
)

(define-method get_distance
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_get_distance")
  (return-type "float")
  (parameters
    '("GskPathMeasure*" "measure")
  )
)

(define-method get_position
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_get_position")
  (return-type "none")
  (parameters
    '("GskPath*" "path")
    '("graphene_point_t*" "position")
  )
)

(define-method get_rotation
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_get_rotation")
  (return-type "float")
  (parameters
    '("GskPath*" "path")
    '("GskPathDirection" "direction")
  )
)

(define-method get_tangent
  (of-object "GskPathPoint")
  (c-name "gsk_path_point_get_tangent")
  (return-type "none")
  (parameters
    '("GskPath*" "path")
    '("GskPathDirection" "direction")
    '("graphene_vec2_t*" "tangent")
  )
)

(define-method default
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_default")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "node")
  )
)

(define-method filter_font
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_filter_font")
  (return-type "PangoFont*")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-method filter_node
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_filter_node")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "node")
  )
)

(define-method filter_texture
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_filter_texture")
  (return-type "GdkTexture*")
  (parameters
    '("GdkTexture*" "texture")
  )
)

(define-method free
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_free")
  (return-type "none")
)

(define-method set_font_filter
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_set_font_filter")
  (return-type "none")
  (parameters
    '("GskRenderReplayFontFilter" "filter")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_destroy")
  )
)

(define-method set_node_filter
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_set_node_filter")
  (return-type "none")
  (parameters
    '("GskRenderReplayNodeFilter" "filter")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_destroy")
  )
)

(define-method set_texture_filter
  (of-object "GskRenderReplay")
  (c-name "gsk_render_replay_set_texture_filter")
  (return-type "none")
  (parameters
    '("GskRenderReplayTextureFilter" "filter")
    '("gpointer" "user_data")
    '("GDestroyNotify" "user_destroy")
  )
)

(define-function gsk_render_replay_new
  (c-name "gsk_render_replay_new")
  (is-constructor-of "GskRenderReplay")
  (return-type "GskRenderReplay*")
)

(define-method contains_point
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_contains_point")
  (return-type "gboolean")
  (parameters
    '("const-graphene_point_t*" "point")
  )
)

(define-method contains_rect
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_contains_rect")
  (return-type "gboolean")
  (parameters
    '("const-graphene_rect_t*" "rect")
  )
)

(define-method init
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_init")
  (return-type "GskRoundedRect*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_size_t*" "top_left")
    '("const-graphene_size_t*" "top_right")
    '("const-graphene_size_t*" "bottom_right")
    '("const-graphene_size_t*" "bottom_left")
  )
)

(define-method init_copy
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_init_copy")
  (return-type "GskRoundedRect*")
  (parameters
    '("const-GskRoundedRect*" "src")
  )
)

(define-method init_from_rect
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_init_from_rect")
  (return-type "GskRoundedRect*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("float" "radius")
  )
)

(define-method intersects_rect
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_intersects_rect")
  (return-type "gboolean")
  (parameters
    '("const-graphene_rect_t*" "rect")
  )
)

(define-method is_rectilinear
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_is_rectilinear")
  (return-type "gboolean")
)

(define-method normalize
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_normalize")
  (return-type "GskRoundedRect*")
)

(define-method offset
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_offset")
  (return-type "GskRoundedRect*")
  (parameters
    '("float" "dx")
    '("float" "dy")
  )
)

(define-method shrink
  (of-object "GskRoundedRect")
  (c-name "gsk_rounded_rect_shrink")
  (return-type "GskRoundedRect*")
  (parameters
    '("float" "top")
    '("float" "right")
    '("float" "bottom")
    '("float" "left")
  )
)

(define-method free_to_args
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_free_to_args")
  (return-type "GBytes*")
)

(define-method ref
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_ref")
  (return-type "GskShaderArgsBuilder*")
)

(define-method set_bool
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_bool")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("gboolean" "value")
  )
)

(define-method set_float
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_float")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("float" "value")
  )
)

(define-method set_int
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_int")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("gint32" "value")
  )
)

(define-method set_uint
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_uint")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("guint32" "value")
  )
)

(define-method set_vec2
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_vec2")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("const-graphene_vec2_t*" "value")
  )
)

(define-method set_vec3
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_vec3")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("const-graphene_vec3_t*" "value")
  )
)

(define-method set_vec4
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_set_vec4")
  (return-type "none")
  (parameters
    '("int" "idx")
    '("const-graphene_vec4_t*" "value")
  )
)

(define-method to_args
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_to_args")
  (return-type "GBytes*")
)

(define-method unref
  (of-object "GskShaderArgsBuilder")
  (c-name "gsk_shader_args_builder_unref")
  (return-type "none")
)

(define-function gsk_shader_args_builder_new
  (c-name "gsk_shader_args_builder_new")
  (is-constructor-of "GskShaderArgsBuilder")
  (return-type "GskShaderArgsBuilder*")
  (parameters
    '("GskGLShader*" "shader")
    '("GBytes*" "initial_values")
  )
)

(define-function gsk_stroke_equal
  (c-name "gsk_stroke_equal")
  (return-type "gboolean")
  (parameters
    '("gconstpointer" "stroke1")
    '("gconstpointer" "stroke2")
  )
)

(define-method copy
  (of-object "GskStroke")
  (c-name "gsk_stroke_copy")
  (return-type "GskStroke*")
)

(define-method free
  (of-object "GskStroke")
  (c-name "gsk_stroke_free")
  (return-type "none")
)

(define-method get_dash
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_dash")
  (return-type "const-float*")
  (parameters
    '("gsize*" "n_dash")
  )
)

(define-method get_dash_offset
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_dash_offset")
  (return-type "float")
)

(define-method get_line_cap
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_line_cap")
  (return-type "GskLineCap")
)

(define-method get_line_join
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_line_join")
  (return-type "GskLineJoin")
)

(define-method get_line_width
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_line_width")
  (return-type "float")
)

(define-method get_miter_limit
  (of-object "GskStroke")
  (c-name "gsk_stroke_get_miter_limit")
  (return-type "float")
)

(define-method set_dash
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_dash")
  (return-type "none")
  (parameters
    '("const-float*" "dash")
    '("gsize" "n_dash")
  )
)

(define-method set_dash_offset
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_dash_offset")
  (return-type "none")
  (parameters
    '("float" "offset")
  )
)

(define-method set_line_cap
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_line_cap")
  (return-type "none")
  (parameters
    '("GskLineCap" "line_cap")
  )
)

(define-method set_line_join
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_line_join")
  (return-type "none")
  (parameters
    '("GskLineJoin" "line_join")
  )
)

(define-method set_line_width
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_line_width")
  (return-type "none")
  (parameters
    '("float" "line_width")
  )
)

(define-method set_miter_limit
  (of-object "GskStroke")
  (c-name "gsk_stroke_set_miter_limit")
  (return-type "none")
  (parameters
    '("float" "limit")
  )
)

(define-method to_cairo
  (of-object "GskStroke")
  (c-name "gsk_stroke_to_cairo")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-function gsk_stroke_new
  (c-name "gsk_stroke_new")
  (is-constructor-of "GskStroke")
  (return-type "GskStroke*")
  (parameters
    '("float" "line_width")
  )
)

(define-function gsk_transform_parse
  (c-name "gsk_transform_parse")
  (return-type "gboolean")
  (parameters
    '("const-char*" "string")
    '("GskTransform**" "out_transform")
  )
)

(define-method equal
  (of-object "GskTransform")
  (c-name "gsk_transform_equal")
  (return-type "gboolean")
  (parameters
    '("GskTransform*" "second")
  )
)

(define-method get_category
  (of-object "GskTransform")
  (c-name "gsk_transform_get_category")
  (return-type "GskTransformCategory")
)

(define-method invert
  (of-object "GskTransform")
  (c-name "gsk_transform_invert")
  (return-type "GskTransform*")
)

(define-method matrix
  (of-object "GskTransform")
  (c-name "gsk_transform_matrix")
  (return-type "GskTransform*")
  (parameters
    '("const-graphene_matrix_t*" "matrix")
  )
)

(define-method matrix_2d
  (of-object "GskTransform")
  (c-name "gsk_transform_matrix_2d")
  (return-type "GskTransform*")
  (parameters
    '("float" "xx")
    '("float" "yx")
    '("float" "xy")
    '("float" "yy")
    '("float" "dx")
    '("float" "dy")
  )
)

(define-method perspective
  (of-object "GskTransform")
  (c-name "gsk_transform_perspective")
  (return-type "GskTransform*")
  (parameters
    '("float" "depth")
  )
)

(define-method print
  (of-object "GskTransform")
  (c-name "gsk_transform_print")
  (return-type "none")
  (parameters
    '("GString*" "string")
  )
)

(define-method ref
  (of-object "GskTransform")
  (c-name "gsk_transform_ref")
  (return-type "GskTransform*")
)

(define-method rotate
  (of-object "GskTransform")
  (c-name "gsk_transform_rotate")
  (return-type "GskTransform*")
  (parameters
    '("float" "angle")
  )
)

(define-method rotate_3d
  (of-object "GskTransform")
  (c-name "gsk_transform_rotate_3d")
  (return-type "GskTransform*")
  (parameters
    '("float" "angle")
    '("const-graphene_vec3_t*" "axis")
  )
)

(define-method scale
  (of-object "GskTransform")
  (c-name "gsk_transform_scale")
  (return-type "GskTransform*")
  (parameters
    '("float" "factor_x")
    '("float" "factor_y")
  )
)

(define-method scale_3d
  (of-object "GskTransform")
  (c-name "gsk_transform_scale_3d")
  (return-type "GskTransform*")
  (parameters
    '("float" "factor_x")
    '("float" "factor_y")
    '("float" "factor_z")
  )
)

(define-method skew
  (of-object "GskTransform")
  (c-name "gsk_transform_skew")
  (return-type "GskTransform*")
  (parameters
    '("float" "skew_x")
    '("float" "skew_y")
  )
)

(define-method to_2d
  (of-object "GskTransform")
  (c-name "gsk_transform_to_2d")
  (return-type "none")
  (parameters
    '("float*" "out_xx")
    '("float*" "out_yx")
    '("float*" "out_xy")
    '("float*" "out_yy")
    '("float*" "out_dx")
    '("float*" "out_dy")
  )
)

(define-method to_2d_components
  (of-object "GskTransform")
  (c-name "gsk_transform_to_2d_components")
  (return-type "none")
  (parameters
    '("float*" "out_skew_x")
    '("float*" "out_skew_y")
    '("float*" "out_scale_x")
    '("float*" "out_scale_y")
    '("float*" "out_angle")
    '("float*" "out_dx")
    '("float*" "out_dy")
  )
)

(define-method to_affine
  (of-object "GskTransform")
  (c-name "gsk_transform_to_affine")
  (return-type "none")
  (parameters
    '("float*" "out_scale_x")
    '("float*" "out_scale_y")
    '("float*" "out_dx")
    '("float*" "out_dy")
  )
)

(define-method to_matrix
  (of-object "GskTransform")
  (c-name "gsk_transform_to_matrix")
  (return-type "none")
  (parameters
    '("graphene_matrix_t*" "out_matrix")
  )
)

(define-method to_string
  (of-object "GskTransform")
  (c-name "gsk_transform_to_string")
  (return-type "char*")
)

(define-method to_translate
  (of-object "GskTransform")
  (c-name "gsk_transform_to_translate")
  (return-type "none")
  (parameters
    '("float*" "out_dx")
    '("float*" "out_dy")
  )
)

(define-method transform
  (of-object "GskTransform")
  (c-name "gsk_transform_transform")
  (return-type "GskTransform*")
  (parameters
    '("GskTransform*" "other")
  )
)

(define-method transform_bounds
  (of-object "GskTransform")
  (c-name "gsk_transform_transform_bounds")
  (return-type "none")
  (parameters
    '("const-graphene_rect_t*" "rect")
    '("graphene_rect_t*" "out_rect")
  )
)

(define-method transform_point
  (of-object "GskTransform")
  (c-name "gsk_transform_transform_point")
  (return-type "none")
  (parameters
    '("const-graphene_point_t*" "point")
    '("graphene_point_t*" "out_point")
  )
)

(define-method translate
  (of-object "GskTransform")
  (c-name "gsk_transform_translate")
  (return-type "GskTransform*")
  (parameters
    '("const-graphene_point_t*" "point")
  )
)

(define-method translate_3d
  (of-object "GskTransform")
  (c-name "gsk_transform_translate_3d")
  (return-type "GskTransform*")
  (parameters
    '("const-graphene_point3d_t*" "point")
  )
)

(define-method unref
  (of-object "GskTransform")
  (c-name "gsk_transform_unref")
  (return-type "none")
)

(define-function gsk_transform_new
  (c-name "gsk_transform_new")
  (is-constructor-of "GskTransform")
  (return-type "GskTransform*")
)

(define-method get_blend_mode
  (of-object "GskBlendNode")
  (c-name "gsk_blend_node_get_blend_mode")
  (return-type "GskBlendMode")
)

(define-method get_bottom_child
  (of-object "GskBlendNode")
  (c-name "gsk_blend_node_get_bottom_child")
  (return-type "GskRenderNode*")
)

(define-method get_top_child
  (of-object "GskBlendNode")
  (c-name "gsk_blend_node_get_top_child")
  (return-type "GskRenderNode*")
)

(define-function gsk_blend_node_new
  (c-name "gsk_blend_node_new")
  (is-constructor-of "GskBlendNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "bottom")
    '("GskRenderNode*" "top")
    '("GskBlendMode" "blend_mode")
  )
)

(define-method get_child
  (of-object "GskBlurNode")
  (c-name "gsk_blur_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_radius
  (of-object "GskBlurNode")
  (c-name "gsk_blur_node_get_radius")
  (return-type "float")
)

(define-function gsk_blur_node_new
  (c-name "gsk_blur_node_new")
  (is-constructor-of "GskBlurNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("float" "radius")
  )
)

(define-method get_border_snap
  (of-object "GskBorderNode")
  (c-name "gsk_border_node_get_border_snap")
  (return-type "GskRectSnap")
)

(define-method get_colors
  (of-object "GskBorderNode")
  (c-name "gsk_border_node_get_colors")
  (return-type "const-GdkRGBA*")
)

(define-method get_outline
  (of-object "GskBorderNode")
  (c-name "gsk_border_node_get_outline")
  (return-type "const-GskRoundedRect*")
)

(define-method get_snap
  (of-object "GskBorderNode")
  (c-name "gsk_border_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_widths
  (of-object "GskBorderNode")
  (c-name "gsk_border_node_get_widths")
  (return-type "const-float*")
)

(define-function gsk_border_node_new
  (c-name "gsk_border_node_new")
  (is-constructor-of "GskBorderNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GskRoundedRect*" "outline")
    '("const-float*" "border_width")
    '("const-GdkRGBA*" "border_color")
  )
)

(define-function gsk_broadway_renderer_new
  (c-name "gsk_broadway_renderer_new")
  (is-constructor-of "GskBroadwayRenderer")
  (return-type "GskRenderer*")
)

(define-method get_draw_context
  (of-object "GskCairoNode")
  (c-name "gsk_cairo_node_get_draw_context")
  (return-type "cairo_t*")
)

(define-method get_surface
  (of-object "GskCairoNode")
  (c-name "gsk_cairo_node_get_surface")
  (return-type "cairo_surface_t*")
)

(define-function gsk_cairo_node_new
  (c-name "gsk_cairo_node_new")
  (is-constructor-of "GskCairoNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
  )
)

(define-function gsk_cairo_renderer_new
  (c-name "gsk_cairo_renderer_new")
  (is-constructor-of "GskCairoRenderer")
  (return-type "GskRenderer*")
)

(define-method get_child
  (of-object "GskClipNode")
  (c-name "gsk_clip_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_clip
  (of-object "GskClipNode")
  (c-name "gsk_clip_node_get_clip")
  (return-type "const-graphene_rect_t*")
)

(define-method get_snap
  (of-object "GskClipNode")
  (c-name "gsk_clip_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_clip_node_new
  (c-name "gsk_clip_node_new")
  (is-constructor-of "GskClipNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("const-graphene_rect_t*" "clip")
  )
)

(define-method get_child
  (of-object "GskColorMatrixNode")
  (c-name "gsk_color_matrix_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_color_matrix
  (of-object "GskColorMatrixNode")
  (c-name "gsk_color_matrix_node_get_color_matrix")
  (return-type "const-graphene_matrix_t*")
)

(define-method get_color_offset
  (of-object "GskColorMatrixNode")
  (c-name "gsk_color_matrix_node_get_color_offset")
  (return-type "const-graphene_vec4_t*")
)

(define-method get_snap
  (of-object "GskColorMatrixNode")
  (c-name "gsk_color_matrix_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_color_matrix_node_new
  (c-name "gsk_color_matrix_node_new")
  (is-constructor-of "GskColorMatrixNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("const-graphene_matrix_t*" "color_matrix")
    '("const-graphene_vec4_t*" "color_offset")
  )
)

(define-method get_color
  (of-object "GskColorNode")
  (c-name "gsk_color_node_get_color")
  (return-type "const-GdkRGBA*")
)

(define-method get_snap
  (of-object "GskColorNode")
  (c-name "gsk_color_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_color_node_new
  (c-name "gsk_color_node_new")
  (is-constructor-of "GskColorNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GdkRGBA*" "rgba")
    '("const-graphene_rect_t*" "bounds")
  )
)

(define-method get_child
  (of-object "GskComponentTransferNode")
  (c-name "gsk_component_transfer_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_transfer
  (of-object "GskComponentTransferNode")
  (c-name "gsk_component_transfer_node_get_transfer")
  (return-type "const-GskComponentTransfer*")
  (parameters
    '("GdkColorChannel" "component")
  )
)

(define-function gsk_component_transfer_node_new
  (c-name "gsk_component_transfer_node_new")
  (is-constructor-of "GskComponentTransferNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("const-GskComponentTransfer*" "r")
    '("const-GskComponentTransfer*" "g")
    '("const-GskComponentTransfer*" "b")
    '("const-GskComponentTransfer*" "a")
  )
)

(define-method get_child
  (of-object "GskCompositeNode")
  (c-name "gsk_composite_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_mask
  (of-object "GskCompositeNode")
  (c-name "gsk_composite_node_get_mask")
  (return-type "GskRenderNode*")
)

(define-method get_operator
  (of-object "GskCompositeNode")
  (c-name "gsk_composite_node_get_operator")
  (return-type "GskPorterDuff")
)

(define-function gsk_composite_node_new
  (c-name "gsk_composite_node_new")
  (is-constructor-of "GskCompositeNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("GskRenderNode*" "mask")
    '("GskPorterDuff" "op")
  )
)

(define-method get_angle
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_angle")
  (return-type "float")
)

(define-method get_center
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_center")
  (return-type "const-graphene_point_t*")
)

(define-method get_color_stops
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_color_stops")
  (return-type "const-GskColorStop*")
  (parameters
    '("gsize*" "n_stops")
  )
)

(define-method get_n_color_stops
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_n_color_stops")
  (return-type "gsize")
)

(define-method get_rotation
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_rotation")
  (return-type "float")
)

(define-method get_snap
  (of-object "GskConicGradientNode")
  (c-name "gsk_conic_gradient_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_conic_gradient_node_new
  (c-name "gsk_conic_gradient_node_new")
  (is-constructor-of "GskConicGradientNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_point_t*" "center")
    '("float" "rotation")
    '("const-GskColorStop*" "color_stops")
    '("gsize" "n_color_stops")
  )
)

(define-method get_child
  (of-object "GskContainerNode")
  (c-name "gsk_container_node_get_child")
  (return-type "GskRenderNode*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_n_children
  (of-object "GskContainerNode")
  (c-name "gsk_container_node_get_n_children")
  (return-type "guint")
)

(define-function gsk_container_node_new
  (c-name "gsk_container_node_new")
  (is-constructor-of "GskContainerNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode**" "children")
    '("guint" "n_children")
  )
)

(define-method get_child
  (of-object "GskCopyNode")
  (c-name "gsk_copy_node_get_child")
  (return-type "GskRenderNode*")
)

(define-function gsk_copy_node_new
  (c-name "gsk_copy_node_new")
  (is-constructor-of "GskCopyNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
  )
)

(define-method get_end_child
  (of-object "GskCrossFadeNode")
  (c-name "gsk_cross_fade_node_get_end_child")
  (return-type "GskRenderNode*")
)

(define-method get_progress
  (of-object "GskCrossFadeNode")
  (c-name "gsk_cross_fade_node_get_progress")
  (return-type "float")
)

(define-method get_start_child
  (of-object "GskCrossFadeNode")
  (c-name "gsk_cross_fade_node_get_start_child")
  (return-type "GskRenderNode*")
)

(define-function gsk_cross_fade_node_new
  (c-name "gsk_cross_fade_node_new")
  (is-constructor-of "GskCrossFadeNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "start")
    '("GskRenderNode*" "end")
    '("float" "progress")
  )
)

(define-method get_child
  (of-object "GskDebugNode")
  (c-name "gsk_debug_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_message
  (of-object "GskDebugNode")
  (c-name "gsk_debug_node_get_message")
  (return-type "const-char*")
)

(define-function gsk_debug_node_new
  (c-name "gsk_debug_node_new")
  (is-constructor-of "GskDebugNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("char*" "message")
  )
)

(define-method get_child
  (of-object "GskFillNode")
  (c-name "gsk_fill_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_fill_rule
  (of-object "GskFillNode")
  (c-name "gsk_fill_node_get_fill_rule")
  (return-type "GskFillRule")
)

(define-method get_path
  (of-object "GskFillNode")
  (c-name "gsk_fill_node_get_path")
  (return-type "GskPath*")
)

(define-function gsk_fill_node_new
  (c-name "gsk_fill_node_new")
  (is-constructor-of "GskFillNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("GskPath*" "path")
    '("GskFillRule" "fill_rule")
  )
)

(define-function gsk_gl_renderer_new
  (c-name "gsk_gl_renderer_new")
  (is-constructor-of "GskGLRenderer")
  (return-type "GskRenderer*")
)

(define-method compile
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_compile")
  (return-type "gboolean")
  (parameters
    '("GskRenderer*" "renderer")
    '("GError**" "error")
  )
)

(define-method find_uniform_by_name
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_find_uniform_by_name")
  (return-type "int")
  (parameters
    '("const-char*" "name")
  )
)

(define-method format_args
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_format_args")
  (return-type "GBytes*")
  (parameters
  )
  (varargs #t)
)

(define-method format_args_va
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_format_args_va")
  (return-type "GBytes*")
  (parameters
    '("va_list" "uniforms")
  )
)

(define-method get_arg_bool
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_bool")
  (return-type "gboolean")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
  )
)

(define-method get_arg_float
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_float")
  (return-type "float")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
  )
)

(define-method get_arg_int
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_int")
  (return-type "gint32")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
  )
)

(define-method get_arg_uint
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_uint")
  (return-type "guint32")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
  )
)

(define-method get_arg_vec2
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_vec2")
  (return-type "none")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
    '("graphene_vec2_t*" "out_value")
  )
)

(define-method get_arg_vec3
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_vec3")
  (return-type "none")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
    '("graphene_vec3_t*" "out_value")
  )
)

(define-method get_arg_vec4
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_arg_vec4")
  (return-type "none")
  (parameters
    '("GBytes*" "args")
    '("int" "idx")
    '("graphene_vec4_t*" "out_value")
  )
)

(define-method get_args_size
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_args_size")
  (return-type "gsize")
)

(define-method get_n_textures
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_n_textures")
  (return-type "int")
)

(define-method get_n_uniforms
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_n_uniforms")
  (return-type "int")
)

(define-method get_resource
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_resource")
  (return-type "const-char*")
)

(define-method get_source
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_source")
  (return-type "GBytes*")
)

(define-method get_uniform_name
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_uniform_name")
  (return-type "const-char*")
  (parameters
    '("int" "idx")
  )
)

(define-method get_uniform_offset
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_uniform_offset")
  (return-type "int")
  (parameters
    '("int" "idx")
  )
)

(define-method get_uniform_type
  (of-object "GskGLShader")
  (c-name "gsk_gl_shader_get_uniform_type")
  (return-type "GskGLUniformType")
  (parameters
    '("int" "idx")
  )
)

(define-function gsk_gl_shader_new_from_bytes
  (c-name "gsk_gl_shader_new_from_bytes")
  (is-constructor-of "GskGLShader")
  (return-type "GskGLShader*")
  (parameters
    '("GBytes*" "sourcecode")
  )
)

(define-function gsk_gl_shader_new_from_resource
  (c-name "gsk_gl_shader_new_from_resource")
  (is-constructor-of "GskGLShader")
  (return-type "GskGLShader*")
  (parameters
    '("const-char*" "resource_path")
  )
)

(define-method get_args
  (of-object "GskGLShaderNode")
  (c-name "gsk_gl_shader_node_get_args")
  (return-type "GBytes*")
)

(define-method get_child
  (of-object "GskGLShaderNode")
  (c-name "gsk_gl_shader_node_get_child")
  (return-type "GskRenderNode*")
  (parameters
    '("guint" "idx")
  )
)

(define-method get_n_children
  (of-object "GskGLShaderNode")
  (c-name "gsk_gl_shader_node_get_n_children")
  (return-type "guint")
)

(define-method get_shader
  (of-object "GskGLShaderNode")
  (c-name "gsk_gl_shader_node_get_shader")
  (return-type "GskGLShader*")
)

(define-function gsk_gl_shader_node_new
  (c-name "gsk_gl_shader_node_new")
  (is-constructor-of "GskGLShaderNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskGLShader*" "shader")
    '("const-graphene_rect_t*" "bounds")
    '("GBytes*" "args")
    '("GskRenderNode**" "children")
    '("guint" "n_children")
  )
)

(define-method get_blur_radius
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_blur_radius")
  (return-type "float")
)

(define-method get_color
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_color")
  (return-type "const-GdkRGBA*")
)

(define-method get_dx
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_dx")
  (return-type "float")
)

(define-method get_dy
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_dy")
  (return-type "float")
)

(define-method get_outline
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_outline")
  (return-type "const-GskRoundedRect*")
)

(define-method get_snap
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_spread
  (of-object "GskInsetShadowNode")
  (c-name "gsk_inset_shadow_node_get_spread")
  (return-type "float")
)

(define-function gsk_inset_shadow_node_new
  (c-name "gsk_inset_shadow_node_new")
  (is-constructor-of "GskInsetShadowNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GskRoundedRect*" "outline")
    '("const-GdkRGBA*" "color")
    '("float" "dx")
    '("float" "dy")
    '("float" "spread")
    '("float" "blur_radius")
  )
)

(define-method get_child
  (of-object "GskIsolationNode")
  (c-name "gsk_isolation_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_isolations
  (of-object "GskIsolationNode")
  (c-name "gsk_isolation_node_get_isolations")
  (return-type "GskIsolation")
)

(define-function gsk_isolation_node_new
  (c-name "gsk_isolation_node_new")
  (is-constructor-of "GskIsolationNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("GskIsolation" "isolations")
  )
)

(define-method get_color_stops
  (of-object "GskLinearGradientNode")
  (c-name "gsk_linear_gradient_node_get_color_stops")
  (return-type "const-GskColorStop*")
  (parameters
    '("gsize*" "n_stops")
  )
)

(define-method get_end
  (of-object "GskLinearGradientNode")
  (c-name "gsk_linear_gradient_node_get_end")
  (return-type "const-graphene_point_t*")
)

(define-method get_n_color_stops
  (of-object "GskLinearGradientNode")
  (c-name "gsk_linear_gradient_node_get_n_color_stops")
  (return-type "gsize")
)

(define-method get_snap
  (of-object "GskLinearGradientNode")
  (c-name "gsk_linear_gradient_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_start
  (of-object "GskLinearGradientNode")
  (c-name "gsk_linear_gradient_node_get_start")
  (return-type "const-graphene_point_t*")
)

(define-function gsk_linear_gradient_node_new
  (c-name "gsk_linear_gradient_node_new")
  (is-constructor-of "GskLinearGradientNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_point_t*" "start")
    '("const-graphene_point_t*" "end")
    '("const-GskColorStop*" "color_stops")
    '("gsize" "n_color_stops")
  )
)

(define-method get_mask
  (of-object "GskMaskNode")
  (c-name "gsk_mask_node_get_mask")
  (return-type "GskRenderNode*")
)

(define-method get_mask_mode
  (of-object "GskMaskNode")
  (c-name "gsk_mask_node_get_mask_mode")
  (return-type "GskMaskMode")
)

(define-method get_source
  (of-object "GskMaskNode")
  (c-name "gsk_mask_node_get_source")
  (return-type "GskRenderNode*")
)

(define-function gsk_mask_node_new
  (c-name "gsk_mask_node_new")
  (is-constructor-of "GskMaskNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "source")
    '("GskRenderNode*" "mask")
    '("GskMaskMode" "mask_mode")
  )
)

(define-function gsk_ngl_renderer_new
  (c-name "gsk_ngl_renderer_new")
  (is-constructor-of "GskNglRenderer")
  (return-type "GskRenderer*")
)

(define-method get_child
  (of-object "GskOpacityNode")
  (c-name "gsk_opacity_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_opacity
  (of-object "GskOpacityNode")
  (c-name "gsk_opacity_node_get_opacity")
  (return-type "float")
)

(define-function gsk_opacity_node_new
  (c-name "gsk_opacity_node_new")
  (is-constructor-of "GskOpacityNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("float" "opacity")
  )
)

(define-method get_blur_radius
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_blur_radius")
  (return-type "float")
)

(define-method get_color
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_color")
  (return-type "const-GdkRGBA*")
)

(define-method get_dx
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_dx")
  (return-type "float")
)

(define-method get_dy
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_dy")
  (return-type "float")
)

(define-method get_outline
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_outline")
  (return-type "const-GskRoundedRect*")
)

(define-method get_snap
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_spread
  (of-object "GskOutsetShadowNode")
  (c-name "gsk_outset_shadow_node_get_spread")
  (return-type "float")
)

(define-function gsk_outset_shadow_node_new
  (c-name "gsk_outset_shadow_node_new")
  (is-constructor-of "GskOutsetShadowNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-GskRoundedRect*" "outline")
    '("const-GdkRGBA*" "color")
    '("float" "dx")
    '("float" "dy")
    '("float" "spread")
    '("float" "blur_radius")
  )
)

(define-method get_depth
  (of-object "GskPasteNode")
  (c-name "gsk_paste_node_get_depth")
  (return-type "gsize")
)

(define-method get_snap
  (of-object "GskPasteNode")
  (c-name "gsk_paste_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_paste_node_new
  (c-name "gsk_paste_node_new")
  (is-constructor-of "GskPasteNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("gsize" "depth")
  )
)

(define-method get_center
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_center")
  (return-type "const-graphene_point_t*")
)

(define-method get_color_stops
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_color_stops")
  (return-type "const-GskColorStop*")
  (parameters
    '("gsize*" "n_stops")
  )
)

(define-method get_end
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_end")
  (return-type "float")
)

(define-method get_hradius
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_hradius")
  (return-type "float")
)

(define-method get_n_color_stops
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_n_color_stops")
  (return-type "gsize")
)

(define-method get_snap
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_start
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_start")
  (return-type "float")
)

(define-method get_vradius
  (of-object "GskRadialGradientNode")
  (c-name "gsk_radial_gradient_node_get_vradius")
  (return-type "float")
)

(define-function gsk_radial_gradient_node_new
  (c-name "gsk_radial_gradient_node_new")
  (is-constructor-of "GskRadialGradientNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_point_t*" "center")
    '("float" "hradius")
    '("float" "vradius")
    '("float" "start")
    '("float" "end")
    '("const-GskColorStop*" "color_stops")
    '("gsize" "n_color_stops")
  )
)

(define-function gsk_render_node_deserialize
  (c-name "gsk_render_node_deserialize")
  (return-type "GskRenderNode*")
  (parameters
    '("GBytes*" "bytes")
    '("GskParseErrorFunc" "error_func")
    '("gpointer" "user_data")
  )
)

(define-method draw
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_draw")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-method get_bounds
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_get_bounds")
  (return-type "none")
  (parameters
    '("graphene_rect_t*" "bounds")
  )
)

(define-method get_children
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_get_children")
  (return-type "GskRenderNode**")
  (parameters
    '("gsize*" "n_children")
  )
)

(define-method get_node_type
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_get_node_type")
  (return-type "GskRenderNodeType")
)

(define-method get_opaque_rect
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_get_opaque_rect")
  (return-type "gboolean")
  (parameters
    '("graphene_rect_t*" "out_opaque")
  )
)

(define-method ref
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_ref")
  (return-type "GskRenderNode*")
)

(define-method serialize
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_serialize")
  (return-type "GBytes*")
)

(define-method unref
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_unref")
  (return-type "none")
)

(define-method write_to_file
  (of-object "GskRenderNode")
  (c-name "gsk_render_node_write_to_file")
  (return-type "gboolean")
  (parameters
    '("const-char*" "filename")
    '("GError**" "error")
  )
)

(define-method get_surface
  (of-object "GskRenderer")
  (c-name "gsk_renderer_get_surface")
  (return-type "GdkSurface*")
)

(define-method is_realized
  (of-object "GskRenderer")
  (c-name "gsk_renderer_is_realized")
  (return-type "gboolean")
)

(define-method realize
  (of-object "GskRenderer")
  (c-name "gsk_renderer_realize")
  (return-type "gboolean")
  (parameters
    '("GdkSurface*" "surface")
    '("GError**" "error")
  )
)

(define-method realize_for_display
  (of-object "GskRenderer")
  (c-name "gsk_renderer_realize_for_display")
  (return-type "gboolean")
  (parameters
    '("GdkDisplay*" "display")
    '("GError**" "error")
  )
)

(define-method render
  (of-object "GskRenderer")
  (c-name "gsk_renderer_render")
  (return-type "none")
  (parameters
    '("GskRenderNode*" "root")
    '("const-cairo_region_t*" "region")
  )
)

(define-method render_texture
  (of-object "GskRenderer")
  (c-name "gsk_renderer_render_texture")
  (return-type "GdkTexture*")
  (parameters
    '("GskRenderNode*" "root")
    '("const-graphene_rect_t*" "viewport")
  )
)

(define-method unrealize
  (of-object "GskRenderer")
  (c-name "gsk_renderer_unrealize")
  (return-type "none")
)

(define-function gsk_renderer_new_for_surface
  (c-name "gsk_renderer_new_for_surface")
  (is-constructor-of "GskRenderer")
  (return-type "GskRenderer*")
  (parameters
    '("GdkSurface*" "surface")
  )
)

(define-method get_child
  (of-object "GskRepeatNode")
  (c-name "gsk_repeat_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_child_bounds
  (of-object "GskRepeatNode")
  (c-name "gsk_repeat_node_get_child_bounds")
  (return-type "const-graphene_rect_t*")
)

(define-method get_child_snap
  (of-object "GskRepeatNode")
  (c-name "gsk_repeat_node_get_child_snap")
  (return-type "GskRectSnap")
)

(define-method get_snap
  (of-object "GskRepeatNode")
  (c-name "gsk_repeat_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_repeat_node_new
  (c-name "gsk_repeat_node_new")
  (is-constructor-of "GskRepeatNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("GskRenderNode*" "child")
    '("const-graphene_rect_t*" "child_bounds")
  )
)

(define-function gsk_repeating_linear_gradient_node_new
  (c-name "gsk_repeating_linear_gradient_node_new")
  (is-constructor-of "GskRepeatingLinearGradientNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_point_t*" "start")
    '("const-graphene_point_t*" "end")
    '("const-GskColorStop*" "color_stops")
    '("gsize" "n_color_stops")
  )
)

(define-function gsk_repeating_radial_gradient_node_new
  (c-name "gsk_repeating_radial_gradient_node_new")
  (is-constructor-of "GskRepeatingRadialGradientNode")
  (return-type "GskRenderNode*")
  (parameters
    '("const-graphene_rect_t*" "bounds")
    '("const-graphene_point_t*" "center")
    '("float" "hradius")
    '("float" "vradius")
    '("float" "start")
    '("float" "end")
    '("const-GskColorStop*" "color_stops")
    '("gsize" "n_color_stops")
  )
)

(define-method get_child
  (of-object "GskRoundedClipNode")
  (c-name "gsk_rounded_clip_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_clip
  (of-object "GskRoundedClipNode")
  (c-name "gsk_rounded_clip_node_get_clip")
  (return-type "const-GskRoundedRect*")
)

(define-method get_snap
  (of-object "GskRoundedClipNode")
  (c-name "gsk_rounded_clip_node_get_snap")
  (return-type "GskRectSnap")
)

(define-function gsk_rounded_clip_node_new
  (c-name "gsk_rounded_clip_node_new")
  (is-constructor-of "GskRoundedClipNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("const-GskRoundedRect*" "clip")
  )
)

(define-method get_child
  (of-object "GskShadowNode")
  (c-name "gsk_shadow_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_n_shadows
  (of-object "GskShadowNode")
  (c-name "gsk_shadow_node_get_n_shadows")
  (return-type "gsize")
)

(define-method get_shadow
  (of-object "GskShadowNode")
  (c-name "gsk_shadow_node_get_shadow")
  (return-type "const-GskShadow*")
  (parameters
    '("gsize" "i")
  )
)

(define-function gsk_shadow_node_new
  (c-name "gsk_shadow_node_new")
  (is-constructor-of "GskShadowNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("const-GskShadow*" "shadows")
    '("gsize" "n_shadows")
  )
)

(define-method get_child
  (of-object "GskStrokeNode")
  (c-name "gsk_stroke_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_path
  (of-object "GskStrokeNode")
  (c-name "gsk_stroke_node_get_path")
  (return-type "GskPath*")
)

(define-method get_stroke
  (of-object "GskStrokeNode")
  (c-name "gsk_stroke_node_get_stroke")
  (return-type "const-GskStroke*")
)

(define-function gsk_stroke_node_new
  (c-name "gsk_stroke_node_new")
  (is-constructor-of "GskStrokeNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("GskPath*" "path")
    '("const-GskStroke*" "stroke")
  )
)

(define-function gsk_subsurface_node_get_subsurface
  (c-name "gsk_subsurface_node_get_subsurface")
  (return-type "gpointer")
  (parameters
    '("const-GskRenderNode*" "node")
  )
)

(define-method get_child
  (of-object "GskSubsurfaceNode")
  (c-name "gsk_subsurface_node_get_child")
  (return-type "GskRenderNode*")
)

(define-function gsk_subsurface_node_new
  (c-name "gsk_subsurface_node_new")
  (is-constructor-of "GskSubsurfaceNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("gpointer" "subsurface")
  )
)

(define-method get_color
  (of-object "GskTextNode")
  (c-name "gsk_text_node_get_color")
  (return-type "const-GdkRGBA*")
)

(define-method get_font
  (of-object "GskTextNode")
  (c-name "gsk_text_node_get_font")
  (return-type "PangoFont*")
)

(define-method get_glyphs
  (of-object "GskTextNode")
  (c-name "gsk_text_node_get_glyphs")
  (return-type "const-PangoGlyphInfo*")
  (parameters
    '("guint*" "n_glyphs")
  )
)

(define-method get_num_glyphs
  (of-object "GskTextNode")
  (c-name "gsk_text_node_get_num_glyphs")
  (return-type "guint")
)

(define-method get_offset
  (of-object "GskTextNode")
  (c-name "gsk_text_node_get_offset")
  (return-type "const-graphene_point_t*")
)

(define-method has_color_glyphs
  (of-object "GskTextNode")
  (c-name "gsk_text_node_has_color_glyphs")
  (return-type "gboolean")
)

(define-function gsk_text_node_new
  (c-name "gsk_text_node_new")
  (is-constructor-of "GskTextNode")
  (return-type "GskRenderNode*")
  (parameters
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("const-GdkRGBA*" "color")
    '("const-graphene_point_t*" "offset")
  )
)

(define-method get_snap
  (of-object "GskTextureNode")
  (c-name "gsk_texture_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_texture
  (of-object "GskTextureNode")
  (c-name "gsk_texture_node_get_texture")
  (return-type "GdkTexture*")
)

(define-function gsk_texture_node_new
  (c-name "gsk_texture_node_new")
  (is-constructor-of "GskTextureNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GdkTexture*" "texture")
    '("const-graphene_rect_t*" "bounds")
  )
)

(define-method get_filter
  (of-object "GskTextureScaleNode")
  (c-name "gsk_texture_scale_node_get_filter")
  (return-type "GskScalingFilter")
)

(define-method get_snap
  (of-object "GskTextureScaleNode")
  (c-name "gsk_texture_scale_node_get_snap")
  (return-type "GskRectSnap")
)

(define-method get_texture
  (of-object "GskTextureScaleNode")
  (c-name "gsk_texture_scale_node_get_texture")
  (return-type "GdkTexture*")
)

(define-function gsk_texture_scale_node_new
  (c-name "gsk_texture_scale_node_new")
  (is-constructor-of "GskTextureScaleNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GdkTexture*" "texture")
    '("const-graphene_rect_t*" "bounds")
    '("GskScalingFilter" "filter")
  )
)

(define-method get_child
  (of-object "GskTransformNode")
  (c-name "gsk_transform_node_get_child")
  (return-type "GskRenderNode*")
)

(define-method get_transform
  (of-object "GskTransformNode")
  (c-name "gsk_transform_node_get_transform")
  (return-type "GskTransform*")
)

(define-function gsk_transform_node_new
  (c-name "gsk_transform_node_new")
  (is-constructor-of "GskTransformNode")
  (return-type "GskRenderNode*")
  (parameters
    '("GskRenderNode*" "child")
    '("GskTransform*" "transform")
  )
)

(define-function gsk_vulkan_renderer_new
  (c-name "gsk_vulkan_renderer_new")
  (is-constructor-of "GskVulkanRenderer")
  (return-type "GskRenderer*")
)

