XVisualInfo info;
GLConfig config;
Colormap cmap;
+ Display *disp;
Eina_Bool alpha;
};
static void
_visuals_hash_del_cb(void *data)
{
- free(data);
+ Evas_GL_X11_Visual *evis = data;
+ if (evis && evis->cmap && evis->disp)
+ XFreeColormap(evis->disp, evis->cmap);
+ free(evis);
}
static inline int
if (ref == 0)
{
if (context) eglDestroyContext(gw->egl_disp, context);
- eglTerminate(gw->egl_disp);
- eglReleaseThread();
eina_hash_free(_evas_gl_visuals);
_evas_gl_visuals = NULL;
+ eglTerminate(gw->egl_disp);
+ eglReleaseThread();
_tls_context_set(EGL_NO_CONTEXT);
}
#else
if (!evis->cmap)
{
/* save colormap now */
+ evis->disp = einfo->info.display;
evis->cmap = XCreateColormap(einfo->info.display,
RootWindow(einfo->info.display,
einfo->info.screen),