It might be that our engine list is empty and thus our engine might still
be set to NULL. Better check and return if this is the case instead of
dereferencing NULL.
Add an input method module supporting the Wayland input method protocol.
In v2:
- Missing call to ecore_wl_shutdown() in im_module_shutdown()
- Access the already stored 'wayland globals' with ecore_wl_globals_get()
- Fixed compilation by adding -I(top_srcdir)/src/efl to CFLAGS
- EFL formatting fixes
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
NOTE: when using Evas_Object image preload infrastructure the GL texture
upload was uploaded from the main loop during the rendering stage. This
could lead to some frame drop during fast animation due to the time needed
to upload that texture.
This patch fix this problem by uploading a small texture quickly (16x16)
and waiting for going back to the main loop to be able to use the same GL
context from another thread to do the texture upload asynchronously without
blocking the main loop.
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.
Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h
Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
prefers verbs to be last for function declarations).
Also, remove unnecessary if block which was checking for the
Render_Engine pixels_get function as it was previously checked for in
the 'if' above.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
Evas_GL Direct rendering is an optimization path that renders
directly to the window if conditions are met. Because evas gl
backend used to re-render the entire screen, evas_gl direct
rendering didin't have to concern with partial region rendering.
Now that partial rendering/swapping has been applied to evas gl-
backend, evas_gl direct rendering also had to take into account
clip regions. in order to properly apply it, some adjustments
were made to the engine functions and etc.
To avoid people getting confused over this code, like myself, add a comment
to clarify that only the elements need to be set to zero while the payload
does not matter here.
Test 23: load lots of scaled images and draw them
Problem: cs2 fails to load more images at some point. (root cause to be fixed!)
After that, client expects some data, but there is none, so it segfaults.
- Add code to allow Async Render with Wayland_Egl
(NB: Currently disabled. Evas_Textgrid borks when this is enabled)
- Create ecore_wl_window first so we can get surface and pass to evas.
- During show, we no longer need to pass the surface to evas.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
AND get the surface for it...so that we can pass the surface directly
to the evas engine.
NB: Works. nothing broken.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
- In common_render_updates_process, calls to window_damage will
Accumulate the damage, so add a call After to push damages.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
- Setenv for egl_platform before we init gl/egl, etc
- Ignore check for NULL surface to indicate destroying (this is all
not need now).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
comparisons.
Add comment about NULL surface being passed in.
Fix segfault when we close windows...uartie, this one's for you ;)
Signed-off-by: Chris Michael <devilhorns@comcast.net>
Because arc doesn't like me much at the moment here's a simple patch to
fix the gif loader for the latest libgif version. DGifOpen now takes a
error param as its final argument, if the param is not NULL it will
return a error code if it fails. Similar to another patch i sent a few
months back. The patch has been tested on OBS for old and new versions.
NB: This is needed because some compositors (Weston) are expecting
wl_surface_get_user_data to return a buffer.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
When moved mouse among two objects having cursor set,
EVAS_CALLBACK_MOUSE_OUT and EVAS_CALLBACK_MOUSE_IN are fired.
I observed that evas_object_del in callback of EVAS_CALLBACK_MOUSE_OUT
calls EVAS_CALLBACK_MOUSE_IN
so that newly added cursor object was detached.
Basically, EGL does not define a GL_DRAW_FRAMEBUFFER_BINDING so we
test for that and if not found then define it to be
GL_FRAMEBUFFER_BINDING
Signed-off-by: Chris Michael <devilhorns@comcast.net>
(Bad antognolli, No cookie !!)
NB: Fixes build break !!! If we are going to use defines from glext.h,
let's be sure to have the necessary header included Yes ?? ;)
Signed-off-by: Chris Michael <devilhorns@comcast.net>
If we don't do this, the framebuffer object used on shader_array_flush()
will be wrong.
NOTE: shader_array_flush() should take care of setting the fbo
correctly.
For native surface rendering (glX, egl) in gl-backend, if pixel get callback
function is called for native rendering, there is a case where evas will
try to call evas_gl_common_context_flush() to flush its remaining commands
in its command queue while the context is set current to the native surface/
context that is called within the pixel get callback. So, I've added an
engine function that forces a flush before it enters the pixel get callback
function.