Commit Graph

96 Commits

Author SHA1 Message Date
Cedric Bail 1ac1db596f evas: add interceptor for focus_set. 2013-08-29 11:21:20 +09:00
ChunEon Park 86ff7c3659 evas - oops, this line shouldn't be pushed. 2013-08-18 16:54:22 +09:00
ChunEon Park cbfba2fd59 evas - should be rendered even if non-smart proxy object doesn't affected by clipper. 2013-08-18 16:31:43 +09:00
Yury Usischev bd6de4ba8c Add neon for upscaling and map routines in evas. 2013-08-02 18:06:55 +09:00
ChunEon Park e2c395f049 evas/proxy - render the children of the proxy's source object when ther visibility is true.
This is not the perfect solution at this moment. This doesn't consider the cached clipper's visibility at all.
But at least this would be better than exist works. Should be improved.
2013-07-28 20:24:46 +09:00
Yury Usischev 3a5df752e6 evas - fix long standing c "fallback" code "simd" (2 register) multiply 2013-07-23 21:16:40 +09:00
Cedric Bail dc97ae0937 evas: reduce memory footprint. 2013-07-11 16:16:25 +09:00
Cedric Bail 48b40640b5 evas: no need to call eo_data_scope_get in many case after this change.
Reduce CPU usage by 5% in some case (especially when the CPU is not the
limiting factor like with the GL backend).
2013-07-09 09:48:09 +09:00
ChunEon Park 5f4ae9abeb evas/render - refactoring about checking smart member changed.
move those code to the evas_object_smart.
2013-07-02 15:28:56 +09:00
Cedric Bail e888a07c0a evas: cleanup headers. Should work on windows. 2013-06-26 11:24:29 +09:00
Cedric Bail d06a0982ef evas: add support for asynchronously uploading GL texture.
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.
2013-06-24 12:04:18 +09:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
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.
2013-06-20 12:53:29 +02:00
Sung W. Park 8e6f0aa11c Evas: add partial rendering support for evasgl direct rendering
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.
2013-06-17 18:32:00 +09:00
Sung W. Park 316be3e6c7 Revert "Saving evasgl direct partial rendering fix temporarily"
This reverts commit e6359132de.
2013-06-17 18:22:15 +09:00
Sung W. Park e6359132de Saving evasgl direct partial rendering fix temporarily 2013-06-17 17:52:16 +09:00
Cedric Bail 1073084807 evas: change cache API to forward Eo object. 2013-06-14 16:38:18 +09:00
Tom Hacohen d7db12f196 Revert "fix slowdown as a result of fixing text ascent/descent for fontsets from tom."
This reverts commit 9ecc87713d.
2013-06-10 14:51:38 +01:00
Cedric Bail 229d9f1efd evas: make it usable from modules. 2013-06-04 15:04:19 +09:00
Cedric Bail d1bed386bd evas: correctly detect if loader support asynchronous preloading.
This is an astonishing bug, I wonder since how long it has been there. It
is basically due to the use of void * and a wrong cast. Type checking is
clearly useful, let's use it more !
2013-06-04 11:22:13 +09:00
Cedric Bail ad5d75dfcd evas: add support for engine specific extention during thread task. 2013-06-04 11:20:25 +09:00
Cedric Bail 4d15a0f50f evas: add infra to block the main loop from evas.
PS: later on, I think we should just move evas to use Ecore infra
directly to create jobs and sync with the main loop.
2013-06-04 11:20:25 +09:00
ChunEon Park 11b43dad4b evas - fixed source clip. If the source object is a evas primitive object, then proxy won't clipped by proxy clipper itself. 2013-05-31 20:29:18 +09:00
Carsten Haitzler 9ecc87713d fix slowdown as a result of fixing text ascent/descent for fontsets from tom. 2013-05-31 20:09:41 +09:00
Sung W. Park 97806103eb evas: fix evas flushing its command queue to wrong gl context in gl-backends
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.
2013-05-13 14:12:36 +09:00
Rafael Antognolli cf9d3c90f5 Ecore/Evas: Add evas_event_input_multi_down/up().
These events (from multi-touch) also have information about the mouse
pointer position, so they must be translated by the framespace too.
2013-05-08 16:50:15 -03:00
Cedric Bail d833244100 evas: add infrastructure to open from Eina_File. 2013-05-08 18:17:00 +09:00
Cedric Bail c3f9d3b8b8 evas: Make Evas_Loader API public. 2013-05-08 18:16:59 +09:00
Cedric Bail 0d2c6481b8 evas: final cleanup of the API, should be ready to make it public by now. 2013-05-06 19:02:05 +09:00
Cedric Bail 6929386895 evas: now move eina_file also out of the frame_duration API. 2013-05-06 19:02:05 +09:00
Cedric Bail 7d83e42046 evas: move evas cache API outside of the image data loader API. 2013-05-06 19:02:04 +09:00
Cedric Bail 6f802ab234 evas: start work on making the loader module a public API.
Goal is to be able to remove all internal Evas call from inside all
loader module. To do so we are going to open and hold a reference to the
file from outside of the module, read the header, create the image data,
load the data, close that reference.

