if (!p_atomic_dec_zero(&dri2_dpy->ref_count))
return;
- _eglCleanupDisplay(disp);
dri2_display_destroy(disp);
}
static EGLBoolean
dri2_terminate(_EGLDisplay *disp)
{
- /* Release all non-current Context/Surfaces. */
- _eglReleaseDisplayResources(disp);
-
dri2_display_release(disp);
return EGL_TRUE;
if (!p_atomic_dec_zero(&wgl_dpy->ref_count))
return;
- _eglCleanupDisplay(disp);
wgl_display_destroy(disp);
}
static EGLBoolean
wgl_terminate(_EGLDisplay *disp)
{
- /* Release all non-current Context/Surfaces. */
- _eglReleaseDisplayResources(disp);
-
wgl_display_release(disp);
return EGL_TRUE;
RETURN_EGL_ERROR(NULL, EGL_BAD_DISPLAY, EGL_FALSE);
if (disp->Initialized) {
+ _eglReleaseDisplayResources(disp);
disp->Driver->Terminate(disp);
- /* do not reset disp->Driver */
- disp->ClientAPIsString[0] = 0;
- disp->Initialized = EGL_FALSE;
-
- /* Reset blob cache funcs on terminate. */
- disp->BlobCacheSet = NULL;
- disp->BlobCacheGet = NULL;
+ _eglCleanupDisplay(disp);
}
simple_mtx_unlock(&disp->Mutex);
disp->Configs = NULL;
}
- /* XXX incomplete */
+ /* do not reset disp->Driver */
+ disp->ClientAPIsString[0] = 0;
+ disp->Initialized = EGL_FALSE;
+
+ /* Reset blob cache funcs on terminate. */
+ disp->BlobCacheSet = NULL;
+ disp->BlobCacheGet = NULL;
}