glamor: Fix a missing set of the GL context.
Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
e924034269
commit
f12221cbd8
|
@ -166,10 +166,14 @@ glamor_get_flink_name(int fd, int handle, int *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
glamor_create_texture_from_image(struct glamor_egl_screen_private
|
glamor_create_texture_from_image(ScreenPtr screen,
|
||||||
*glamor_egl,
|
|
||||||
EGLImageKHR image, GLuint * texture)
|
EGLImageKHR image, GLuint * texture)
|
||||||
{
|
{
|
||||||
|
struct glamor_screen_private *glamor_priv =
|
||||||
|
glamor_get_screen_private(screen);
|
||||||
|
|
||||||
|
glamor_get_context(glamor_priv);
|
||||||
|
|
||||||
glGenTextures(1, texture);
|
glGenTextures(1, texture);
|
||||||
glBindTexture(GL_TEXTURE_2D, *texture);
|
glBindTexture(GL_TEXTURE_2D, *texture);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
@ -177,6 +181,9 @@ glamor_create_texture_from_image(struct glamor_egl_screen_private
|
||||||
|
|
||||||
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
|
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
|
||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
|
|
||||||
|
glamor_put_context(glamor_priv);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,7 +218,7 @@ glamor_egl_create_argb8888_based_texture(ScreenPtr screen, int w, int h)
|
||||||
gbm_bo_destroy(bo);
|
gbm_bo_destroy(bo);
|
||||||
if (image == EGL_NO_IMAGE_KHR)
|
if (image == EGL_NO_IMAGE_KHR)
|
||||||
return 0;
|
return 0;
|
||||||
glamor_create_texture_from_image(glamor_egl, image, &texture);
|
glamor_create_texture_from_image(screen, image, &texture);
|
||||||
eglDestroyImageKHR(glamor_egl->display, image);
|
eglDestroyImageKHR(glamor_egl->display, image);
|
||||||
|
|
||||||
return texture;
|
return texture;
|
||||||
|
@ -312,7 +319,7 @@ glamor_egl_create_textured_pixmap(PixmapPtr pixmap, int handle, int stride)
|
||||||
glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY);
|
glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
glamor_create_texture_from_image(glamor_egl, image, &texture);
|
glamor_create_texture_from_image(screen, image, &texture);
|
||||||
glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM);
|
glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM);
|
||||||
glamor_set_pixmap_texture(pixmap, texture);
|
glamor_set_pixmap_texture(pixmap, texture);
|
||||||
pixmap_priv->base.image = image;
|
pixmap_priv->base.image = image;
|
||||||
|
@ -348,7 +355,7 @@ glamor_egl_create_textured_pixmap_from_gbm_bo(PixmapPtr pixmap, void *bo)
|
||||||
glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY);
|
glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
glamor_create_texture_from_image(glamor_egl, image, &texture);
|
glamor_create_texture_from_image(screen, image, &texture);
|
||||||
glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM);
|
glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM);
|
||||||
glamor_set_pixmap_texture(pixmap, texture);
|
glamor_set_pixmap_texture(pixmap, texture);
|
||||||
pixmap_priv->base.image = image;
|
pixmap_priv->base.image = image;
|
||||||
|
|
Loading…
Reference in New Issue