Commit Graph

714 Commits

Author SHA1 Message Date
Jean-Philippe Andre 82e8028b5d evas/cserve2: Fix image preload with gl-x11 engine
Cserves supports only the SW (xlib) and GL (gl-x11) engines.
Also, improve cs2 support for some lesser used functions in the
gl_x11 engine.
2013-10-30 19:48:17 +09:00
Carsten Haitzler 309e287b7c evas - gif loader rewrite (clean up code, document it a lot AND fix bugs)
after several days of beating head on desk, i gave up trying to find
the exact cause of some gifs not rendering right as animated gifs due
to the loader. it had something to do with dispose mode handling and
which frame it was applied to. i noticed the structure made it also
hard to fix, so this re-structures the entire thing with cleaner code,
less code AND more comments, with a limited memory cache (512k) for
previous frames per image (to avoid eating up huge memory blobs for
big/long animations - though at the expense of cpu), and with some
notes for future fixes - like fixing the "load 2 copies of the same
animated gif" issue... that's another day.

this does fix https://phab.enlightenment.org/T443 along with many
other things.
2013-10-30 18:18:08 +09:00
Sung W. Park 9bb4c48691 EvasGL: cleaning up unnecessary code.
Cleaning up unnecessary code.
2013-10-30 10:47:52 +09:00
Chris Michael 40a2dfc870 On a focus_in event, if the ecore_evas already has focus, don't resend
a focus in. Similar change for focus_out also.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-29 08:41:48 +00:00
Chris Michael 49dfea5566 If mouse is already inside the ecore_evas, then we don't need to call
the mouse_in function of the ecore_evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-29 08:05:32 +00:00
Jean-Philippe Andre aa6d4a3756 evas/cserve2: Fix error path in evas_cache2_image_writable()
Return NULL and check for nullity in the only calling function.

Fixes CID 1039461 (Logically dead code)
2013-10-29 15:12:58 +09:00
Rafael Antognolli ccdeae7ce4 ecore/wayland: Use sync callback to report end of ecore_wl_init().
At the end of the ecore_wl_init() function, send a sync request to the
server, and add a callback listener to the "done" event. When this event
is received, we are sure that all the registry bind requests done so
far were processed already, and that the registry and globals are
available and can be used.

Now, on the functions that request interfaces or registry, we call
_ecore_wl_init_wait(), which will check if the callback was received
already (that means that all requests inside the init were processed).
If it was not yet, then we wait until receiving that callback, before
returning the requested data.
2013-10-28 14:47:33 -02:00
Rafael Antognolli ad731e8b21 Revert "change init done bindings."
This reverts commit b87afd1b94.

Wrong branch, wrong commit.
2013-10-28 14:46:40 -02:00
Rafael Antognolli b87afd1b94 change init done bindings. 2013-10-28 14:07:25 -02:00
Jean-Philippe Andre 3889feca24 evas/cserve2: Implement support for GL engine
Simply call the appropriate cache2 functions when possible
and check for usage of cache2 whenever an evas_cache_ function
is called.

This effectively adds cserve2 image (data) load support for the
GL engines. Fonts were already working out-of-the-box.
2013-10-28 15:47:15 +09:00
Jean-Philippe Andre 1e82480c9a evas/cserve2: Use scalecache with cserve2
Let's reuse the logic from scalecache and call cserve2
functions when the scalecache should be used.
So, now, cserve2 server will not scale any image... This is
too computationally intensive for the server's main thread.

This is not optimal but makes a hell of a lot more sense for
the moment. (since cserve2 manages the SHM segments)
2013-10-28 15:47:15 +09:00
Jean-Philippe Andre 97d9fab704 evas/cserve2: Fallback to normal cache for animated gifs
Pass around "animated" flag for images that can be animated.
Fallback to local cache if the image is animated.
Implementing support for animated images in cserve2 does
not seem to make a lot of sense considering each frame must
be requested independently in real time,... and to be honest
there doesn't seem to be any valid use case anyway :)
2013-10-28 15:47:15 +09:00
Jean-Philippe Andre d76e869a59 evas/cserve2: Fallback to normal cache for mmap
cserve2 can't handle virtual files (mmap-only), by design.
Proper support can be added later on, but for now we might want
to just fallback to the normal cache functions.

