Commit Graph

528 Commits

Author SHA1 Message Date
Cedric BAIL d636db3c66 evas: cache conversion from Evas_Map to RGBA_Map.
SVN revision: 72119
2012-06-14 09:58:16 +00:00
Tom Hacohen a9709c792e Evas font: Support no bidi no shaping mode in font rendering.
For no bidi: just don't set the bidi stuff. I.e paragraph props and the
other stuff (including text_props_direction_set). If you disable BiDi you most
likely want to disable shaping as well.
For no shaping: Disable bidi (i.e don't set direction) and pass
EVAS_TEXT_PROPS_MODE_NONE to info create.

This will prove especially useful for textgrid, but not only.

SVN revision: 72032
2012-06-12 14:14:52 +00:00
Cedric BAIL c9cd50983f evas: make pipe rendering faster by forcing it to update region that fit in CPU cache.
NOTE: for people using Evas pipe rendering infrastructure. I am interested in reporting
expedite test before and after this patch with the associated type of CPU (number, thread,
cache). Thanks.


SVN revision: 71887
2012-06-10 04:58:24 +00:00
Cedric BAIL 3333544ed6 evas: delay O(n) update of the bounding box until we really need it.
SVN revision: 71773
2012-06-07 07:10:36 +00:00
Christopher Michael ba863e5a41 Evas: Add framespace clip object (for efl wayland clipping issue).
SVN revision: 71425
2012-05-25 12:54:38 +00:00
ChunEon Park c3ace0d8e3 evas - trivial code refactoring for evas_object_clip_recalc
SVN revision: 71418
2012-05-25 08:13:40 +00:00
ChunEon Park 2a9f42c47e evas/evas_render - and should update the mapped objects when their color is changed since color should be multiplied again.
SVN revision: 71226
2012-05-18 07:17:34 +00:00
Cedric BAIL b0d3526d89 evas: another improvement part of the previous lock less font rendering patch.
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
2012-05-18 02:16:54 +00:00
ChunEon Park c21bfb49c2 evas - removed unnecessary fields, changed_nomove and changed_move_only.
These are actually not necessary right now.



SVN revision: 71199
2012-05-17 10:51:54 +00:00
ChunEon Park 14e43d84fd evas/evas_render - added evas_object_change_reset internal function to remove much duplicated code
SVN revision: 71169
2012-05-16 12:59:33 +00:00
Rafael Antognolli ad37a5e7bf evas/cserve2: Use width and horizontal bearing from
glyph metrics.
Instead of having to render the glyph to get the width and horizontal
bearing of it, it's possible to get this information from the glyph
metrics (which are available on the glyph slot).

This change now allows Evas to only render the glyph at the rendering
phase, instead of having to render it during layout phase.



SVN revision: 71132
2012-05-15 21:15:20 +00:00
ChunEon Park fb934425e9 evas - reverted 71099. my mistake
SVN revision: 71101
2012-05-15 08:22:06 +00:00
ChunEon Park b838e41bab evas - removed unnecessary compares
SVN revision: 71099
2012-05-15 07:30:15 +00:00
Cedric BAIL 4494035fa7 evas: detect properly when we wippe out font information.
SVN revision: 70923
2012-05-11 01:50:40 +00:00
Iván Briano 15328efb85 evas/cserve2: fix typo that kept cserve2 disabled
now seriously...

Introducing Cache Serve 2.

This cache server will initially load images for clients connected to
it. It starts slave processes to load these images, and share the loaded
images through shm with the clients. All the connection done between
clients and the server goes through sockets.

The cserve2 build option is turned on by default, while the old cserve
was disabled, but in order to make clients use it, the environment
variable EVAS_CSERVE2 must be set, and a server must be running.

Clients will try to find the socket on a specified location using the
environment variable EVAS_CSERVE2_SOCKET. If it's not defined, then the
XDG_RUNTIME_DIR path should be used, and finally HOME, TMPDIR and /tmp.



SVN revision: 70699
2012-05-03 21:01:31 +00:00
Cedric BAIL 9d405225fe evas: let's try to determine the smallest possible size
for the bounding box. This vastly improve the time spent
during event propagation when playing with elm_genlist.


SVN revision: 70683
2012-05-03 03:58:27 +00:00
Cedric BAIL 0f424acb6e evas: and for this nice international hollyday let me introduce a dynamic bounding box for smart object.
This make it possible to use the object tree to reduce the number of object, we need to explore to know
what is under a specific position. First used by propagation event code. That code is now 4 times faster, enjoy !
As a side cost evas_object_move goes from 925 to 980 valgrind cycle on my computer, so not something you
will notice.

NOTE: if you notice any breakage regarding event propagation, map, cats, minor or major, please report to
me ! I hope I didn't loose my mojo, with such a scary change, I have a big chance to get it back !


SVN revision: 70564
2012-05-01 07:31:42 +00:00
Cedric BAIL f046fa4c46 evas: remove unused parameter.
SVN revision: 70550
2012-04-30 09:42:42 +00:00
Cedric BAIL 377cc2368a evas: remove EVAS_FRAME_QUEUING.
NOTE: This should be part of evas_render itself and not
delegated to the engine. So cleaning things to make it easier
during evas_render rewrite.


SVN revision: 70503
2012-04-26 09:53:03 +00:00
Cedric BAIL 5965fb4282 evas: remove EVAS_SLI code path, it was to slow and unused for years.
NOTE: other things that may join it in the near futur EVAS_FRAME_QUEUE,
EVAS_METRIC_CACHE and maybe EVAS_WORD_CACHE also. This is all part of
cleaning up our rendering path so we can actually improve it more easily.


SVN revision: 70499
2012-04-26 08:41:39 +00:00
Cedric BAIL 0a5c840c48 evas: lock less font rendering.
SVN revision: 70497
2012-04-26 08:18:51 +00:00
Carsten Haitzler e92d5fb2eb fix map overdraw issue that has snuck in during development
SVN revision: 69534
2012-03-21 04:04:03 +00:00
Cedric BAIL cd9cb6abb5 evas: add Exotic support.
SVN revision: 68404
2012-02-24 11:21:57 +00:00
Vincent Torri 4060b7d96e Evas: remove WIN32_CPPFLAGS and WIN32_CFLAGS are there are not used anymore. Move some headers in evas_common.h
SVN revision: 68100
2012-02-18 08:33:00 +00:00
Carsten Haitzler e669719714 make rect_t use int's... no overflow. yay!
SVN revision: 67884
2012-02-13 14:37:41 +00:00
Sung Park 9afd5b3f3f Added Direct Rendering to Evas' window instead of an FBO in Evas_GL.
This optimization is significant for rendering to a large surface 
because it'l save an extra copy overhead as well as an extra rendering pass.

To enable it, you can give EVAS_GL_OPTIONS_DIRECT hint in the surface
config options_bits. The following conditions have to be met in order
for evas to render directly into the Evas' window. If they are not met, the 
engine will fallback to rendering to an FBO as it normally does. 

conditions: 
1.) All the GL calls have to be called using the pixel_get_callback function.
This is necessary for the evas object order to be maintained.
2.) Alpha must be disabled on the image ojbect that renders evas_gl.
3.) No rotation allowed.

