es->geometry.width != output->base.current->width ||
es->geometry.height != output->base.current->height ||
es->transform.enabled ||
- es->images[0] == EGL_NO_IMAGE_KHR)
+ es->buffer == NULL)
return -1;
- bo = gbm_bo_create_from_egl_image(c->gbm,
- c->base.egl_display,
- es->images[0],
- es->geometry.width,
- es->geometry.height,
- GBM_BO_USE_SCANOUT);
+ bo = gbm_bo_import(c->gbm, GBM_BO_IMPORT_WL_BUFFER,
+ es->buffer, GBM_BO_USE_SCANOUT);
/* Need to verify output->region contained in surface opaque
* region. Or maybe just that format doesn't have alpha.
if (surface_is_primary(ec, es))
return -1;
- if (es->num_images != 1 || es->images[0] == EGL_NO_IMAGE_KHR)
+ if (es->buffer == NULL)
return -1;
if (!drm_surface_transform_supported(es))
if (!found)
return -1;
- bo = gbm_bo_create_from_egl_image(c->gbm, c->base.egl_display,
- es->images[0], es->geometry.width,
- es->geometry.height,
- GBM_BO_USE_SCANOUT);
+ bo = gbm_bo_import(c->gbm, GBM_BO_IMPORT_WL_BUFFER,
+ es->buffer, GBM_BO_USE_SCANOUT);
+ if (!bo)
+ return -1;
+
format = gbm_bo_get_format(bo);
handle = gbm_bo_get_handle(bo).s32;
stride = gbm_bo_get_pitch(bo);