[gtk+/wip/otte/vulkan: 35/36] glrenderer: Always redraw the whole screen



commit 0324dd23c2b9403a484d31f7c2e736c312dd01d0
Author: Benjamin Otte <otte redhat com>
Date:   Sun Nov 27 16:37:31 2016 +0100

    glrenderer: Always redraw the whole screen

 gsk/gskglrenderer.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/gsk/gskglrenderer.c b/gsk/gskglrenderer.c
index b7f3d3d..9e26eec 100644
--- a/gsk/gskglrenderer.c
+++ b/gsk/gskglrenderer.c
@@ -324,6 +324,28 @@ gsk_gl_renderer_unrealize (GskRenderer *renderer)
   gsk_renderer_set_gl_context (renderer, NULL);
 }
 
+static GdkDrawingContext *
+gsk_gl_renderer_begin_draw_frame (GskRenderer          *renderer,
+                                  const cairo_region_t *region)
+{
+  cairo_region_t *whole_window;
+  GdkDrawingContext *result;
+  GdkWindow *window;
+
+  window = gsk_renderer_get_window (renderer);
+  
+  whole_window = cairo_region_create_rectangle (&(GdkRectangle) {
+                                                         0, 0,
+                                                         gdk_window_get_width (window),
+                                                         gdk_window_get_height (window) });
+
+  result = GSK_RENDERER_CLASS (gsk_gl_renderer_parent_class)->begin_draw_frame (renderer, whole_window);
+
+  cairo_region_destroy (whole_window);
+
+  return result;
+}
+
 static void
 gsk_gl_renderer_resize_viewport (GskGLRenderer         *self,
                                  const graphene_rect_t *viewport,
@@ -919,6 +941,7 @@ gsk_gl_renderer_class_init (GskGLRendererClass *klass)
 
   renderer_class->realize = gsk_gl_renderer_realize;
   renderer_class->unrealize = gsk_gl_renderer_unrealize;
+  renderer_class->begin_draw_frame = gsk_gl_renderer_begin_draw_frame;
   renderer_class->render = gsk_gl_renderer_render;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]