Merge branch 'avoid-gl-texture-download' into 'master'

gsk: Avoid downloading GL textures when possible

See merge request GNOME/gtk!2628
This commit is contained in:
Matthias Clasen 2020-09-27 14:47:52 +00:00
commit 97d052ef1b

View File

@ -521,8 +521,15 @@ gsk_gl_driver_get_texture_for_texture (GskGLDriver *self,
if (GDK_IS_GL_TEXTURE (texture))
{
GdkGLContext *texture_context = gdk_gl_texture_get_context ((GdkGLTexture *)texture);
GdkGLContext *shared_context = gdk_gl_context_get_shared_context (self->gl_context);
if (texture_context != self->gl_context)
if (texture_context == self->gl_context ||
(gdk_gl_context_get_shared_context (texture_context) == shared_context && shared_context != NULL))
{
/* A GL texture from the same GL context is a simple task... */
return gdk_gl_texture_get_id ((GdkGLTexture *)texture);
}
else
{
cairo_surface_t *surface;
@ -539,11 +546,6 @@ gsk_gl_driver_get_texture_for_texture (GskGLDriver *self,
source_texture = downloaded_texture;
}
else
{
/* A GL texture from the same GL context is a simple task... */
return gdk_gl_texture_get_id ((GdkGLTexture *)texture);
}
}
else
{