gl: Only clone texture surfaces

Using non-texture surfaces as source or mask will fail, so we need to
fallback.
Caught by the subsurface-modify-child test.
This commit is contained in:
Benjamin Otte 2010-06-08 04:00:02 +02:00
parent 44483d843e
commit 19bc6793d1

View file

@ -777,7 +777,9 @@ _cairo_gl_surface_clone_similar (void *abstract_surface,
{
cairo_gl_surface_t *surface = abstract_surface;
if (src->device == surface->base.device) {
/* XXX: Use GLCopyTexImage2D to clone non-texture-surfaces */
if (src->device == surface->base.device &&
_cairo_gl_surface_is_texture ((cairo_gl_surface_t *) src)) {
*clone_offset_x = 0;
*clone_offset_y = 0;
*clone_out = cairo_surface_reference (src);