<MACRO>
<NAME>GSK_TYPE_BROADWAY_RENDERER</NAME>
#define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_BROADWAY_RENDERER</NAME>
#define GSK_BROADWAY_RENDERER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer))
</MACRO>
<MACRO>
<NAME>GSK_IS_BROADWAY_RENDERER</NAME>
#define GSK_IS_BROADWAY_RENDERER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER))
</MACRO>
<MACRO>
<NAME>GSK_BROADWAY_RENDERER_CLASS</NAME>
#define GSK_BROADWAY_RENDERER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
</MACRO>
<MACRO>
<NAME>GSK_IS_BROADWAY_RENDERER_CLASS</NAME>
#define GSK_IS_BROADWAY_RENDERER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER))
</MACRO>
<MACRO>
<NAME>GSK_BROADWAY_RENDERER_GET_CLASS</NAME>
#define GSK_BROADWAY_RENDERER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
</MACRO>
<FUNCTION>
<NAME>gsk_broadway_renderer_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<STRUCT>
<NAME>GskBroadwayRenderer</NAME>
</STRUCT>
<STRUCT>
<NAME>GskBroadwayRendererClass</NAME>
</STRUCT>
<ENUM>
<NAME>GskDiffResult</NAME>
typedef enum {
  GSK_DIFF_OK = 0,
  GSK_DIFF_ABORTED,
} GskDiffResult;
</ENUM>
<USER_FUNCTION>
<NAME>GskKeepFunc</NAME>
<RETURNS>void </RETURNS>
gconstpointer elem1, gconstpointer elem2, gpointer data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GskDeleteFunc</NAME>
<RETURNS>void </RETURNS>
gconstpointer elem, gsize idx, gpointer data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GskInsertFunc</NAME>
<RETURNS>void </RETURNS>
gconstpointer elem, gsize idx, gpointer data
</USER_FUNCTION>
<FUNCTION>
<NAME>gsk_diff_settings_new</NAME>
<RETURNS>GskDiffSettings  *       </RETURNS>
GCompareDataFunc        compare_func, GskKeepFunc             keep_func, GskDeleteFunc           delete_func, GskInsertFunc           insert_func
</FUNCTION>
<FUNCTION>
<NAME>gsk_diff_settings_free</NAME>
<RETURNS>void                     </RETURNS>
GskDiffSettings        *settings
</FUNCTION>
<FUNCTION>
<NAME>gsk_diff_settings_set_allow_abort</NAME>
<RETURNS>void                     </RETURNS>
GskDiffSettings        *settings, gboolean                allow_abort
</FUNCTION>
<FUNCTION>
<NAME>gsk_diff</NAME>
<RETURNS>GskDiffResult            </RETURNS>
gconstpointer          *elem1, gsize                   n1, gconstpointer          *elem2, gsize                   n2, const GskDiffSettings  *settings, gpointer                data
</FUNCTION>
<STRUCT>
<NAME>GskDiffSettings</NAME>
</STRUCT>
<ENUM>
<NAME>GskRenderNodeType</NAME>
typedef enum {
  GSK_NOT_A_RENDER_NODE = 0,
  GSK_CONTAINER_NODE,
  GSK_CAIRO_NODE,
  GSK_COLOR_NODE,
  GSK_LINEAR_GRADIENT_NODE,
  GSK_REPEATING_LINEAR_GRADIENT_NODE,
  GSK_BORDER_NODE,
  GSK_TEXTURE_NODE,
  GSK_INSET_SHADOW_NODE,
  GSK_OUTSET_SHADOW_NODE,
  GSK_TRANSFORM_NODE,
  GSK_OPACITY_NODE,
  GSK_COLOR_MATRIX_NODE,
  GSK_REPEAT_NODE,
  GSK_CLIP_NODE,
  GSK_ROUNDED_CLIP_NODE,
  GSK_SHADOW_NODE,
  GSK_BLEND_NODE,
  GSK_CROSS_FADE_NODE,
  GSK_TEXT_NODE,
  GSK_BLUR_NODE,
  GSK_OFFSET_NODE,
  GSK_DEBUG_NODE
} GskRenderNodeType;
</ENUM>
<ENUM>
<NAME>GskScalingFilter</NAME>
typedef enum {
  GSK_SCALING_FILTER_LINEAR,
  GSK_SCALING_FILTER_NEAREST,
  GSK_SCALING_FILTER_TRILINEAR
} GskScalingFilter;
</ENUM>
<ENUM>
<NAME>GskBlendMode</NAME>
typedef enum {
  GSK_BLEND_MODE_DEFAULT = 0,

  GSK_BLEND_MODE_MULTIPLY,
  GSK_BLEND_MODE_SCREEN,
  GSK_BLEND_MODE_OVERLAY,
  GSK_BLEND_MODE_DARKEN,
  GSK_BLEND_MODE_LIGHTEN,
  GSK_BLEND_MODE_COLOR_DODGE,
  GSK_BLEND_MODE_COLOR_BURN,
  GSK_BLEND_MODE_HARD_LIGHT,
  GSK_BLEND_MODE_SOFT_LIGHT,
  GSK_BLEND_MODE_DIFFERENCE,
  GSK_BLEND_MODE_EXCLUSION,
  GSK_BLEND_MODE_COLOR,
  GSK_BLEND_MODE_HUE,
  GSK_BLEND_MODE_SATURATION,
  GSK_BLEND_MODE_LUMINOSITY
} GskBlendMode;
</ENUM>
<ENUM>
<NAME>GskCorner</NAME>
typedef enum {
  GSK_CORNER_TOP_LEFT,
  GSK_CORNER_TOP_RIGHT,
  GSK_CORNER_BOTTOM_RIGHT,
  GSK_CORNER_BOTTOM_LEFT
} GskCorner;
</ENUM>
<ENUM>
<NAME>GskSerializationError</NAME>
typedef enum {
  GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
  GSK_SERIALIZATION_UNSUPPORTED_VERSION,
  GSK_SERIALIZATION_INVALID_DATA
} GskSerializationError;
</ENUM>
<MACRO>
<NAME>GSK_TYPE_RENDERER</NAME>
#define GSK_TYPE_RENDERER (gsk_renderer_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_RENDERER</NAME>
#define GSK_RENDERER(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_RENDERER, GskRenderer))
</MACRO>
<MACRO>
<NAME>GSK_IS_RENDERER</NAME>
#define GSK_IS_RENDERER(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_RENDERER))
</MACRO>
<FUNCTION>
<NAME>gsk_renderer_get_type</NAME>
<RETURNS>GType  </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_new_for_surface</NAME>
<RETURNS>GskRenderer  *           </RETURNS>
GdkSurface               *surface
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_get_surface</NAME>
<RETURNS>GdkSurface  *             </RETURNS>
GskRenderer             *renderer
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_get_display</NAME>
<RETURNS>GdkDisplay  *            </RETURNS>
GskRenderer             *renderer
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_realize</NAME>
<RETURNS>gboolean                 </RETURNS>
GskRenderer             *renderer, GdkSurface              *surface, GError                 **error
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_unrealize</NAME>
<RETURNS>void                     </RETURNS>
GskRenderer             *renderer
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_render_texture</NAME>
<RETURNS>GdkTexture  *            </RETURNS>
GskRenderer             *renderer, GskRenderNode           *root, const graphene_rect_t   *viewport
</FUNCTION>
<FUNCTION>
<NAME>gsk_renderer_render</NAME>
<RETURNS>void                     </RETURNS>
GskRenderer             *renderer, GskRenderNode           *root, const cairo_region_t    *region
</FUNCTION>
<STRUCT>
<NAME>GskRendererClass</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_RENDER_NODE</NAME>
#define GSK_TYPE_RENDER_NODE (gsk_render_node_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_IS_RENDER_NODE</NAME>
#define GSK_IS_RENDER_NODE(obj) ((obj) != NULL)
</MACRO>
<MACRO>
<NAME>GSK_SERIALIZATION_ERROR</NAME>
#define GSK_SERIALIZATION_ERROR       (gsk_serialization_error_quark ())
</MACRO>
<STRUCT>
<NAME>GskColorStop</NAME>
struct _GskColorStop
{
  double offset;
  GdkRGBA color;
};
</STRUCT>
<STRUCT>
<NAME>GskShadow</NAME>
struct _GskShadow
{
  GdkRGBA color;
  float dx;
  float dy;
  float radius;
};
</STRUCT>
<FUNCTION>
<NAME>gsk_render_node_get_type</NAME>
<RETURNS>GType                    </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gsk_serialization_error_quark</NAME>
<RETURNS>GQuark                   </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_ref</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_unref</NAME>
<RETURNS>void                     </RETURNS>
GskRenderNode *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_get_node_type</NAME>
<RETURNS>GskRenderNodeType        </RETURNS>
GskRenderNode *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_get_bounds</NAME>
<RETURNS>void                     </RETURNS>
GskRenderNode   *node, graphene_rect_t *bounds
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_draw</NAME>
<RETURNS>void                     </RETURNS>
GskRenderNode *node, cairo_t       *cr
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_serialize</NAME>
<RETURNS>GBytes  *                </RETURNS>
GskRenderNode *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_write_to_file</NAME>
<RETURNS>gboolean                 </RETURNS>
GskRenderNode *node, const char    *filename, GError       **error
</FUNCTION>
<FUNCTION>
<NAME>gsk_render_node_deserialize</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GBytes        *bytes, GError       **error
</FUNCTION>
<FUNCTION>
<NAME>gsk_debug_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, char                     *message
</FUNCTION>
<FUNCTION>
<NAME>gsk_debug_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_debug_node_get_message</NAME>
<RETURNS>const char  *            </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const GdkRGBA            *rgba, const graphene_rect_t    *bounds
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_node_peek_color</NAME>
<RETURNS>const GdkRGBA  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_texture_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GdkTexture               *texture, const graphene_rect_t    *bounds
</FUNCTION>
<FUNCTION>
<NAME>gsk_texture_node_get_texture</NAME>
<RETURNS>GdkTexture  *            </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_linear_gradient_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const graphene_rect_t    *bounds, const graphene_point_t   *start, const graphene_point_t   *end, const GskColorStop       *color_stops, gsize                     n_color_stops
</FUNCTION>
<FUNCTION>
<NAME>gsk_linear_gradient_node_peek_start</NAME>
<RETURNS>const graphene_point_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_linear_gradient_node_peek_end</NAME>
<RETURNS>const graphene_point_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_linear_gradient_node_get_n_color_stops</NAME>
<RETURNS>gsize                     </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_linear_gradient_node_peek_color_stops</NAME>
<RETURNS>const GskColorStop  *     </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_repeating_linear_gradient_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const graphene_rect_t    *bounds, const graphene_point_t   *start, const graphene_point_t   *end, const GskColorStop       *color_stops, gsize                     n_color_stops
</FUNCTION>
<FUNCTION>
<NAME>gsk_border_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const GskRoundedRect     *outline, const float               border_width[4], const GdkRGBA             border_color[4]
</FUNCTION>
<FUNCTION>
<NAME>gsk_border_node_peek_outline</NAME>
<RETURNS>const GskRoundedRect  *  </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_border_node_peek_widths</NAME>
<RETURNS>const float  *           </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_border_node_peek_colors</NAME>
<RETURNS>const GdkRGBA  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const GskRoundedRect     *outline, const GdkRGBA            *color, float                     dx, float                     dy, float                     spread, float                     blur_radius
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_peek_outline</NAME>
<RETURNS>const GskRoundedRect  *  </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_peek_color</NAME>
<RETURNS>const GdkRGBA  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_get_dx</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_get_dy</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_get_spread</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_inset_shadow_node_get_blur_radius</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const GskRoundedRect     *outline, const GdkRGBA            *color, float                     dx, float                     dy, float                     spread, float                     blur_radius
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_peek_outline</NAME>
<RETURNS>const GskRoundedRect  *  </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_peek_color</NAME>
<RETURNS>const GdkRGBA  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_get_dx</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_get_dy</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_get_spread</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_outset_shadow_node_get_blur_radius</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_cairo_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const graphene_rect_t    *bounds
</FUNCTION>
<FUNCTION>
<NAME>gsk_cairo_node_get_draw_context</NAME>
<RETURNS>cairo_t  *               </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_cairo_node_peek_surface</NAME>
<RETURNS>const cairo_surface_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_container_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode           **children, guint                     n_children
</FUNCTION>
<FUNCTION>
<NAME>gsk_container_node_get_n_children</NAME>
<RETURNS>guint                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_container_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node, guint                     idx
</FUNCTION>
<FUNCTION>
<NAME>gsk_transform_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, const graphene_matrix_t  *transform
</FUNCTION>
<FUNCTION>
<NAME>gsk_transform_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_transform_node_peek_transform</NAME>
<RETURNS>const graphene_matrix_t  *</RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_offset_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, double                    x_offset, double                    y_offset
</FUNCTION>
<FUNCTION>
<NAME>gsk_offset_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_offset_node_get_x_offset</NAME>
<RETURNS>double                   </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_offset_node_get_y_offset</NAME>
<RETURNS>double                   </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_opacity_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, double                    opacity
</FUNCTION>
<FUNCTION>
<NAME>gsk_opacity_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_opacity_node_get_opacity</NAME>
<RETURNS>double                   </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_matrix_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, const graphene_matrix_t  *color_matrix, const graphene_vec4_t    *color_offset
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_matrix_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_matrix_node_peek_color_matrix</NAME>
<RETURNS>const graphene_matrix_t  *</RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_color_matrix_node_peek_color_offset</NAME>
<RETURNS>const graphene_vec4_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_repeat_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
const graphene_rect_t    *bounds, GskRenderNode            *child, const graphene_rect_t    *child_bounds
</FUNCTION>
<FUNCTION>
<NAME>gsk_repeat_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_repeat_node_peek_child_bounds</NAME>
<RETURNS>const graphene_rect_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_clip_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, const graphene_rect_t    *clip
</FUNCTION>
<FUNCTION>
<NAME>gsk_clip_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_clip_node_peek_clip</NAME>
<RETURNS>const graphene_rect_t  * </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_clip_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, const GskRoundedRect     *clip
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_clip_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_clip_node_peek_clip</NAME>
<RETURNS>const GskRoundedRect  *  </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_shadow_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, const GskShadow          *shadows, gsize                     n_shadows
</FUNCTION>
<FUNCTION>
<NAME>gsk_shadow_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_shadow_node_peek_shadow</NAME>
<RETURNS>const GskShadow  *       </RETURNS>
GskRenderNode            *node, gsize                     i
</FUNCTION>
<FUNCTION>
<NAME>gsk_shadow_node_get_n_shadows</NAME>
<RETURNS>gsize                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_blend_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *bottom, GskRenderNode            *top, GskBlendMode              blend_mode
</FUNCTION>
<FUNCTION>
<NAME>gsk_blend_node_get_bottom_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_blend_node_get_top_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_blend_node_get_blend_mode</NAME>
<RETURNS>GskBlendMode             </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_cross_fade_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *start, GskRenderNode            *end, double                    progress
</FUNCTION>
<FUNCTION>
<NAME>gsk_cross_fade_node_get_start_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_cross_fade_node_get_end_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_cross_fade_node_get_progress</NAME>
<RETURNS>double                   </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
PangoFont                *font, PangoGlyphString         *glyphs, const GdkRGBA            *color, double                    x, double                    y
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_peek_font</NAME>
<RETURNS>const PangoFont  *       </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_get_num_glyphs</NAME>
<RETURNS>guint                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_peek_glyphs</NAME>
<RETURNS>const PangoGlyphInfo    *</RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_peek_color</NAME>
<RETURNS>const GdkRGBA  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_get_x</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_text_node_get_y</NAME>
<RETURNS>float                    </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_blur_node_new</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *child, double                    radius
</FUNCTION>
<FUNCTION>
<NAME>gsk_blur_node_get_child</NAME>
<RETURNS>GskRenderNode  *         </RETURNS>
GskRenderNode            *node
</FUNCTION>
<FUNCTION>
<NAME>gsk_blur_node_get_radius</NAME>
<RETURNS>double                   </RETURNS>
GskRenderNode            *node
</FUNCTION>
<STRUCT>
<NAME>GskRenderNode</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_ROUNDED_RECT_INIT</NAME>
#define GSK_ROUNDED_RECT_INIT(_x,_y,_w,_h)       (GskRoundedRect) { .bounds = GRAPHENE_RECT_INIT(_x,_y,_w,_h), \
                                                                    .corner = { \
                                                                       GRAPHENE_SIZE_INIT(0, 0),\
                                                                       GRAPHENE_SIZE_INIT(0, 0),\
                                                                       GRAPHENE_SIZE_INIT(0, 0),\
                                                                       GRAPHENE_SIZE_INIT(0, 0),\
                                                                    }}