Fixes photocam test
2013-10-28 15:47:15 +09:00
Sung W. Park 7dc102c55f EvasGL: Fixed direct rendering not clipping issue
Evas GL direct rendering mode didn't properly take into account
the image object's clipping information and clip the region that
it was directly rendering to. Hence there were issues with the
direct rendering region drawing over the objects that are sitting
on top of it.

Also, cleaned up the direct rendering coordinate computation code
and a nasty dependency with image object that should have been
removed a long time ago.  Basically the evas-gl engine was directly
accessing the image object data structure for its data when it
really should have just passed along necessary information.
2013-10-24 17:42:21 +09:00
Carsten Haitzler a3aa1ed7f0 ecore-evas - handle mouse out then in due to click-to-focus passive grabs 2013-10-19 02:46:25 +09:00
discomfitor 73bd605b7f cosmetic/logic move evas_sync call into same if block when applying alpha settings that might be deferred 2013-10-16 17:57:07 +01:00
Carsten Haitzler 06c3c0cd0c async render -> alpha set. if not visible dont WAIT. do it now. 2013-10-17 00:00:05 +09:00
Carsten Haitzler 7d7f548afc evas - gl - dont allocate image and/or texture until needed on native unset 2013-10-16 22:56:38 +09:00
Carsten Haitzler e309967384 Revert "ecore_evas: window does not go back to normal state if you set iconified to EINA_FALSE."
This reverts commit 9bfb730ff5.

wrong! on deiconify this will now FORCE a ACTIVATE request to the wm
(which asks the wm to focus the window/hilight it and make it active.
might switch desktops or whatever). this is wrong. de-icoifying a
windows does NOT mean ALSO activating it!. the log message also doesnt
say what "go back to normal state"... means.... do they expect/INSIST
windows MUSt be focused after de-iconification? that's wrong as it's a
window management FOCUS policy, not something to do in the lib.
2013-10-15 10:45:37 +09:00
Sung W. Park 56e71e05bb Evas: EGL-GL backends. Call eglReleaseThread() upon shutdown
Call proper cleanup code upon terminating egl use.
2013-10-14 14:37:36 +09:00
Michal Jagiello 9bfb730ff5 ecore_evas: window does not go back to normal state if you set iconified to EINA_FALSE.
Reviewers: cedric, raster, Hermet

Differential Revision: https://phab.enlightenment.org/D245

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-10-14 12:10:19 +09:00
Stefan Schmidt ac89c082a4 Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool.""
Revert now that it is fixed in eina.

This reverts commit 875e7cf74d.
2013-10-11 09:42:49 +01:00
Stefan Schmidt ab0f7ca625 Revert "Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool."""
Is there a title for the commiter with the longest revert of a revert list?

I screwed this one up. Had other local changes that sneaked in.
Resetting and doing it right now.

This reverts commit ee155b771d.
2013-10-11 09:41:22 +01:00
Stefan Schmidt ee155b771d Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool.""
You can bet on reverting makes people speed up the process in fixing it.
Revert the revert here now that Cedric fixed it in eina.

This reverts commit 875e7cf74d.
2013-10-11 09:36:35 +01:00
Stefan Schmidt 875e7cf74d Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool."
This patch brings in constant E crash for me. It seems to be timing
related which somehow leads to a mem corruption. Revert it for now
to allow people using E while Cedric looks into it.

