forked from enlightenment/efl
parent
bffbe552fc
commit
79045b88db
|
@ -1024,3 +1024,8 @@
|
||||||
2012-09-05 ChunEon Park (Hermet)
|
2012-09-05 ChunEon Park (Hermet)
|
||||||
|
|
||||||
* Added EVAS_CALLBACK_IMAGE_RESIZE. Now user have a notify when image data size of the image object is changed.
|
* Added EVAS_CALLBACK_IMAGE_RESIZE. Now user have a notify when image data size of the image object is changed.
|
||||||
|
|
||||||
|
2012-09-05 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Fix EGL/GLES bug when setting up rgba dest alpha windows where they
|
||||||
|
cease to be rendered to. use a shared context and it works.
|
||||||
|
|
|
@ -13,7 +13,9 @@ Improvements:
|
||||||
* Function to rotate an evas map with a quaternion: evas_map_util_quat_rotate().
|
* Function to rotate an evas map with a quaternion: evas_map_util_quat_rotate().
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
* Fix segmentation fault with the esvg loader.
|
* Fix segmentation fault with the esvg loader.
|
||||||
|
* Fix EGL/GLES dest alpha rendering bug (no rendering).
|
||||||
|
|
||||||
Evas 1.7.0
|
Evas 1.7.0
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ static Evas_GL_X11_Window *_evas_gl_x11_window = NULL;
|
||||||
|
|
||||||
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
||||||
static EGLContext context = EGL_NO_CONTEXT;
|
static EGLContext context = EGL_NO_CONTEXT;
|
||||||
static EGLContext rgba_context = EGL_NO_CONTEXT;
|
|
||||||
#else
|
#else
|
||||||
// FIXME: this will only work for 1 display connection (glx land can have > 1)
|
// FIXME: this will only work for 1 display connection (glx land can have > 1)
|
||||||
static GLXContext context = 0;
|
static GLXContext context = 0;
|
||||||
|
@ -197,26 +196,17 @@ eng_window_new(Display *disp,
|
||||||
eng_window_free(gw);
|
eng_window_free(gw);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (gw->alpha)
|
|
||||||
{
|
gw->egl_context[0] = eglCreateContext
|
||||||
if (rgba_context == EGL_NO_CONTEXT)
|
(gw->egl_disp, gw->egl_config, context, context_attrs);
|
||||||
rgba_context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
|
|
||||||
context_attrs);
|
|
||||||
gw->egl_context[0] = rgba_context;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (context == EGL_NO_CONTEXT)
|
|
||||||
context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
|
|
||||||
context_attrs);
|
|
||||||
gw->egl_context[0] = context;
|
|
||||||
}
|
|
||||||
if (gw->egl_context[0] == EGL_NO_CONTEXT)
|
if (gw->egl_context[0] == EGL_NO_CONTEXT)
|
||||||
{
|
{
|
||||||
ERR("eglCreateContext() fail. code=%#x", eglGetError());
|
ERR("eglCreateContext() fail. code=%#x", eglGetError());
|
||||||
eng_window_free(gw);
|
eng_window_free(gw);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
if (context == EGL_NO_CONTEXT) context = gw->egl_context[0];
|
||||||
|
|
||||||
if (eglMakeCurrent(gw->egl_disp,
|
if (eglMakeCurrent(gw->egl_disp,
|
||||||
gw->egl_surface[0],
|
gw->egl_surface[0],
|
||||||
gw->egl_surface[0],
|
gw->egl_surface[0],
|
||||||
|
@ -560,13 +550,13 @@ 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);
|
||||||
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 (gw->egl_context[0] != context)
|
||||||
|
eglDestroyContext(gw->egl_disp, gw->egl_context[0]);
|
||||||
if (ref == 0)
|
if (ref == 0)
|
||||||
{
|
{
|
||||||
if (context) eglDestroyContext(gw->egl_disp, context);
|
if (context) eglDestroyContext(gw->egl_disp, context);
|
||||||
if (rgba_context) eglDestroyContext(gw->egl_disp, rgba_context);
|
|
||||||
eglTerminate(gw->egl_disp);
|
eglTerminate(gw->egl_disp);
|
||||||
context = EGL_NO_CONTEXT;
|
context = EGL_NO_CONTEXT;
|
||||||
rgba_context = EGL_NO_CONTEXT;
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
|
if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
|
||||||
|
|
Loading…
Reference in New Issue