Direct Images. Add support for using native image binding. Add support
for setting GL surface capabilities. Fix up some overrides to be in
the proper place (glsym vs evgl).
NB: Yes, it is a bit large of a change during freeze, but there are no
API changes here, and it is well tested. Nothing broken (beyond what
was already broken).
SVN revision: 75826
When we create the egl window we should take rotation into
consideration, so account for that. Add an 'edges' variable to the
engine info structure. This is needed so we can implement resizing
windows from the top also. Make sure to use
wl_egl_window_get_attached_size and determine the edge we are resizing
from, so we can calculate the difference in sizes to send to
wl_egl_window_resize.
Add __UNUSED__ to function paramaters where it was missing, and fix
some compiler warnings.
SVN revision: 75215
wayland_egl engine caused by windows being hidden:
From: Rob Bradford <rob@linux.intel.com>
Date: Fri, 13 Jul 2012 19:13:12 +0100
Subject: [PATCH] evas(wayland_egl): Resolve a series of segfaults on
clean-up
The first was that when a window was being hidden the render engine
(e->engine.data.output) was being assigned to NULL (like on an error
path). I
checked other backends and they only free and nullify this pointer on
error
paths. By doing it on a hide it was interfering with cleanup process
for the
object.
This then highlighted a second crash from the derefence of the window
to NULL
when flushing the cache. If the window was hidden this window pointer
would
be NULL.
The third it highlighted was a duplicate call into
evas_gl_common_image_free
and the freeing of the image cache twice. By the time eng_image_free
has been
called the cache has already been freed so we can remove the duplicate
free.
SVN revision: 74330
From: Alex Wu <zhiwen.wu@linux.intel.com>
When calling elm_win_alpha_set(), the global EGLContext object keep
unchanged, but the new EGLSurface object subjects to the new EGLConfig
with changed alpha_size. This makes eng_window_new() failed and hence
free the Render_Engine object (e->engine.data.output) and nullize it.
Next time other objects reference the output, segfault occurs.
In this patch, I give every Evas_GL_Wl_Window object a EGLContext object
and all these EGLContext objects share the same shader program objects.
A new global EGLContext object "share_context" added, which is
responsible for keeping the shared objects alive. e.g. shader program
objects.At the first time succeeded to create a EGLContext, assign it to
the "share_context", and should not destory it in eng_window_free.
The "share_context" will be taken as the 3rd argument when calling
eglCreateContext(), and then updated to the new created EGLContext to
keep the shared gl objects available.
Thanks for devilhorns' review and suggestion.
SVN revision: 74328
Now evas will in all case do the layout during the prepare stage. It will do that
once and as long as the text didn't change. This does improve by a factor of at
least 2.3 in all expedite test case except the text change that only get a 30%
increase (I expect a drop in performance on non pipe rendering for text change
expedite test only, but this case is not common in real life).
This also fix the issue that show random size glyph when using pipe rendering.
SVN revision: 71220
if the eng setup has a NULL surface, and if the RenderEngine has an
existing surface, that means we are hiding/closing the window, and
thus should free the existing RenderEngine Window.
SVN revision: 67160
old version of this w/ the 3 includes Should be working, but I've
tested it on 2 machines now, and it fails on both with those lines in
there, so I am removing them).
Make wayland_egl engine Actually work and draw stuff now (too many
code changes to list them all separately). See http://i.imgur.com/i2eBE.png.
SVN revision: 67128