This reverts commit 12d34309c7.
2013-10-11 09:18:10 +01:00
Carsten Haitzler 69e27abdc3 eina - and e3fl in general - stop using eina_error_get/set - useless really 2013-10-11 16:50:40 +09:00
Cedric Bail 12d34309c7 eina: use Eina_Spinlock for Eina_Chained_Mempool. 2013-10-11 11:08:17 +09:00
Carsten Haitzler e383e3096d evas - try cleanup pipe_region_intersects again.. this time without bugs. 2013-10-01 20:57:39 +09:00
Vincent Torri 3b8b2ac66c evas: add JPEG 2000 loader.
This add finally support for JPEG 2000, but be aware that libopenjpeg
is very badly managed. There is currently only version 1.5.x that does
provide the right files, is usable by a third party and portable. You
can seriously forget any other version.
2013-10-01 16:38:44 +09:00
Carsten Haitzler 0732fef6ec Revert "evas gl engine - simplify and optimise pipe region intersection checks."
This reverts commit d486150412.
2013-09-27 17:57:41 +09:00
Carsten Haitzler d486150412 evas gl engine - simplify and optimise pipe region intersection checks. 2013-09-26 19:20:22 +09:00
Sung W. Park b9e3e6be57 EvasGL: Fixed a bug where the wrong data variable to buffer alloc func.
It's an optional feature so it's not automatically turned on but
would have caused a segfault somewhere.  Somehow slipped notice
but fixed now.
2013-09-17 17:24:30 +09:00
Chris Michael 592076e319 Reset window opaque region on 180 degree flips also.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 08:27:15 +01:00
Chris Michael d8ec30d7cf Call common rotation code before setting engine info
NB: Part of Phab T359 fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 07:41:08 +01:00
Chris Michael 70db3bff95 Rework common rotation code to match X11 more closely.
NB: Part of Phab T359 fix.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-17 07:41:08 +01:00
Jihoon Kim 6ff49dbc70 ecore_imf: Fix memory leak in scim immodule 2013-09-12 11:49:06 +09:00
Chris Michael ec76c76f74 Restore old functionality of ecore_evas_alpha_set.
NB: We will still create all new canvases as alpha by setting it in evas,
however this allows the 'state' of ecore_evas_alpha_set/get to retain
it's original functionality and thus accurately report what a client
application May have set alpha value too.

NB: Fixes Phab Ticket T350

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-10 14:37:17 +01:00
Chris Michael 6d3c50c3b6 On a swapbuf reconfigure, don't check for alpha changing state.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-10 14:37:17 +01:00
Sung W. Park 4ece1a1f9f EvasGL: Fix surface destroy mismatch bug.
For EvasGL direct rendering, EvasGL does a make_current to the
surface that evas is holding on to.  When EvasGL was shutting down
it was wrongly deleting evas' surface. This issue was temporarily
fixed by Raphael before but the proper fix was added.
2013-09-10 13:53:56 +09:00
Cedric Bail 5c82716fe8 evas: factorize some code. 2013-09-09 18:59:21 +09:00
Chris Michael 03604a15b6 Merge branch 'framespace' 2013-09-04 14:36:29 +01:00
Chris Michael 609941e0fa Create any wayland canvases as Alpha by default now.
Remove calls to ecore_wl_window_update_size inside the alpha &
transparent_do functions (this call not needed here anymore).

NB: This is needed due to recent frame "fixes". Basically, even tho we
set the opaque region correctly on a surface now, if the canvas itself
is not alpha, then we will end up with a black "spacer" around the
window.

NNB: Tested Both engines with terminology (both translucent and not) and also the window state test in elementary.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-04 14:25:50 +01:00
Rafael Antognolli 2e2cac43da evas/gl: Do not reassign the surface during make current.
There was already a surface created by _evgl_tls_resource_create(). If
we assign a new one here, the wrong one will be destroyed at
_evgl_tls_resource_destroy(), and later the GL window will be destroyed
before the surface, causing invalid access errors.

This fixes https://phab.enlightenment.org/T326
2013-09-04 15:20:59 -03:00
Davide Andreoli 60a9d16676 emotion_generic: tabs-- 2013-09-01 18:43:13 +02:00
Chris Michael 517f8fe2b1 Update ecore_evas wayland_egl for removal of server_allocation member.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 781b3844b1 Update ecore_evas wayland_shm routines for removal of
server_allocation member.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 69be933627 Update common routines for removal of server_allocation field.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael f940f11a9b Fix copy/paste issue.
Use proper width & height for the new tilebuffer.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 09:06:53 +01:00
Chris Michael 76cea1712c Avoid potential memleak on rotation of tilebuf.
Port of 70f443d8a8 to wayland egl

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:24:10 +01:00
Chris Michael ce716ff052 Avoid potential memleak on rotation of tilebuf.
Port of 70f443d8a8 to wayland_shm

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:21:36 +01:00