__DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf);
EGLBoolean ret;
+ if (!dri2_dpy->vtbl->swap_buffers_region)
+ return EGL_FALSE;
ret = dri2_dpy->vtbl->swap_buffers_region(drv, disp, surf, numRects, rects);
/* SwapBuffers marks the end of the frame; reset the damage region for
EGLint x, EGLint y, EGLint width, EGLint height)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+ if (!dri2_dpy->vtbl->post_sub_buffer)
+ return EGL_FALSE;
return dri2_dpy->vtbl->post_sub_buffer(drv, disp, surf, x, y, width, height);
}
void *native_pixmap_target)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+ if (!dri2_dpy->vtbl->copy_buffers)
+ return _eglError(EGL_BAD_NATIVE_PIXMAP, "no support for native pixmaps");
return dri2_dpy->vtbl->copy_buffers(drv, disp, surf, native_pixmap_target);
}
dri2_query_buffer_age(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+ if (!dri2_dpy->vtbl->query_buffer_age)
+ return 0;
return dri2_dpy->vtbl->query_buffer_age(drv, disp, surf);
}
EGLuint64KHR *sbc)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+ if (!dri2_dpy->vtbl->get_sync_values)
+ return EGL_FALSE;
return dri2_dpy->vtbl->get_sync_values(disp, surf, ust, msc, sbc);
}
_EGLImage *img)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
+ if (!dri2_dpy->vtbl->create_wayland_buffer_from_image)
+ return NULL;
return dri2_dpy->vtbl->create_wayland_buffer_from_image(drv, disp, img);
}