summaryrefslogtreecommitdiff
path: root/gdk/gdkgl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/gdkgl.c')
-rw-r--r--gdk/gdkgl.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c
index 3a6d2814ed..44d205edf0 100644
--- a/gdk/gdkgl.c
+++ b/gdk/gdkgl.c
@@ -335,7 +335,8 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
/* For direct paint of non-alpha renderbuffer, we can
just do a bitblit */
- if (source_type == GL_RENDERBUFFER &&
+ if ((_gdk_gl_flags & GDK_GL_FLAGS_SOFTWARE_DRAW_GL) == 0 &&
+ source_type == GL_RENDERBUFFER &&
alpha_size == 0 &&
direct_window != NULL &&
direct_window->current_paint.use_gl &&
@@ -415,7 +416,8 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
}
/* For direct paint of alpha or non-alpha textures we can use texturing */
- else if (source_type == GL_TEXTURE &&
+ else if ((_gdk_gl_flags & GDK_GL_FLAGS_SOFTWARE_DRAW_GL) == 0 &&
+ source_type == GL_TEXTURE &&
direct_window != NULL &&
direct_window->current_paint.use_gl &&
trivial_transform &&
@@ -602,7 +604,8 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
guint target;
paint_context = gdk_gl_context_get_current ();
- if (paint_context &&
+ if ((_gdk_gl_flags & GDK_GL_FLAGS_SOFTWARE_DRAW_SURFACE) == 0 &&
+ paint_context &&
GDK_GL_CONTEXT_GET_CLASS (paint_context)->texture_from_surface &&
GDK_GL_CONTEXT_GET_CLASS (paint_context)->texture_from_surface (paint_context, surface, region))
return;