One way to override above condition is to set EVAS_GL_DIRECT_OVERRIDE=1 but 
there is no guarantee in its behavior.

Currently, this optimization is added for gl_x11 engine only. 




SVN revision: 67388
2012-01-20 12:29:14 +00:00
Stefan Schmidt 0802e6a28d evas_blend_ops: Fix gcc complains about static used in non static inline functions.
Make the functions static as well to avoid gcc warnings like this:
warning: 'ALPHA_SSE3' is static but used in inline function 'sub4_alpha_sse3' which is not static

Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>



SVN revision: 67355
2012-01-19 16:55:17 +00:00
Carsten Haitzler 4ae6816486 add EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN for accessibility
:)



SVN revision: 67264
2012-01-17 08:35:32 +00:00
Christopher Michael 0740555698 Evas: Add 'is_frame' property for objects (used in wayland engines).
SVN revision: 66534
2011-12-26 23:07:52 +00:00
Sanghee Park 550b8417c7 From: Sanghee Park <sh15.park@samsung.com>
Subject: Drawing objects by pixman

        * Extend pixman support to allow other operations to use
          pixman when doing software rendering. On x86 this isn't useful
          but on ARMv7 with NEON pixman happens to do better with image
          blending and nearest scale blending.
        * Add tiled rotator for 32bit display as an option.



SVN revision: 66478
2011-12-23 11:50:29 +00:00
Carsten Haitzler 34581d0300 Add new api to set and get default event flags.
SVN revision: 66275
2011-12-16 09:24:18 +00:00
Jiyoun Park 36e658e20a bug fix related with evas event counter
currently evas_object_event_callback_call checks _evas_event_counter 
for preventing object's callback called several times in one evas event.

but it use global variable(_evas_event_counter), it can be changed while
procssing same event. 

for example , evas_event_feed_mouse_up. 
If there are several object in e->pointer.object.in and object 1's callback
create new evas event, object 2 cannot now event id.
so I change callback call api, and object callbacks can decide wheather it deal with that event.


SVN revision: 66234
2011-12-15 06:23:53 +00:00
Christopher Michael 0fccea0dee Evas: Add a Wayland Shared Memory engine (similar to the buffer &
framebuffer engines). Add Evas framespace set/get functions.



SVN revision: 66223
2011-12-14 18:44:20 +00:00
Michael BOUCHAUD 33eb1e5e79 evas: Add api to know if an evas_object_image could support region
SVN revision: 66170
2011-12-13 16:58:20 +00:00
Carsten Haitzler 0434ce6574 * Fix grab count negative values if you do weird combinations of
press and release with multiple fingers or multiple mouse
        buttons.
        


