Commit Graph

294 Commits

Author SHA1 Message Date
ChunEon Park 045354d679 evas/proxy - rename variables to be shorter.
SVN revision: 78460
2012-10-25 15:24:27 +00:00
ChunEon Park ecc24faf1e evas/events - separate source_events feed functions. need to care more.
SVN revision: 78458
2012-10-25 15:12:54 +00:00
ChunEon Park bebeefb155 evas/event - dont pass events when source_events is false
SVN revision: 78386
2012-10-24 06:15:21 +00:00
ChunEon Park d115ff8e3b evas/proxy - added 2 more apis. not enough yet. will fix them soon.
evas_object_image_source_events_set/get



SVN revision: 78361
2012-10-23 08:44:11 +00:00
ChunEon Park 5f8b84063f evas/proxy - update rendering when source visibility is switching.
SVN revision: 78249
2012-10-19 12:22:16 +00:00
ChunEon Park d9bdce172a evas/proxy - +source visible set APIs
Need to care some more cases. will be upstreamed additionally.



SVN revision: 78180
2012-10-18 11:30:04 +00:00
Cedric BAIL e0af0dca6d evas: remove as many call as easily possible to eo_data_get.
SVN revision: 77702
2012-10-10 07:23:00 +00:00
Cedric BAIL 457b240434 evas: do less request to eo.
SVN revision: 77617
2012-10-09 07:49:07 +00:00
Daniel Zaoui a01418aff8 eo: changes made for the support of the Eo concept
Signed-off-by: Daniel Zaoui <daniel.zaoui@samsung.com>

SVN revision: 77604
2012-10-09 01:58:41 +00:00
Jiyoun Park 7d2ced81f6 add evas object display mode hint
this hint can be used when user want to notify
and change object size hint(display mode)
like compress(example, keyboard show and object need to be compressed)
and etc.


SVN revision: 77136
2012-09-27 08:54:54 +00:00
Carsten Haitzler 2a06a94b1e add new evas device api. it is a STARt right now, and liable to
change, thus no docs at this time, but ready for them.



SVN revision: 76752
2012-09-17 10:12:48 +00:00
Rafael Antognolli 64b4e6af09 evas/render: Fix typo: DGB -> DBG.
SVN revision: 76553
2012-09-12 19:00:23 +00:00
Rafael Antognolli bc3f053287 evas/render: Move REND_DGB macro to evas_private.h.
This will make it easier to enable it, since the changes to
evas_render_mapped signature will can be done everywhere, not only
inside evas_render.c.



SVN revision: 76552
2012-09-12 19:00:16 +00:00
Carsten Haitzler 921b861f6f fix evas map leak.
SVN revision: 76286
2012-09-07 08:02:32 +00:00
Tom Hacohen 57269364d9 Evas magic: Added compiler hints (EINA_UNLIKELY).
SVN revision: 76194
2012-09-05 13:02:33 +00:00
ChunEon Park f7f9341419 evas/evas_object_image - added EVAS_CALLBACK_IMAGE_RESIZE.
SVN revision: 76161
2012-09-05 04:20:42 +00:00
Rafael Antognolli be7953b243 evas/render: Add a flag for dropping the map cache if needed.
The map cache must be dropped if the content of the surface is rendered again.
The example evas-smart-object.c has a valid test case for this bug.



SVN revision: 75636
2012-08-23 19:58:02 +00:00
Cedric BAIL 7f1e95afc8 evas: fix evas map life cycle.
SVN revision: 73963
2012-07-17 09:09:45 +00:00
Gustavo Lima Chaves b64fa6453a Evas_Smart_Interface support.
This gives Evas simple (smart object) interfaces, to extend the object behaviorextension beyond the limits of mere sub-classing.

Patch by: Gustavo Lima Chaves <glima@profusion.mobi>



SVN revision: 73302
2012-07-04 21:23:03 +00:00
Cedric BAIL 1d415b796b evas: add more infrastructure to the prepare stage of pipe rendering.
NOTE: this improve some test by 10 to 15% some other are down by 5%.
Their is still more tunning and improvement possible now (Particularly
with Map), but it will do for now.


