gltexture: Fallback in download_float()

GLES only allows downloading float if the texture matches specific
criteria and I'm too lazy to determine them, so always fall back.

And the custom stride fallback code isn't necessary, because falling
back does exactly that step already.
This commit is contained in:
Benjamin Otte
2021-09-16 23:30:37 +02:00
parent a4f3fbbda1
commit 551f76ea69

View File

@@ -302,8 +302,6 @@ gdk_gl_texture_download_float (GdkTexture *texture,
gsize stride)
{
GdkGLTexture *self = GDK_GL_TEXTURE (texture);
int width, height, y;
float *copy;
if (self->saved)
{
@@ -311,22 +309,14 @@ gdk_gl_texture_download_float (GdkTexture *texture,
return;
}
width = gdk_texture_get_width (texture);
height = gdk_texture_get_height (texture);
if (stride == width * 4)
if (gdk_gl_context_get_use_es (self->context) ||
stride != texture->width * 4)
{
gdk_gl_texture_run (self, gdk_gl_texture_do_download_float, data);
GDK_TEXTURE_CLASS (gdk_gl_texture_parent_class)->download_float (texture, data, stride);
return;
}
copy = g_new (float, width * height * 4);
gdk_gl_texture_run (self, gdk_gl_texture_do_download_float, copy);
for (y = 0; y < height; y++)
memcpy (data + y * stride, copy + y * 4 * width, 4 * width);
g_free (copy);
gdk_gl_texture_run (self, gdk_gl_texture_do_download_float, data);
}
static void