parent
29e957d6a7
commit
f20b010d41
|
@ -330,7 +330,7 @@ eng_setup(Evas *e, void *in)
|
||||||
|
|
||||||
if (re->win)
|
if (re->win)
|
||||||
{
|
{
|
||||||
re->win->gl_context->shared->references++;
|
re->win->gl_context->references++;
|
||||||
eng_window_free(re->win);
|
eng_window_free(re->win);
|
||||||
inc = 1;
|
inc = 1;
|
||||||
gl_wins--;
|
gl_wins--;
|
||||||
|
@ -348,7 +348,7 @@ eng_setup(Evas *e, void *in)
|
||||||
info->info.rotation);
|
info->info.rotation);
|
||||||
if (re->win) gl_wins++;
|
if (re->win) gl_wins++;
|
||||||
if ((re->win) && (inc))
|
if ((re->win) && (inc))
|
||||||
re->win->gl_context->shared->references--;
|
re->win->gl_context->references--;
|
||||||
}
|
}
|
||||||
else if ((re->win->w != e->output.w) ||
|
else if ((re->win->w != e->output.w) ||
|
||||||
(re->win->h != e->output.h))
|
(re->win->h != e->output.h))
|
||||||
|
|
|
@ -395,14 +395,19 @@ eng_window_new(Display *disp,
|
||||||
void
|
void
|
||||||
eng_window_free(Evas_GL_X11_Window *gw)
|
eng_window_free(Evas_GL_X11_Window *gw)
|
||||||
{
|
{
|
||||||
|
int ref = 0;
|
||||||
win_count--;
|
win_count--;
|
||||||
eng_window_use(gw);
|
eng_window_use(gw);
|
||||||
if (gw == _evas_gl_x11_window) _evas_gl_x11_window = NULL;
|
if (gw == _evas_gl_x11_window) _evas_gl_x11_window = NULL;
|
||||||
if (gw->gl_context) evas_gl_common_context_free(gw->gl_context);
|
if (gw->gl_context)
|
||||||
|
{
|
||||||
|
ref = gw->gl_context->references;
|
||||||
|
evas_gl_common_context_free(gw->gl_context);
|
||||||
|
}
|
||||||
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
||||||
if (gw->egl_surface[0] != EGL_NO_SURFACE)
|
if (gw->egl_surface[0] != EGL_NO_SURFACE)
|
||||||
eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
|
eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
|
||||||
if (win_count == 0)
|
if (ref == 0)
|
||||||
{
|
{
|
||||||
if (context) eglDestroyContext(gw->egl_disp, context);
|
if (context) eglDestroyContext(gw->egl_disp, context);
|
||||||
eglTerminate(gw->egl_disp);
|
eglTerminate(gw->egl_disp);
|
||||||
|
@ -411,7 +416,7 @@ eng_window_free(Evas_GL_X11_Window *gw)
|
||||||
eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||||
#else
|
#else
|
||||||
if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
|
if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
|
||||||
if (win_count == 0)
|
if (ref == 0)
|
||||||
{
|
{
|
||||||
if (context) glXDestroyContext(gw->disp, context);
|
if (context) glXDestroyContext(gw->disp, context);
|
||||||
if (rgba_context) glXDestroyContext(gw->disp, rgba_context);
|
if (rgba_context) glXDestroyContext(gw->disp, rgba_context);
|
||||||
|
|
Loading…
Reference in New Issue