</MACRO>
<STRUCT>
<NAME>GskRoundedRect</NAME>
struct _GskRoundedRect
{
  graphene_rect_t bounds;

  graphene_size_t corner[4];
};
</STRUCT>
<FUNCTION>
<NAME>gsk_rounded_rect_init</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self, 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
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_init_copy</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self, const GskRoundedRect     *src
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_init_from_rect</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self, const graphene_rect_t    *bounds, float                     radius
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_normalize</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_offset</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self, float                     dx, float                     dy
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_shrink</NAME>
<RETURNS>GskRoundedRect  *        </RETURNS>
GskRoundedRect           *self, float                     top, float                     right, float                     bottom, float                     left
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_is_rectilinear</NAME>
<RETURNS>gboolean                 </RETURNS>
const GskRoundedRect     *self
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_contains_point</NAME>
<RETURNS>gboolean                 </RETURNS>
const GskRoundedRect     *self, const graphene_point_t   *point
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_contains_rect</NAME>
<RETURNS>gboolean                 </RETURNS>
const GskRoundedRect     *self, const graphene_rect_t    *rect
</FUNCTION>
<FUNCTION>
<NAME>gsk_rounded_rect_intersects_rect</NAME>
<RETURNS>gboolean                 </RETURNS>
const GskRoundedRect     *self, const graphene_rect_t    *rect
</FUNCTION>
<STRUCT>
<NAME>GskRenderer</NAME>
</STRUCT>
<FUNCTION>
<NAME>gsk_gl_glyph_cache_init</NAME>
<RETURNS>void                      </RETURNS>
GskGLGlyphCache        *self, GskRenderer            *renderer, GskGLDriver            *gl_driver
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_glyph_cache_free</NAME>
<RETURNS>void                      </RETURNS>
GskGLGlyphCache        *self
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_glyph_cache_begin_frame</NAME>
<RETURNS>void                      </RETURNS>
GskGLGlyphCache        *self
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_glyph_cache_get_glyph_image</NAME>
<RETURNS>GskGLImage  *             </RETURNS>
GskGLGlyphCache        *self, const GskGLCachedGlyph *glyph
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_glyph_cache_lookup</NAME>
<RETURNS>const GskGLCachedGlyph  * </RETURNS>
GskGLGlyphCache        *self, gboolean                create, PangoFont              *font, PangoGlyph              glyph, float                   scale
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_image_create</NAME>
<RETURNS>void  </RETURNS>
GskGLImage           *self, GskGLDriver          *gl_driver, int                   width, int                   height
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_image_destroy</NAME>
<RETURNS>void  </RETURNS>
GskGLImage           *self, GskGLDriver          *gl_driver
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_image_write_to_png</NAME>
<RETURNS>void  </RETURNS>
const GskGLImage     *self, GskGLDriver          *gl_driver, const char           *filename
</FUNCTION>
<FUNCTION>
<NAME>gsk_gl_image_upload_regions</NAME>
<RETURNS>void  </RETURNS>
GskGLImage           *self, GskGLDriver          *gl_driver, guint                 n_regions, const GskImageRegion *regions
</FUNCTION>
<MACRO>
<NAME>GL_N_VERTICES</NAME>
#define GL_N_VERTICES 6
</MACRO>
<MACRO>
<NAME>GL_N_PROGRAMS</NAME>
#define GL_N_PROGRAMS 12
</MACRO>
<FUNCTION>
<NAME>ops_get_scale</NAME>
<RETURNS>float              </RETURNS>
const RenderOpBuilder   *builder
</FUNCTION>
<FUNCTION>
<NAME>ops_set_program</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, const Program           *program
</FUNCTION>
<FUNCTION>
<NAME>ops_set_clip</NAME>
<RETURNS>GskRoundedRect     </RETURNS>
RenderOpBuilder         *builder, const GskRoundedRect    *clip
</FUNCTION>
<FUNCTION>
<NAME>ops_set_modelview</NAME>
<RETURNS>graphene_matrix_t  </RETURNS>
RenderOpBuilder         *builder, const graphene_matrix_t *modelview
</FUNCTION>
<FUNCTION>
<NAME>ops_set_projection</NAME>
<RETURNS>graphene_matrix_t  </RETURNS>
RenderOpBuilder         *builder, const graphene_matrix_t *projection
</FUNCTION>
<FUNCTION>
<NAME>ops_set_viewport</NAME>
<RETURNS>graphene_rect_t    </RETURNS>
RenderOpBuilder         *builder, const graphene_rect_t   *viewport
</FUNCTION>
<FUNCTION>
<NAME>ops_set_texture</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, int                      texture_id
</FUNCTION>
<FUNCTION>
<NAME>ops_set_render_target</NAME>
<RETURNS>int                </RETURNS>
RenderOpBuilder         *builder, int                      render_target_id
</FUNCTION>
<FUNCTION>
<NAME>ops_set_opacity</NAME>
<RETURNS>float              </RETURNS>
RenderOpBuilder         *builder, float                    opacity
</FUNCTION>
<FUNCTION>
<NAME>ops_set_color</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, const GdkRGBA           *color
</FUNCTION>
<FUNCTION>
<NAME>ops_set_color_matrix</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, const graphene_matrix_t *matrix, const graphene_vec4_t   *offset
</FUNCTION>
<FUNCTION>
<NAME>ops_set_border</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, const float             *widths, const GskRoundedRect    *outline
</FUNCTION>
<FUNCTION>
<NAME>ops_set_border_color</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder         *builder, const GdkRGBA           *color
</FUNCTION>
<FUNCTION>
<NAME>ops_draw</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder        *builder, const GskQuadVertex     vertex_data[GL_N_VERTICES]
</FUNCTION>
<FUNCTION>
<NAME>ops_offset</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder        *builder, float                   x, float                   y
</FUNCTION>
<FUNCTION>
<NAME>ops_add</NAME>
<RETURNS>void               </RETURNS>
RenderOpBuilder        *builder, const RenderOp         *op
</FUNCTION>
<MACRO>
<NAME>GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE (gsk_vulkan_blend_mode_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_blend_mode_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  * </RETURNS>
GdkVulkanContext           *context, VkPipelineLayout            layout, const char                 *shader_name, VkRenderPass                render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blend_mode_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                </RETURNS>
GskVulkanBlendModePipeline *pipeline
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blend_mode_pipeline_collect_vertex_data</NAME>
<RETURNS>void                 </RETURNS>
GskVulkanBlendModePipeline *pipeline, guchar                     *data, const graphene_rect_t      *bounds, const graphene_rect_t      *start_bounds, const graphene_rect_t      *end_bounds, GskBlendMode                blend_mode
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blend_mode_pipeline_draw</NAME>
<RETURNS>gsize                </RETURNS>
GskVulkanBlendModePipeline *pipeline, VkCommandBuffer             command_buffer, gsize                       offset, gsize                       n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanBlendModePipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanBlendModePipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_BLUR_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_BLUR_PIPELINE (gsk_vulkan_blur_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_blur_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  *     </RETURNS>
GdkVulkanContext        *context, VkPipelineLayout         layout, const char              *shader_name, VkRenderPass             render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blur_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanBlurPipeline   *pipeline
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blur_pipeline_collect_vertex_data</NAME>
<RETURNS>void                     </RETURNS>
GskVulkanBlurPipeline   *pipeline, guchar                  *data, const graphene_rect_t   *rect, const graphene_rect_t   *tex_rect, double                   radius
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_blur_pipeline_draw</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanBlurPipeline   *pipeline, VkCommandBuffer          command_buffer, gsize                    offset, gsize                    n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanBlurPipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanBlurPipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE (gsk_vulkan_color_text_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_color_text_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  *     </RETURNS>
GdkVulkanContext               *context, VkPipelineLayout                layout, const char                     *shader_name, VkRenderPass                    render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_color_text_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanColorTextPipeline     *pipeline, int                             num_instances
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_color_text_pipeline_collect_vertex_data</NAME>
<RETURNS>void                     </RETURNS>
GskVulkanColorTextPipeline     *pipeline, guchar                         *data, GskVulkanRenderer              *renderer, const graphene_rect_t          *rect, PangoFont                      *font, guint                           total_glyphs, const PangoGlyphInfo           *glyphs, float                           x, float                           y, guint                           start_glyph, guint                           num_glyphs, float                           scale
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_color_text_pipeline_draw</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanColorTextPipeline     *pipeline, VkCommandBuffer                 command_buffer, gsize                           offset, gsize                           n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanColorTextPipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanColorTextPipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE (gsk_vulkan_cross_fade_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_cross_fade_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  * </RETURNS>
GdkVulkanContext           *context, VkPipelineLayout            layout, const char                 *shader_name, VkRenderPass                render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_cross_fade_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                </RETURNS>
GskVulkanCrossFadePipeline *pipeline
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_cross_fade_pipeline_collect_vertex_data</NAME>
<RETURNS>void                 </RETURNS>
GskVulkanCrossFadePipeline *pipeline, guchar                     *data, const graphene_rect_t      *bounds, const graphene_rect_t      *start_bounds, const graphene_rect_t      *end_bounds, double                      progress
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_cross_fade_pipeline_draw</NAME>
<RETURNS>gsize                </RETURNS>
GskVulkanCrossFadePipeline *pipeline, VkCommandBuffer             command_buffer, gsize                       offset, gsize                       n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanCrossFadePipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanCrossFadePipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_GLYPH_CACHE</NAME>
#define GSK_TYPE_VULKAN_GLYPH_CACHE (gsk_vulkan_glyph_cache_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_glyph_cache_new</NAME>
<RETURNS>GskVulkanGlyphCache   *</RETURNS>
GskRenderer         *renderer, GdkVulkanContext    *vulkan
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_glyph_cache_get_glyph_image</NAME>
<RETURNS>GskVulkanImage  *     </RETURNS>
GskVulkanGlyphCache *cache, GskVulkanUploader   *uploader, guint                index
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_glyph_cache_lookup</NAME>
<RETURNS>GskVulkanCachedGlyph  *</RETURNS>
GskVulkanGlyphCache *cache, gboolean             create, PangoFont           *font, PangoGlyph           glyph, float                scale
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_glyph_cache_begin_frame</NAME>
<RETURNS>void                   </RETURNS>
GskVulkanGlyphCache *cache
</FUNCTION>
<STRUCT>
<NAME>GskVulkanGlyphCache</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_TEXT_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_TEXT_PIPELINE (gsk_vulkan_text_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_text_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  *     </RETURNS>
GdkVulkanContext              *context, VkPipelineLayout               layout, const char                    *shader_name, VkRenderPass                   render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_text_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanTextPipeline         *pipeline, int                            num_instances
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_text_pipeline_collect_vertex_data</NAME>
<RETURNS>void                     </RETURNS>
GskVulkanTextPipeline         *pipeline, guchar                         *data, GskVulkanRenderer              *renderer, const graphene_rect_t          *rect, PangoFont                      *font, guint                           total_glyphs, const PangoGlyphInfo           *glyphs, const GdkRGBA                  *color, float                           x, float                           y, guint                           start_glyph, guint                           num_glyphs, float                           scale
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_text_pipeline_draw</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanTextPipeline         *pipeline, VkCommandBuffer                 command_buffer, gsize                           offset, gsize                           n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanTextPipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanTextPipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_VULKAN_TEXTURE_PIPELINE</NAME>
#define GSK_TYPE_VULKAN_TEXTURE_PIPELINE (gsk_vulkan_texture_pipeline_get_type ())
</MACRO>
<FUNCTION>
<NAME>gsk_vulkan_texture_pipeline_new</NAME>
<RETURNS>GskVulkanPipeline  *     </RETURNS>
GdkVulkanContext         *context, VkPipelineLayout          layout, const char               *shader_name, VkRenderPass              render_pass
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_texture_pipeline_count_vertex_data</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanTexturePipeline *pipeline
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_texture_pipeline_collect_vertex_data</NAME>
<RETURNS>void                     </RETURNS>
GskVulkanTexturePipeline *pipeline, guchar                   *data, const graphene_rect_t    *rect, const graphene_rect_t    *tex_rect
</FUNCTION>
<FUNCTION>
<NAME>gsk_vulkan_texture_pipeline_draw</NAME>
<RETURNS>gsize                    </RETURNS>
GskVulkanTexturePipeline *pipeline, VkCommandBuffer           command_buffer, gsize                     offset, gsize                     n_commands
</FUNCTION>
<STRUCT>
<NAME>GskVulkanTexturePipeline</NAME>
</STRUCT>
<STRUCT>
<NAME>GskVulkanTexturePipelineLayout</NAME>
</STRUCT>
<MACRO>
<NAME>GSK_TYPE_RENDER_NODE_TYPE</NAME>
#define GSK_TYPE_RENDER_NODE_TYPE (gsk_render_node_type_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_TYPE_SCALING_FILTER</NAME>
#define GSK_TYPE_SCALING_FILTER (gsk_scaling_filter_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_TYPE_BLEND_MODE</NAME>
#define GSK_TYPE_BLEND_MODE (gsk_blend_mode_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_TYPE_CORNER</NAME>
#define GSK_TYPE_CORNER (gsk_corner_get_type ())
</MACRO>
<MACRO>
<NAME>GSK_TYPE_SERIALIZATION_ERROR</NAME>
#define GSK_TYPE_SERIALIZATION_ERROR (gsk_serialization_error_get_type ())
</MACRO>
