[gtk+] gl renderer: Reset clip when drawing offscreen
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gl renderer: Reset clip when drawing offscreen
- Date: Sat, 27 Jan 2018 11:22:19 +0000 (UTC)
commit 6e70079e632b1e05903361f3ed737e2e7ad14f15
Author: Timm Bäder <mail baedert org>
Date: Sat Jan 27 12:13:37 2018 +0100
gl renderer: Reset clip when drawing offscreen
Just like we reset the scissor test and the viewport, we also can't use
the current clip anymore in this case.
gsk/gl/gskglrenderer.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index 00dc364..c78f238 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -2232,6 +2232,7 @@ add_offscreen_ops (GskGLRenderer *self,
graphene_matrix_t prev_modelview;
graphene_rect_t prev_viewport;
graphene_matrix_t item_proj;
+ GskRoundedRect prev_clip;
/* We need the child node as a texture. If it already is one, we don't need to draw
* it on a framebuffer of course. */
@@ -2268,10 +2269,14 @@ add_offscreen_ops (GskGLRenderer *self,
ops_add (builder, &op);
prev_projection = ops_set_projection (builder, &item_proj);
prev_modelview = ops_set_modelview (builder, &identity);
- prev_viewport = ops_set_viewport (builder, &GRAPHENE_RECT_INIT (min_x, min_y, width, height));
+ prev_viewport = ops_set_viewport (builder, &GRAPHENE_RECT_INIT (min_x, min_y,
+ width, height));
+ prev_clip = ops_set_clip (builder,
+ &GSK_ROUNDED_RECT_INIT (min_x, min_y, width, height));
gsk_gl_renderer_add_render_ops (self, child_node, builder);
+ ops_set_clip (builder, &prev_clip);
ops_set_viewport (builder, &prev_viewport);
ops_set_modelview (builder, &prev_modelview);
ops_set_projection (builder, &prev_projection);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]