SVN revision: 73264
2012-07-04 09:39:23 +00:00
Rafael Antognolli 2f3426b67c evas/cserve2: CServe2 client side lib modifications.
Add the calls to request font loading and glyphs on the client lib.



SVN revision: 72700
2012-06-22 20:31:31 +00:00
Vincent Torri a95cf57438 Evas: add textgrid object (not finished, nor optimized :-) ) Go raster, go !
SVN revision: 72169
2012-06-15 07:19:04 +00:00
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 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 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
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
Carsten Haitzler e92d5fb2eb fix map overdraw issue that has snuck in during development
SVN revision: 69534
2012-03-21 04:04:03 +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
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
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
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 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
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
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 1541b0e97e add call to get maximum image size (eg max texture size)
SVN revision: 64244
2011-10-21 08:17:14 +00:00
Carsten Haitzler f1bdb3a902 for now - revers eumni touch events patch until we get press state
"getter" api patch. :)



SVN revision: 64140
2011-10-18 08:32:03 +00:00
Sung W. Park c1cc0a7ed2 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: Re: [E-devel] [E-Devel][Review][Patch] Evas GL Extensions + a
bug fix


Here's an initial attempt at the GL extensions issue for Evas GL.

I have been in discussion with a few EFL developers regarding how we should
provide extensions.  Essentially, there are two ways to go about doing this.

1. provide evas_gl_proc_address_get() function as it is done in other
glue layers

2. provide all the extension functions in the EVAS_GL_API struct.

#1 approach is how it's done in other glue layers and the driver implementor can
provide new extensions easily.  It is however pretty annoying to get the
function prototypes right and use the function pointers and etc.

#2 approach provides all the extension functions in the struct so it's
definitely easier to use.  Adding new extensions can be a pain as people may
have to wait for new version releases.

For now, we thought it was OK to just throw them in the struct as in
#2 and try it out.  So, I've implemented this approach.  As for the extensions,
I've basically included all the extensions in gl2ext.h as EvasGL currently
provides all the GLES 2.0 functions.   In order to display the right
information, I had to override glGetString() with GL_EXTENSIONS as parameter to properly
display the supported extensions.

Also, I've added a few EGL extensions that have been
modified for EvasGL use.  For example, eglCreateImage/eglDestroyImage has been
defined as folllows.

   EvasGLImage  (*evasglCreateImage) (int target, void* buffer, int*
                                         attrib_list); void
                                            (*evasglDestroyImage)
(EvasGLImage image);

const char *evas_gl_string_query() function was added to return a string of
supported EvasGL extensions.  So essentially, a user can search this string to see
if the desired extension is supported.  if it is, he can use the functions.  He can
always check if the function pointers are NULL as well.

Take a look at the pach and let me know what you think.

______________

While I was adding the extension code, I've added a few fixes/ changes
to the EvasGL.

1. glDeletBuffers bug
- When I wad destroying evasgl context, I was deleting the context FBO with
glDeleteBuffers instead of glDeleteFramebuffers. This code in effect was
deleting BOs in other contexts and we had some funky behaviors as a
result.  The
bug has been fixed.

2. make_current
- I've made some changes to the make current code and also added a resource
context to the engine data.  the resource context is used for creating surface
texture/ fbos when surface/ context is created.  Before, i was using evas'
context but thought it'd be a good idea to use a separate context.



SVN revision: 64139
2011-10-18 08:13:23 +00:00
Mike McCormack ee5446fb13 evas: Use clists to store the render recalculation list
Rather than trying to avoid removing the list element that is
currently being processed, keep two lists and move elements
to the processed list before recalculating them.

Remove items from the list head only, and always append them
to the tail.

Use the fact that an item can be removed from a clist without
needing to know which list it is in.

Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>

SVN revision: 64030
2011-10-13 02:22:29 +00:00