diff options
Diffstat (limited to 'gdk/gdkgl.c')
-rw-r--r-- | gdk/gdkgl.c | 9 |
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; |