diff options
author | Timm Bäder <mail@baedert.org> | 2018-12-03 18:11:09 +0100 |
---|---|---|
committer | Timm Bäder <mail@baedert.org> | 2018-12-04 06:30:47 +0100 |
commit | e1feb1b712a226d6beaf41c1a62f5579348111de (patch) | |
tree | 9f35b52c97a4a6d41fd061dc7ea4b1abfd4118a5 | |
parent | e8670c89ae0e6867964251bb14c518e4a1130d18 (diff) | |
download | gtk+-e1feb1b712a226d6beaf41c1a62f5579348111de.tar.gz |
gl renderer: Clip nodes: offset
-rw-r--r-- | gsk/gl/gskglrenderer.c | 10 |
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; |