summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2018-12-03 18:11:09 +0100
committerTimm Bäder <mail@baedert.org>2018-12-04 06:30:47 +0100
commite1feb1b712a226d6beaf41c1a62f5579348111de (patch)
tree9f35b52c97a4a6d41fd061dc7ea4b1abfd4118a5
parente8670c89ae0e6867964251bb14c518e4a1130d18 (diff)
downloadgtk+-e1feb1b712a226d6beaf41c1a62f5579348111de.tar.gz
gl renderer: Clip nodes: offset
-rw-r--r--gsk/gl/gskglrenderer.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index 753073e97b..f9fba2d12d 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -782,6 +782,8 @@ render_offset_node (GskGLRenderer *self,
case GSK_BORDER_NODE:
case GSK_OUTSET_SHADOW_NODE:
case GSK_LINEAR_GRADIENT_NODE:
+ case GSK_CLIP_NODE:
+ case GSK_ROUNDED_CLIP_NODE:
{
ops_offset (builder, dx, dy);
gsk_gl_renderer_add_render_ops (self, child, builder);
@@ -940,10 +942,6 @@ render_rounded_clip_node (GskGLRenderer *self,
RenderOpBuilder *builder)
{
const float scale = ops_get_scale (builder);
- const float min_x = node->bounds.origin.x;
- const float min_y = node->bounds.origin.y;
- const float max_x = min_x + node->bounds.size.width;
- const float max_y = min_y + node->bounds.size.height;
GskRoundedRect child_clip = *gsk_rounded_clip_node_peek_clip (node);
GskRoundedRect transformed_clip;
GskRoundedRect prev_clip;
@@ -972,6 +970,10 @@ render_rounded_clip_node (GskGLRenderer *self,
else if (graphene_rect_intersection (&builder->current_clip.bounds,
&transformed_clip.bounds, NULL))
{
+ const float min_x = builder->dx + node->bounds.origin.x;
+ const float min_y = builder->dy + node->bounds.origin.y;
+ const float max_x = min_x + node->bounds.size.width;
+ const float max_y = min_y + node->bounds.size.height;
graphene_matrix_t scale_matrix;
gboolean is_offscreen;
int texture_id;