summaryrefslogtreecommitdiff
path: root/gdk/gdkinternals.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/gdkinternals.h')
-rw-r--r--gdk/gdkinternals.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index d70b6c4742..d1eb2b1f7a 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -84,7 +84,8 @@ typedef enum {
GDK_DEBUG_DRAW = 1 << 9,
GDK_DEBUG_EVENTLOOP = 1 << 10,
GDK_DEBUG_FRAMES = 1 << 11,
- GDK_DEBUG_SETTINGS = 1 << 12
+ GDK_DEBUG_SETTINGS = 1 << 12,
+ GDK_DEBUG_OPENGL = 1 << 13
} GdkDebugFlag;
typedef enum {
@@ -208,8 +209,18 @@ struct _GdkWindow
struct {
cairo_region_t *region;
cairo_surface_t *surface;
+
+ /* Areas of region that have been copied to the back buffer already */
+ cairo_region_t *flushed_region;
+ /* Areas of region that have been copied to the back buffer but
+ needs furter blending of surface data. These two regions are
+ always non-intersecting. */
+ cairo_region_t *need_blend_region;
+
gboolean surface_needs_composite;
+ gboolean use_gl;
} current_paint;
+ GdkGLContext *gl_paint_context;
cairo_region_t *update_area;
guint update_freeze_count;
@@ -327,6 +338,10 @@ void _gdk_set_window_state (GdkWindow *window,
gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface,
GdkRectangle *extents);
+void gdk_gl_texture_from_surface (cairo_surface_t *surface,
+ cairo_region_t *region);
+void gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface,
+ GdkWindow *window);
cairo_region_t *gdk_cairo_region_from_clip (cairo_t *cr);
@@ -342,6 +357,9 @@ void _gdk_window_destroy (GdkWindow *window,
void _gdk_window_clear_update_area (GdkWindow *window);
void _gdk_window_update_size (GdkWindow *window);
gboolean _gdk_window_update_viewable (GdkWindow *window);
+GdkGLContext * gdk_window_get_paint_gl_context (GdkWindow *window,
+ GError **error);
+
void _gdk_window_process_updates_recurse (GdkWindow *window,
cairo_region_t *expose_region);