SVN revision: 66134
2011-12-13 05:59:36 +00:00
Cedric BAIL 8c2e7f7b87 evas: use eina_lock a little bit more.
SVN revision: 65904
2011-12-05 14:01:42 +00:00
Mike McCormack 997a3aa756 [evas] Always clear recalc count of items that have been on calc list
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>

SVN revision: 65326
2011-11-17 04:31:43 +00:00
ChunEon Park 61655ba055 evas/events - removed events_frozen check in evas_event_passes_through()
in most cases, it is performed twice inside and outside of the function in inefficient way.

and calling of events_frozen in the passes_through() is not understable in the view of functional consistency.

Check is separately would be better.




SVN revision: 65269
2011-11-15 15:10:19 +00:00
Carsten Haitzler e6cf094c9d remove internal rect list declarations that are never used outside of
evas_tiler.c



SVN revision: 65145
2011-11-14 07:15:38 +00:00
ChunEon Park 0bc308dcd7 evas/evas_events - modified unsigned char -> Eina_Bool for some fields in the Evas_Key_Grab structure.
removed white spaces and fixed indent also



SVN revision: 65092
2011-11-12 08:06:30 +00:00
Youness Alaoui c21427071b Evas: Add a psl1ght engine for the PS3
SVN revision: 64779
2011-11-05 17:49:37 +00:00
Vincent Torri 3de60c77b4 Evas: fix use of __always_inline__ attribute
Fix multiple storage bug.
 * __forceinline is the equivalent of __always_inline__ on Windows. It has
   'extern' as storage, so static must not be used with it
 * use __always_inline__ and not always_inline as attribute value instead.
   No need to add storage class with __always_inline__ too.
 * static inline is fine


SVN revision: 64767
2011-11-05 16:51:13 +00:00
Vincent Torri e7d87f2539 Evas: efl_attributes.m4
NEVER define a macro whose name is the name of the attribute, it breaks compilation on some platforms


SVN revision: 64749
2011-11-04 22:08:54 +00:00
ChunEon Park f96e677847 evas - trivial changes.
SVN revision: 64595
2011-11-01 01:41:09 +00:00
ChunEon Park 000aed92b8 evas - added new API evas_object_freeze_events_set/get
and will handle for the key events also soon. 



SVN revision: 64432
2011-10-27 10:36:09 +00:00
Carsten Haitzler ccf5af6c44 and fix evas map used as mapbuf with clipping and stuff! ugh! the
forever shifting bug! evas_render needs a rewrite



SVN revision: 64429
2011-10-27 09:39:18 +00:00
Carsten Haitzler ee86abe1ea fix clip-out issue after making mapped objs opque fix was in.
SVN revision: 64413
2011-10-26 13:33:25 +00:00
EunMi Lee 8b5d185038 From: EunMi Lee <eunmi15.lee@samsung.com>
Subject: [E-devel] [Patch] [Evas] Patch to provide information of
touched points

Hello,
I made a new patch to get information of current touched point instead
of Touch Event.

I added touch_points (Eina_List) to the Evas structure and it maintains touched points on the evas.
New touched point is added to the touch_points when we get Mouse_Down and Multi_Down,
touched point is updated when we get Mouse_Move and Mult_Move,
and touched point is removed when we get Mouse_Up and Multi_Up.

The each touch point has coordinate, id and state information as follows:
id - identifier. 0 for Mouse Event and device id for Multi Event. coordinate - (x, y) coordinate of point.
state - state of point. type is Evas_Touch_Point_State enum.
(EVAS_TOUCH_POINT_DOWN, EVAS_TOUCH_POINT_UP, EVAS_TOUCH_POINT_MOVE,
EVAS_TOUCH_POINT_STILL, EVAS_TOUCH_POINT_CANCEL)

There are 4 new APIs to get touch point's information as follows:
unsigned int evas_touch_point_list_count(Evas *e);
void evas_touch_point_list_nth_xy_get(Evas *e, unsigned int n, Evas_Coord *x, Evas_Coord *y);
int evas_touch_point_list_nth_id_get(Evas *e, unsigned int n);
Evas_Touch_Point_State evas_touch_point_list_nth_state_get(Evas *e, unsigned int n);

I added APIs to get each information instead of exposing whole
structure to make it easy to expand in the future as you mentioned in
the below e-mail :)



SVN revision: 64373
2011-10-25 05:03:50 +00:00
ChunEon Park 8658d955ce Evas - Modified field names in Evas structure to be more clear.
SVN revision: 64371
2011-10-25 02:26:51 +00:00
Carsten Haitzler c52bc1cdb9 and fix tiler to do full resolution. yes - more mem, some more
overhead, but fewer bugs.



SVN revision: 64288
2011-10-22 03:36:39 +00:00