Once that done, the next step is to let the file remain open as soon as
the filename/key is set and add an API to set an Eina_File directly. This
way edje can maintain the same file open as it use for an edje object,
keeping things in sync and avoid rendering glitch during update.
2013-05-06 19:02:04 +09:00
Cedric Bail c5b0d28d73 evas: move flags and attribute around. 2013-05-06 19:02:04 +09:00
Daniel Zaoui 3d5136e4cc Efl: adapt legacy Evas callbacks to Eo callbacks mechanism. 2013-05-05 14:32:24 +03:00
Rafael Antognolli f490c4e5aa evas/events: Add evas_event_input_multi_move().
Same as evas_event_input_mouse_move, but for multi_move.
2013-05-03 17:19:13 -03:00
Rafael Antognolli f09e493bc2 evas/events: Add evas_event_input_mouse_move().
This function should be used internally by the input system
(Ecore_Evas_Input) to feed Evas with move events. The x,y event info is
relative to the base of the window/surface, instead of the 0,0 of the
canvas.

This case only happens for now under Wayland, where the 0,0 of the
canvas is translated due to the window decorations that are drawn by the
client.
2013-05-03 16:45:33 -03:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
Rafael Antognolli 59c37d1c7b evas/framespace: Add support for framespace offset rendering translation.
Instead of moving the objects by adding the framespace offset to them,
use this offset when rendering them. This way there's no change in the
object's geometry/position, it works correctly with map, and will be
automatically updated in case that the framespace values change (for
instance if one sets a window to borderless).

There are 2 main places where changes were needed:
 - output redraws, when they come from an object being changed, must be
   add the framespace offset to their damaged area;
 - checks to see if the object is inside a given rendering area, must
   also add this offset, since the object is actually being rendered on
   a different position;
2013-04-29 11:29:43 -03:00
Rafael Antognolli 4268bf9961 Revert "evas/map: Consider framespace offset when populating map points."
This reverts commit 3e43ad338d.
2013-04-29 11:29:43 -03:00
ChunEon Park 9fc2835cf4 evas - add evas_object_image_source_clip_set()/get() 2013-04-29 15:30:37 +09:00
ChunEon Park 911790b236 evas - fixed logic fault in proxy clipping. 2013-04-26 20:05:46 +09:00
ChunEon Park 188c345b27 evas - For compatibility, Make proxy's source clip to be optional. Im checking partal code for zmike. 2013-04-26 17:19:50 +09:00
Rafael Antognolli d05c58ff2c evas/wayland: Remove framespace clipper.
This clipper caused several bugs already, and there are some bugs still
not fixed. Let's remove it and try to fix any remaining with some other
kind of solution that does not depend on adding or clipping objects
during the evas render phase, which causes unexpected behavior.
2013-04-23 18:52:35 -03:00
Rafael Antognolli e937f1f5a3 evas/wayland: Unclip objects from the framespace after rendering.
These objects should be clipped only during rendering, since keeping
them clipped after that allows for unexpected behavior on the
application side. For instance, an application could check if objects
have clippers before doing something to them, assuming that some objects
should have no clipper, but under wayland, after the first render
iteration, there will be no objects without a clipper.

This commit fixes this behavior by unclipping objects that had no
clipper prior to the render iteration.

Additionally, it fixes a bug where a maximized/fullscreen window could
have not all of its content rendered immediately. This was occuring
because some objects could be clipped to the framespace clipper, but
considered invisible in the beginning of the render phase, where they
are evaluated. They were considered invisible because the framespace
clipper object was not resized at that phase yet, and thus these objects
were being clipped out from the viewport.
2013-04-18 16:38:16 -03:00
Carsten Haitzler 9b0e7626f4 Add subclasses for evas device api (new in 1.8) and document the evas
device api... :)
2013-04-12 20:05:16 +09:00
ChunEon Park fbec2b33db evas - removed unused 2013-04-12 11:06:03 +09:00
Carsten Haitzler 7fd0cf1731 this is not a big change - not worth changelog, but allow gl partial
updates to be rounded up to specific tile sizes (and make it 16x16 by
default).
2013-04-11 21:24:06 +09:00
Cedric Bail 7df05ed287 evas: use a hash for the image scale cache. 2013-04-11 18:07:09 +09:00
Cedric Bail e0f2ddadde evas: use eo_data_get less. Use clipees_has if you want to know the number of child now. 2013-04-11 18:07:09 +09:00