egl/dri2: move surface refcounting out of the platform code
All the platforms are duplicating what should be a driver/dri2 thing - refcounting. Just fold it accordingly. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
This commit is contained in:
parent
02f1158746
commit
8fb9ea413d
|
@ -1366,6 +1366,10 @@ static EGLBoolean
|
||||||
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||||
{
|
{
|
||||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||||
|
|
||||||
|
if (!_eglPutSurface(surf))
|
||||||
|
return EGL_TRUE;
|
||||||
|
|
||||||
return dri2_dpy->vtbl->destroy_surface(drv, dpy, surf);
|
return dri2_dpy->vtbl->destroy_surface(drv, dpy, surf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -344,9 +344,6 @@ droid_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
droid_free_local_buffers(dri2_surf);
|
droid_free_local_buffers(dri2_surf);
|
||||||
|
|
||||||
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
||||||
|
|
|
@ -191,9 +191,6 @@ dri2_drm_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) {
|
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) {
|
||||||
|
|
|
@ -161,9 +161,6 @@ surfaceless_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *sur
|
||||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
surfaceless_free_images(dri2_surf);
|
surfaceless_free_images(dri2_surf);
|
||||||
|
|
||||||
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
||||||
|
|
|
@ -229,9 +229,6 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||||
|
|
||||||
(void) drv;
|
(void) drv;
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) {
|
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++) {
|
||||||
|
|
|
@ -386,9 +386,6 @@ dri2_x11_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||||
|
|
||||||
(void) drv;
|
(void) drv;
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
(*dri2_dpy->core->destroyDrawable)(dri2_surf->dri_drawable);
|
||||||
|
|
||||||
if (dri2_dpy->dri2) {
|
if (dri2_dpy->dri2) {
|
||||||
|
|
|
@ -142,9 +142,6 @@ dri3_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||||
|
|
||||||
(void) drv;
|
(void) drv;
|
||||||
|
|
||||||
if (!_eglPutSurface(surf))
|
|
||||||
return EGL_TRUE;
|
|
||||||
|
|
||||||
loader_dri3_drawable_fini(&dri3_surf->loader_drawable);
|
loader_dri3_drawable_fini(&dri3_surf->loader_drawable);
|
||||||
|
|
||||||
free(surf);
|
free(surf);
|
||||||
|
|
Loading…
Reference in New Issue