gsk: Store blend mode in the render node
This commit is contained in:
@@ -1226,6 +1226,49 @@ gsk_render_node_set_name (GskRenderNode *node,
|
||||
node->name = g_strdup (name);
|
||||
}
|
||||
|
||||
/**
|
||||
* gsk_render_node_set_blend_mode:
|
||||
* @node: a #GskRenderNode
|
||||
* @blend_mode: the blend mode to be applied to the node's children
|
||||
*
|
||||
* Sets the blend mode to be used when rendering the children
|
||||
* of the @node.
|
||||
*
|
||||
* The default value is %GSK_BLEND_MODE_DEFAULT.
|
||||
*
|
||||
* Since: 3.22
|
||||
*/
|
||||
void
|
||||
gsk_render_node_set_blend_mode (GskRenderNode *node,
|
||||
GskBlendMode blend_mode)
|
||||
{
|
||||
g_return_if_fail (GSK_IS_RENDER_NODE (node));
|
||||
g_return_if_fail (!node->is_mutable);
|
||||
|
||||
if (node->blend_mode == blend_mode)
|
||||
return;
|
||||
|
||||
node->blend_mode = blend_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* gsk_render_node_get_blend_mode:
|
||||
* @node: a #GskRenderNode
|
||||
*
|
||||
* Retrieves the blend mode set by gsk_render_node_set_blend_mode().
|
||||
*
|
||||
* Returns: the blend mode
|
||||
*
|
||||
* Since: 3.22
|
||||
*/
|
||||
GskBlendMode
|
||||
gsk_render_node_get_blend_mode (GskRenderNode *node)
|
||||
{
|
||||
g_return_val_if_fail (GSK_IS_RENDER_NODE (node), GSK_BLEND_MODE_DEFAULT);
|
||||
|
||||
return node->blend_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* gsk_render_node_get_draw_context:
|
||||
* @node: a #GskRenderNode
|
||||
|
||||
@@ -115,6 +115,12 @@ gboolean gsk_render_node_is_opaque (GskRenderNode *
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
cairo_t * gsk_render_node_get_draw_context (GskRenderNode *node);
|
||||
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
void gsk_render_node_set_blend_mode (GskRenderNode *node,
|
||||
GskBlendMode blend_mode);
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
GskBlendMode gsk_render_node_get_blend_mode (GskRenderNode *node);
|
||||
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
void gsk_render_node_set_name (GskRenderNode *node,
|
||||
const char *name);
|
||||
|
||||
@@ -37,6 +37,9 @@ struct _GskRenderNode
|
||||
/* Paint opacity */
|
||||
double opacity;
|
||||
|
||||
/* Blend mode */
|
||||
GskBlendMode blend_mode;
|
||||
|
||||
/* Clip rectangle */
|
||||
graphene_rect_t bounds;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user