Commit Graph

2180 Commits

Author SHA1 Message Date
Tom Hacohen 3b7ff8ece4 Evas text: Remove useless FIXME. 2015-11-18 10:53:29 +00:00
Subodh Kumar 392df9479f Evas text: Fix memory leak
Summary:
Fix memory leak

Position is getting returned without
freeing the temporary logical item list.

@fix

Test Plan: NA

Reviewers: tasn, raster

Reviewed By: raster

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D3345
2015-11-18 10:52:34 +00:00
Daniel Hirt 4c086b6e1b Evas language: add full locale language getter
evas_common_language_from_locale_get truncates the country letters in
the language. We don't always want that (one example is dictionaries).
2015-11-17 16:20:21 +02:00
Tom Hacohen 8fcf9a0fe6 Evas language: Fix language from locale function.
This function was trying to infer from the LANG env var, though it should
have just queried the locale all along, as the language we want is the
system's text language, and not necessarily the LANG variable's value.

@fix.
2015-11-17 12:07:42 +00:00
Subodh Kumar f1cffd7709 Evas text: Remove fixme marker
Summary:
Remove fixme marker

Algorithm used is good enough to sort
very few number of items, usually 2 to 6
items.

Test Plan: NA

Reviewers: herdsman, cedric, tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3312
2015-11-17 11:24:39 +00:00
Subodh Kumar d14dc12d3b Evas text: Remove tabs for readability
Summary: Remove tabs

Test Plan: NA

Reviewers: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3337
2015-11-17 11:23:44 +00:00
Stefan Schmidt d94120a156 evas polygon: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-11-13 13:31:34 +01:00
Minwoo, Lee c196422e63 evas textblock: fixed ascent/descent calculation
Summary:
If textblock has linegap and multi language, ascent/descent calculation is
incorrect.
In _layout_format_ascent_descent_adjust(), descent is accumulated.
(for example, for a line gap of 50, the first line gap is more than 100)

Test Plan:
Textblock has "linegap=50" and multi language (ex.
        "This is a test suite for line gap -
        ഈ ലൈൻ വിടവ് ടെസ്റ്റ് ടെസ്റ്റ് ടെസ്റ്റ് ടെസ്റ്റ് ഒരു പരീക്ഷണ വെയര് ")
Added test suite in evas_test_textblock.c file.

Reviewers: tasn

Subscribers: subodh6129, cedric

Differential Revision: https://phab.enlightenment.org/D3311
2015-11-13 12:27:59 +00:00
Tom Hacohen 592b786645 Evas text: Change bitfield bool types to Eina_Bool.
This is really just a safety measure, as we always just check if the value
is true. However, with char the potential values are -1 and 0, and with
Eina_Bool they are 1 and 0, so fixing that.

Thanks to the "sparse semantic parser" for detecting that, and to Stefan
for reporting.
2015-11-12 15:49:45 +00:00
Daniel Zaoui 10d5768ef7 Evas: import Evas types inside canvas Eo file 2015-11-11 15:40:56 +02:00
Joogab Yun 25bcf4c64f Evas: Fix bug in evas_cache_image_dirty()
Summary: Code which shouldn't be removed was removed by '800279c23bdb0e925f112c96516dcc96a5487684'

Reviewers: spacegrapher, cedric, jpeg

Reviewed By: jpeg

Subscribers: scholb.kim, dkdk, wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D3278
2015-11-11 14:35:24 +09:00
Oleksandr Shcherbina 13b1756394 evas: add possibility to render current 3D scene to texture in Evas.Canvas3d
Summary:
Refactoring code of functions e3d_drawable_scene_render,
e3d_drawable_scene_render_to_texture,_shadowmap_render to have possibility
render in scene to additional texture
See T2761

Reviewers: Hermet, cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-10 15:10:13 -08:00
se.osadchy 33809c969c evas: fix bug in evas_canvas3d_camera.
Summary: Change Eina_Quaternion to Evas_Vec4.

Reviewers: cedric, Hermet, raster

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-10 14:10:43 -08:00
Jean-Philippe Andre 7974f674aa Evas: Allow edje_decc to work with ETC images
This reuses the internal function data_get, data_put, image_save
respecting the border information and adding support for ETC
formats.

@fix
2015-11-10 16:12:21 +09:00
Jean-Philippe Andre 64de2f6ce5 Evas: Add some internal engine APIs
- image_file_colorspace_get
   This will be used to determine the best loading format, especially
   targeted at edje_cc / edje_decc so we can avoid ETC re-encoding.

- image_data_has
   Checks whether the image is currently loaded in (CPU) memory,
   and also returns the current colorspace.
2015-11-10 16:12:21 +09:00
Subodh Kumar 3f0d0daf0d evas: fix some indentation and formatting in textblock.
Summary: Fix some indentation and formatting.

Reviewers: herdsman, tasn

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:39:13 -08:00
Oleksandr Shcherbina 3af65dd4e2 evas: unification of color pick mechanism.
Summary:
Use same way using color pick under GLES and not:
 Use GL_RGBA texture insted of GL_RED
 Generate and pass to engine 3 components color of mesh
See T2761

Reviewers: cedric, Hermet

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
Bogdan Devichev 8ab190daec evas: add common part of savers and loaders.
Summary:
Common part will make savers and loaders shorter and easier for understanding and refactoring.
https://phab.enlightenment.org/T2713 - due to this task.
Should be merged after https://phab.enlightenment.org/D3030

Should be merged to start adding refactored savers and loaders.

Reviewers: Hermet, raster, Oleksander, cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
Bogdan Devichev f416f5adde evas: move model save/load from common to common3d.
Summary:
Move model save/load to common3d.
Here also will be common algorithms  and structures which will be used in all loaders and savers.
See task https://phab.enlightenment.org/T2713.

Reviewers: cedric, Hermet, raster, Oleksander

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
se.osadchy 3d77f55f91 evas: refactor duplicated data structure with eina_matrix.
Summary: Move data structure and functionality to eina_matrix from evas_mat.

Reviewers: raster, Hermet, cedric

Subscribers: Oleksander, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
perepelits.m 3031a4a5c6 evas: API for Convex Hull in Evas.Canvas3d
Summary: This API builds vertex and index data of convex hull around the given mesh.

Reviewers: raster, perepelits.m, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric, artem.popov

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 14:29:46 -08:00
Jean-Philippe Andre 16195d3100 doc: Deprecate filter reference page and link to the wiki 2015-11-09 16:21:45 +09:00
Carsten Haitzler 483cec924b evas - patch in one more if check for obj layer to avoid shutdown crash
this should fix T2715
2015-11-05 09:41:35 +09:00
Vitalii Vorobiov aefcb11444 Evas Text: avoid SIGSEV while ellipsis recalculation
Summary:
Fix Segmentation Fault when TEXT part getting resized and when it has
some params (for example ellipsis).

Fix T2640
@fix

Test Plan: Refer to T2640

Reviewers: raster, Hermet, seoz, herdsman, cedric, reutskiy.v.v, NikaWhite

Subscribers: stefan_schmidt, tasn, cedric

Maniphest Tasks: T2640

Differential Revision: https://phab.enlightenment.org/D2944
2015-11-04 13:58:59 +09:00
Jean-Philippe Andre 6e96d75c76 Evas: Remove dead code (cached surfaces)
While cached surfaces is a topic we're discussing recently,
this code is dead right now, and we will have to redesign the
buffer caching better to handle proxies, maps, smart objects, etc...
2015-11-02 16:22:19 +09:00
Jean-Philippe Andre b4fc15311c Evas render: Fix 'no_render' when object is proxy source
When the no_render flag was set on a proxy source, the object would
not be visible, but it would also not render inside the proxy surface,
which completely beats the purpose of this flag. This patch makes
the objects render inside a proxy surface.
2015-11-02 13:40:00 +09:00
Amitesh Singh 7ff30befd1 evas box: don't allow duplicate child append
Add check for duplicate child addition and return null.
2015-10-30 13:49:03 +05:30
Jean-Philippe Andre cc5cccc511 Eet: fix decoding of embedded ETC images
Typos, lack of NULL check, excessive sizeof(type) not matching
the object type, no border set, etc... This all lead to a crash
and then no render (with an error message and then without...).

This also simplifies the implicit loading of ETC1 as ETC2 when
supported by the driver.

@fix
2015-10-29 17:58:34 +09:00
Jean-Philippe Andre 8937fd4fc9 Evas render: Fix rendering of snapshot objects
I added a quick check that the clip was not 0x0 but forgot
to check that we actually use the clip info.

Fixes T2792
2015-10-23 16:30:37 +09:00
Srivardhan Hebbar be464e5843 evas: handling memory leak on realloc failure.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-21 13:40:01 -07:00
Subodh Kumar 6bd863cf4f evas: fix memory leak.
Summary:
Fix memory leak

Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.

@fix

Test Plan: NA

Reviewers: cedric, tasn, herdsman

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-20 14:01:15 -07:00
Subodh Kumar 69c2b13474 evas textblock: fix memory leak
Summary:
Fix memory leak

Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.

@fix

Test Plan: N/A

Reviewers: tasn, herdsman

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-19 11:34:41 -07:00
Jee-Yong Um 49028c599a evas table: fix miscalcuation in cells with span and padding
Summary:
In evas table that homogeneous mode is turned off,
the size of items in cells, whose rowspan or colspan is larger than 1
and horizontal or vertical padding exists, are miscalculatd.

T2655

@fix

Test Plan: elementary_test "Table Padding"

Reviewers: Hermet, cedric

Subscribers: cedric, DaveMDS, Hermet

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-19 11:01:23 -07:00
perepelits.m 2d52eedf06 evas: fix memory leak
Summary:
Fix of memory leak in evas_3d_utils.c

@fix

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: artem.popov

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-19 11:00:25 -07:00
Carsten Haitzler 1a135fdfb1 evas - clean if check to be a single return point for clarity
if (a) return;
if (b) return;

->

if ((a) || (b)) return;
2015-10-17 11:19:06 +09:00
Carsten Haitzler a47d14e246 evas - add another layer->evas check in addition to layer
fixes T7215
2015-10-16 08:27:10 +09:00
Carsten Haitzler 0bca7af2e8 evas - was missing evlogs for the threaded rendering handling - fix 2015-10-15 19:29:40 +09:00
Amitesh Singh 8e87e56a7c evas: render - use evas_object_clipees_has instead of evas_object_clipees_get
evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.

@fix
2015-10-15 15:02:22 +05:30
Cedric BAIL 229106963a evas: no need to compute clippees list if we just want to know if there is any.
This is a partial fix for a terrible performance scenario where application take
forever to close with a large number of edje object.

@fix
2015-10-14 16:18:37 -07:00
Amitesh Singh 63634ccd30 evas filter: silent coverity on self assignment
This is a false alarm. Just to make coverity happy, use eo_do
instead of eo_do_ret

CID: 1316017
2015-10-14 21:08:20 +05:30
Chris Michael 3fb78e137b evas: Fix clang warning for missing field 'async' in default_state
Evas_Object_Filter_Data has a bool for 'async' at the end of the
struct. This field was missing from the initialization of
'default_state'

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 09:28:47 -04:00
Carsten Haitzler 620dc45af9 evas - obj destructrion - handle when obj layer is partly destroyed
this should fix T2715 and anything similar as during destruction
object internals are a bit weird.
2015-10-14 14:50:54 +09:00
Carsten Haitzler 094b781b7f evas - fix evlog to push and pop properly 2015-10-14 14:50:53 +09:00
Jean-Philippe Andre c22fa8a96a Evas: Some coverity fixes
This are false alarms. But the explicit null check doesn't hurt.
Also, Coverity doesn't like eo_do_ret. Neither do I. :)

- CID 1327246
- CID 1327245
2015-10-14 11:27:47 +09:00
Jean-Philippe Andre cfedba598c Evas render: Fix proxy source_clip with source images
In case the source is an Evas_Image, we skip proxy_subrender,
and so the clip was not set against the source clip.
2015-10-14 11:14:36 +09:00
Jean-Philippe Andre 7b266b5518 Evas render: Fix proxy source_clip logic inversion
As spotted by @FurryMyad I inverted the logic for source_clip.
This should restore the proper behaviour while keeping my previous
fixes working. See D2940.
2015-10-14 11:14:36 +09:00
Cedric BAIL 8a39069b64 evas: fix performance regression by reducing the unecessary memcpy we are doing.
Actually copying max is pretty useless and super slow. We usually have something
like 1024 slot in a context, but a very small amount of them are acutally active.
It would be better to actually do some kind of copy on write technique here, but
as Eina_Cow doesn't handle array and we are close to a release, let's be
conservative.
2015-10-13 12:10:34 -07:00
Jean-Philippe Andre dc397fabff Evas filters: Fix some build warnings
Thanks Tom for spotting one of those
2015-10-12 13:44:44 +09:00
Jean-Philippe Andre d271afd66c Evas filters: Fix some crash and reduce insanity
In a rare situation the filter would access an invalid buffer.

Solution: Stop messing with buffer references by properly
referencing and releasing them when not needed, rather
than stealing references and hoping for the best. (There were
flags tracking stolen references, but that was still madness)
2015-10-12 13:44:44 +09:00
Jean-Philippe Andre a8243ed382 Evas: Add engine function image_ref
This is to simplify and fix filters. This is an internal function.
2015-10-12 13:44:44 +09:00
Jean-Philippe Andre 62940b41f2 Evas filter: Fix proxies of filtered images
@fix
2015-10-12 13:40:20 +09:00
Jean-Philippe Andre 57afb0986b Evas render: Don't render deleted / invisible snapshots
Don't render them. They are not visible
2015-10-12 13:40:20 +09:00
Jean-Philippe Andre ff706b7e53 Evas render: Minor debug code improvements 2015-10-12 13:40:20 +09:00
Jean-Philippe Andre 512fb7f193 Evas snapshot: Fix proxies of snapshot objects
This was broken because the wrong image size was used
in the proxy's fast path (proxy of another image).
Why did snapshot use a specific surface_w,h instead of
reusing the usual cur->image.w,h? (@cedric)

Simplify code.
2015-10-12 13:40:20 +09:00
Oleksandr Shcherbina d61e8522e4 evas_canvas3d: fix mesh being added twice added to scene data
Summary: @fix

Reviewers: cedric, Hermet

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-09 10:00:32 +02:00
Jean-Philippe Andre 6e04d407cf Evas filters: Fix crash with async sw rendering
If the filtered object (text or image object) was deleted, its
output image (cached inside the filter data) would be freed
immediately. This could cause crashes in case of async rendering.

@fix
2015-10-07 18:11:32 +09:00
Jean-Philippe Andre b031bbee9b Evas textblock: Force relayout during proxy render
If the textblock object was not visible in the main canvas, but
still needs to be rendered in a proxy surface, then _relayout may
not have been called. This forces generation of paragraphs based on
the current geometry.

This patch is ugly. I know. This is evas render :)
2015-10-07 10:48:18 +09:00
Jean-Philippe Andre 2b47181f4e Evas render: Fix another bad proxy clipping issue
This is an ugly hack to fix an issue reported in D3114. I don't
understand how the proposed patch could even fix anything given
the current situation.

Test case:
 - Create edje object with textblock inside
 - Clip out edje object (--> all children become not visible)
 - Take textblock from edje and set it as source of a proxy
 - Mark proxy as source_clip

Result: Nothing visible.

Expected: Proxy should contain the textblock object, since
  source_clip means we ignore the edje object's clipper, and
  only care about the textblock's clipper (entire canvas).

Here's what was happening:
 - During a first pass, textblock is not visible, cur->cache.clip
   is calculated, marked as clip_use=1 with geom 0,0 0x0
 - In a second pass, the proxy is rendered, which needs to draw
   the textblock in a surface. But cache.clip was used and it was
   wrong.

Solution:
 - Ignore cache.clip when rendering inside a proxy. I'm pretty
   sure there are other instances where cache.clip will still
   be a problem.

Problem: textblock never called relayout since it was not
  visible.

Conclusion: cache.clip needs to die. It's a legacy optimization
  that now causes more issues than it fixes.
2015-10-07 10:48:18 +09:00
Dongyeon Kim c92e670143 Evas image: Fix wrong usage of engine data macro
ENDT macro should be passed to engine functions instead of
some other function pointer!
@fix
2015-10-06 14:55:20 +09:00
Carsten Haitzler 5801013ad4 evas - region updates - go back to tiler as its faster
the overhead didnt show up in y tests. do show up with certain
expedite tests. hmmm. last time i messed with region code it was
actually same speed as tiler. bonus was it was fully accurate.
2015-10-05 18:41:00 +09:00
Carsten Haitzler 8f69d5202a evas rectangle - ensure centers of rects that just move/resize dont rend
calculating updates has been re-rendering centers fo solid rects if
the solid rects moves/resizes with a lot of overlap and objects
underneath changes - their changes show through. this fixes that

@fix
2015-10-05 18:30:34 +09:00
Carsten Haitzler f169d7ed27 evas - cutouts - use less cpu by skipping non-intersecting cutout objs
@feature
2015-10-05 15:51:02 +09:00
perepelits.m 0dd60ced44 evas-3d: fix primitives
Summary:
There were warnings after adding primitive in the same frame more then once, the check was added to avoid it

@fix

Reviewers: cedric, raster, Hermet

Subscribers: cedric, artem.popov

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-04 16:37:28 +02:00
Subodh Kumar 4290567fd6 evas_box: fix children size and position calculation when padding is used for horizontal flow layout
Summary:
Fix children size and position calculation when padding is used

For each child size calculation padding is adjusted
but box height should include  padding.
Secondly, x and y position of children should not  include
the vertical and horizonatal padding as child size has already
included the given paddings.

@fix

Test Plan:
Please modify test_box.c file in
function test_box_vert2 as follows:

   bx = elm_box_add(win);
   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   elm_win_resize_object_add(win, bx);
   elm_box_padding_set(bx, 50, 50);
   elm_box_layout_set(bx, evas_object_box_layout_flow_horizontal, NULL, NULL);
   evas_object_show(bx);

Now,
1. open elementary_test
2. box
3. Box vert 2 (observe box is broken)
4. Try resizing the window (observe)

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-04 16:22:49 +02:00
Carsten Haitzler 8a4ddea224 evas render - async sw - fix context duplication by using proper dup call
valgrind pointed this one out. we access freed memory when we dup a
context because the context CONTAINS ptrs to things like rects for
cutouts. we didnt dup these. use the proper context dup call (and
properly ref pixman color image too). this was a random bug/crash
waiting to happen and valgrind caught it. suprising it hasnt turned up
before :/

@fix
2015-10-04 16:58:42 +09:00
Jean-Philippe Andre b38f8a3f39 Evas GL: Fix render: force pixel_get if dirty
All examples and docs point to using only the dirty flag in
order to trigger a redraw of an Evas GL surface. The commit
21c4352823 broke this behaviour (for a good reason, but not
related to Evas GL).

This is a compatibility fix.
2015-10-02 17:11:35 +09:00
Jean-Philippe Andre 90b96b07d9 Evas GL: Add new API to get current Evas GL
While this seems to go against the rest of the API (because we
always pass in the Evas GL object), there is no way right now
fully restore a context if there are multiple Evas GL objects.

For instance, an app can use Evas GL from an Elm GLView, and also
use Cairo with another Evas GL at the same time. In that case Cairo
needs to restore the previous Evas GL but the library had no way
of getting the current Evas GL. This is the equivalent of
eglGetCurrentDisplay().

@feature
2015-10-02 16:56:38 +09:00
Jean-Philippe Andre 2317bb83fc Evas image: Simplify updates if adding whole region at once 2015-10-02 16:56:38 +09:00
Jean-Philippe Andre 52e4bbda7b Evas filters: Fix handling of FILL for image filters
Note: Image filters still need a LOT of work to be usable.
2015-10-01 20:10:54 +09:00
Amitesh Singh 83beb559e9 evas: fix typos in documentation 2015-09-29 09:14:28 +05:30
Tom Hacohen f080d40df7 Eo: rename EO_HOT_EVENT_DESCRIPTION to EO_EVENT_DESCRIPTION_HOT.
The old naming is inconsistent with the rest of the EFL. This fixes that.
Since we are already breaking ABI (and possibly API), we should fix this too.
2015-09-28 15:09:16 +01:00
Tom Hacohen 37f84b7e96 Eo: Drop doc field from ops and events.
This hasn't been used for a while. Since we are going to break Eo a bit anyway
it's a good opportunity to drop this.

This may cause a slight performance issues with legacy events, such as
smart callbacks. This shouldn't really be a problem as we've migrated away from
them. If it does, we need to migrate the remaining parts. Only relevant
for callbacks that are added before the classes are created, which
shouldn't be possible except for smart, only for old evas callbacks.
2015-09-28 15:09:16 +01:00
Carsten Haitzler 3894c3e1e0 evas - protect against invalid obj id in legacy wrapper func
@fix
2015-09-28 15:19:32 +09:00
Carsten Haitzler 15b9ac2d25 evas - lock render updates as this happesn to be accesed from threads 2015-09-28 02:58:54 +09:00
Carsten Haitzler 21c4352823 evas image object - dont update just if image is dirty
marking images as dirty is only meant to have the pixle get callback
called IF rendered. you ADD update regions to get it to be called.
this is how it has always meant to work, but evas image objects where
adding updates just if dirty. this ends up with e as a compositor
redrawing ENTIRE eindows if even a single blinking cursor is blinking.
oh so bad.

@fix
2015-09-25 14:31:28 +09:00
Carsten Haitzler 1b6e3f2611 fix coverity complaint (not real bug) - CID 1324882
coverity complained on the n <=- 0 return. it will never be <= 0 if
rects2 is non-null. this just should make coverity less noisy.
2015-09-25 11:17:54 +09:00
Mrunal Sovani 9ed199d709 Evas smart: Add obj type safety check to callback_del.
Summary:
Evas_Smart_Data retrieved from eo_data_scope_get might be NULL
in case the input Evas_Object is not valid Evas_Object.
The smart data gets dereferenced and can cause a crash if its NULL
Hence return in case smart data is NULL.

@fix

Signed-off-by: Mrunal Sovani <mrunal.s@samsung.com>

Reviewers: raster, Hermet, tasn

Reviewed By: tasn

Subscribers: singh.amitesh, cedric, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3106
2015-09-24 14:59:01 +01:00
Carsten Haitzler 974e82c5e5 evas - make new exact regions round up to 16x16 to keep count sane
make region count sane by rounding to 16x16
2015-09-24 20:45:14 +09:00
Carsten Haitzler 217faeebe8 evas cutouts - optimize to use less cpu
this optimizes draw ctxt cutouts by skipping small ones and
remembering the last cutout added so it isn't double-added as well as
extending the minimum cutout array to 512 and going up in blocks of
512 instead of 128. also optimize the clipping code a bit more.
2015-09-24 14:09:20 +09:00
Carsten Haitzler 49adf8aa47 evas tiler update handler - move to region code to be accurate and fast
this move evas tiler that does update handling to use fully correct
regions using region.[xh]. this also removed old unused regionbuf code
and a bunch of commented out code no longer needed. much simpler now
and easier to maintain.
2015-09-24 14:09:09 +09:00
Carsten Haitzler 5df38e9d53 evas new region code - copy region size along with region math 2015-09-24 08:39:15 +09:00
Oleksandr Shcherbina 28d69200f9 evas_canvas3d: sets for shadow rendering
Summary:
Add possibility change quality and offsets for shadow.
Add mesh API's to sets size, step and bias constant.
Add scene API to sets depth values.

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 23:41:29 +02:00
perepelits.m 64a7b3d44f evas: remove unused variable in evas_tangent_space_get.
Summary:
Firstly it was the main point of in CID1323089 from Coverity, but this variable is unused. So I've deleted it.

CID1323089

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 23:20:02 +02:00
Subhransu Mohanty 291c3e32af evas: create ector surface per engine instance.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 22:50:34 +02:00
Carsten Haitzler 31b07f94b7 evas - fix whitespace in code 2015-09-21 14:31:00 +09:00
Amitesh Singh 86993e172a fix typos in API doc 2015-09-19 09:24:58 +05:30
Jean-Philippe Andre 8fe237c088 evas_render: Fix invalid clip
Test case: elementary_test -to "Evas Map 3D"
The cube was clipped to its top-left corner.

What's really weird is that this code patch is for non-mapped
objects.
2015-09-15 18:29:01 +09:00
Carsten Haitzler 8291c9e33e evas - sw async render - move pixel upload/swap to a thread
@feature

this should unload mainloop some more and have pixel upload now in a
thread - same as rendering. this eeems to work where i see it so let's
put this in and see with further testing.
2015-09-15 18:26:35 +09:00
Carsten Haitzler 6da5d54f8e evas render2 - more work on fleshing it out a bit 2015-09-11 23:26:36 +09:00
ChunEon Park becf6869b9 map: don't update surface unencessarily.
smart object don't need to update map surface always
check the state more elaborately so minus one more surface drawing!
2015-09-10 21:31:41 +09:00
Carsten Haitzler 5b2baf173e efl - set thread names for internally created threads for debugging
@feature
2015-09-10 15:17:08 +09:00
Nak-Gyeong Kim 712db856a2 evas: fix memory leak in evas_object_image_render_pre.
Summary:
Eina_Rectangles are removed from pixel_updates list without eina_rectangle_free during render pre stage.

@fix

Test Plan: check memory leak.

Reviewers: cedric, jypark

Subscribers: jypark, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-09 01:08:49 +02:00
perepelits.m a7679b60ac evas: CID 1323091
Summary:
@fix CID 1323091 for Coverity

Reviewers: cedric, Hermet, raster

Subscribers: cedric, artem.popov

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-09 00:07:49 +02:00
Jean-Philippe Andre 00cf9e2fc5 Evas: Move REND_DBG to evas_render.c
Unlike what the comment claimed, it is not being used anywhere outside
this file.
2015-09-04 15:13:35 +09:00
Jean-Philippe Andre 3e640ab226 evas: Use malloc instead of calloc in context_dup
Since we call memcpy right after, no need for calloc
2015-09-04 15:02:48 +09:00
Jean-Philippe Andre ef0ec6bed3 evas_render: Fix some clipping issues inside proxy
Inside a proxy, clipping information might be wrong since the
source object may be at a different position than within
the proxy. If source_clip is not set, then we need to discard
all clips that are outside the proxy context.

So we just propagate the clip information inside the current
draw context, and even recurse from clipper to clipper to
find the final state of clipping.

Map and proxies and others (who said masks?) should definitely
rely more on the same model.

This code is not a mess. At all. You gotta love evas_render.
2015-09-04 11:11:58 +09:00
Jean-Philippe Andre 4ac9d2af54 evas_render: print out context clip with REND_DBG 2015-09-04 11:11:39 +09:00
Jean-Philippe Andre f654a3b300 evas_render: simplify masking and clipping in general
Use context_dup to inherit from previous contexts in a clean
manner. This removes the need for restoring the previous
clip information.

Plus, this commit removes lines of code so it must be good, right?
2015-09-04 11:11:39 +09:00
Jean-Philippe Andre 3d003b52de evas_render: Cosmetic changes in evas_render_mapped
Use ENFN, ENDT macros to simplify code.
I believe it is more concise and readable like this.
2015-09-04 11:11:39 +09:00
Jean-Philippe Andre 69cbbc2184 evas: Add internal context_dup function
This will simplify some code related to clipping and masking.
2015-09-04 11:11:39 +09:00
Jean-Philippe Andre bcbf7d14e6 evas_render: moar debug (REND_DBG) 2015-09-04 11:11:39 +09:00
Jean-Philippe Andre d69f9e0b84 Evas masking: Fix potential invalid access to mask image
After clip_image_get, the old mask may be replaced by a new one,
and unref'ed, but it is later on set back as the context mask image.
Maybe it's possible that there was 0 reference and the image
got freed in between.

No idea how to test this.

@fix
2015-09-04 11:11:39 +09:00
Daniel Kolesa 35a6bb1666 evas canvas: finish doc conversion 2015-09-03 15:00:06 +01:00
Daniel Kolesa 62d6ab54a4 evas canvas: some doc conversions 2015-09-02 16:21:43 +01:00
Daniel Kolesa 00678aea1b evas_canvas: prepare for doc conversion + partial conversion 2015-09-02 15:13:36 +01:00
Daniel Kolesa 03bbe8a4a7 efl_vg_base: fix wrong @since (was pushed after 1.15) 2015-09-02 14:16:25 +01:00
Daniel Kolesa 791de84f5b efl_vg_base: convert docs 2015-09-02 14:13:15 +01:00
Daniel Kolesa 3752e0aa34 evas object: finish doc conversion 2015-09-02 14:09:04 +01:00
Daniel Kolesa d381b79e95 evas object: more doc conversion 2015-09-02 12:51:15 +01:00
Daniel Kolesa 37a4157bb8 evas object: partial doc conversion 2015-09-02 12:21:59 +01:00
Boris Faure 1df1b23e21 evas:textgrid: correctly check malloc failures 2015-09-01 23:38:43 +02:00
Boris Faure 7a7d3c4022 evas:textgrid: rename text_props to text_props_index 2015-09-01 23:38:43 +02:00
ChunEon Park ea442da9ed evas clip: add warning msg for wrong scenario. 2015-09-01 16:34:17 +09:00
perepelits.m 32c405f8fa [Evas] Counting of tangent space (fix)
Summary: It is counting here, so we can avoid using glsl functions dFdx, dFdy.

Reviewers: cedric, raster, Hermet

Subscribers: Oleksander, cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D2923
2015-08-31 19:04:27 +09:00
Oleksandr Shcherbina c850cc0d80 evas_canvas3d: Recalculation coordinates for pick object from scene
Summary:
Change recalculation coordinate for pick to depend on size of viewport, not from
scene data.
Due to not correct working pick in case resize view window.
@fix

Reviewers: cedric, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2950
2015-08-28 20:32:46 +09:00
Daniel Hirt d6b6a73358 Evas textblock: fix case of own_closer in style_set
Looks like it was assumed that an fnode->orig_format always ends with a
'/' character if the fnode is an own_closer.
The problem is that a paragraph separator ("ps" and "br" - the latter in
legacy newline mode) is also an own_closer, but might not have '/' at the
end, so decrementing the length is wrong.

This fixes T2654. The example markup had "br" read as "b", which led to
a mismatch with the "font_weight=Bold" tag. Coincidentally, "ps" was not
affected as there was no matching "p" in the style.

@fix
2015-08-27 22:59:19 +03:00
Marcel Hollerbach 2eb4f2604d evas_3d: fix defines
Summary:
evas_3d: removed unnessecary defines

Evas_Real was allready defined.

The typedefs of the Eo types can be avoided by fixing the include order

Reviewers: cedric, stefan_schmidt, tasn

Reviewed By: stefan_schmidt, tasn

Subscribers: stefan_schmidt, cedric

Projects: #efl

Maniphest Tasks: T2658

Differential Revision: https://phab.enlightenment.org/D2974
2015-08-24 12:00:57 +02:00
Stefan Schmidt eb6832f62e evas/filter: Remove unused variable
lib/evas/filters/evas_filter_parser.c:861:14: warning: unused variable 'ok' [-Wunused-variable]
2015-08-24 10:15:11 +02:00
Cedric BAIL 05fdfcc76a evas: add logic to duplicate recursively an Efl_VG_Node tree. 2015-08-21 16:40:31 +02:00
Cedric BAIL 126edbb48c evas: allow parent during dup to be an Evas_Object_VG. 2015-08-21 16:40:31 +02:00
Cedric BAIL 7cb92ff35d evas: add support for interpolating Efl_VG_Node tree. 2015-08-21 16:40:31 +02:00
Cedric BAIL d595324a8d evas: add an unique name for each Efl.VG.Base object and make it possible to find it from parent. 2015-08-21 16:40:31 +02:00
Jean-Philippe Andre 2472dfdb24 Evas filters: Fix build for Jenkins gcc_x32
Disable bit32 library if it's not available.
We should probably either ship it or disable it altogether
for the filters. Hmm.
2015-08-21 11:42:30 +09:00
Cedric BAIL 67ef1b11ff evas: properly fix unref of ector renderer.
Async rendering doesn't have a main loop cleanup function. The only one
being called is in the rendering thread. I wrongly assumed in my previous
patch that render_post on an object was called after the async render was
done which is obviously not the case as pointed by Subhransu. This patch
now wait for the async rendering to be done.
2015-08-20 15:39:16 +02:00
Jean-Philippe Andre 50e91e5321 Evas filters: Fix char buffer size
Thanks Coverity.
Fixes CID 1316684
2015-08-20 11:37:53 +09:00
Cedric BAIL 0ee28f12e1 evas: be more pedantic in case of error in Evas_VG_Node. 2015-08-19 20:22:57 +02:00
Daniel Hirt a197aa366b Evas language: fix script run code
For script runs that start with an UNKNOWN character, the whole
run was mistakenly identified as script type UNKNOWN.

Also, refactored code a bit for readability.

Fixes T2670.
@fix
2015-08-19 17:16:42 +03:00
Cedric BAIL f1e3c7f41f evas: no need to get the data if it is not the right type of object. 2015-08-19 16:12:58 +02:00
Cedric BAIL 7c83af2ae3 evas: fix ref/unref of ector renderer to always happen in the main loop. 2015-08-19 16:06:39 +02:00
Subhransu Mohanty ad3ae08b82 evas: delete the ector_renderer when evas_vg_node gets deleted.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 14:46:26 +02:00
Jean-Philippe Andre 8c8d254fbc Evas filters: Fix proxy buffer size in Lua
In order to do that, avoid creating multiple Buffer instances
when pointing to the same proxy source. This fixes buffer.width
and buffer.height in Lua.
2015-08-18 18:31:39 +09:00
Jean-Philippe Andre 8e9ab6440f Evas filters: Fix massive memleak with async sw render
Oooops, the flag stolen meant that we don't hold any reference on
this buffer anymore, which meant we should not increase the refcount
here!

@fix
2015-08-18 18:31:39 +09:00
Jean-Philippe Andre ea001c3ec1 Evas: Add debug env var EVAS_IMAGE_NO_MMAP
Looking for image buffer memory leaks with Valgrind is impossible
when all images are mmaped. This is intended as a DEBUG environment
variable only.
2015-08-18 18:31:39 +09:00
Jean-Philippe Andre 6124d07336 Evas filters: Fix for Lua 5.3 (with --enable-lua-old)
Tested with LuaJIT, Lua 5.2 and Lua 5.3.

@fix
2015-08-18 18:31:39 +09:00
Daniel Kolesa d737233dd5 evas_image: finish doc conversion 2015-08-14 16:36:21 +01:00
Daniel Kolesa 11101af3bb evas_image: convert more docs 2015-08-14 16:21:51 +01:00
Daniel Kolesa f00013b018 evas_object,evas_image: partial doc conversion 2015-08-14 13:20:17 +01:00
Carsten Haitzler 40fc5a9282 evas render 2 - tiled rouding of updates to keep number regions down
tile to 16x16 (we can cahnge) to keep number of update rects
down/minimal with render2
2015-08-12 20:08:14 +09:00
Carsten Haitzler 9d9e8ffab5 evas - handle case where layer->evas is null - don't crash
there seems to be a corner case where obj->layer->evas is null for an
object. i think during shutdown of a canvas.

@fix
2015-08-12 20:08:14 +09:00
Cedric BAIL 08e888156e evas: force full redraw of snapshot for every frame, every time.
NOTE: it would be nicer to setup a specific context for each snapshot
and walk all the child below. If any of them did change, only trigger the
full redraw in that case (and of course only if a filter with blurr does
use it somewhere).
2015-08-06 11:05:50 +02:00
Cedric BAIL 941d75d24d evas: move make update to be outside of the reused code for rendering sub objects. 2015-08-05 15:12:33 +02:00
Cedric BAIL 46082eb13d evas: make sure that the context is only relevant to the surface we are currently manipulating. 2015-08-05 15:12:33 +02:00
Cedric BAIL c5c94ce027 evas: we now need to force mark the object as changed. 2015-08-05 15:12:33 +02:00
Cedric BAIL 033658d1ca evas: implementation of snapshot feature.
This should theorically work, need some test. Design is easy to understand. Render
every part of a snapshot object by rendering the content below it, before rendering
the stack above it using that object content.
2015-08-05 15:12:33 +02:00
Cedric BAIL 8b31b7c33a evas: prepare refactoring necessary for snapshot. 2015-08-05 15:12:33 +02:00
Cedric BAIL 2ebf315591 evas: add a snapshot bool to Evas_Object_Image.
Snapshot object are rendering the content of the canvas below them into them.
They can then be used for filter, map or proxy.

Have fun !
2015-08-05 15:12:33 +02:00
Daniel Kolesa 1ff8ab7d8e evas_3d_utils: fix compiler warning 2015-08-05 11:12:24 +01:00
perepelits.m be33840b6b evas: add tangent space algorithm
Summary: This is a logic of tangent data calculation, we need it in order to avoid bugs with normal mapping after building with opengl=yes.

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: Oleksander, cedric, artem.popov

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-04 17:34:29 +02:00
Cedric BAIL 10fb77cc55 evas: twice faster NEON intrinsics scaling up implementation
Summary: Already checked it for tizen 2.3/2.4. Scaling function works properly and much faster.

Reviewers: raster, jolfzverb, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-04 17:34:29 +02:00
Tom Hacohen a899a04a62 Evas out: migrate more eolian types. 2015-08-04 10:57:14 +01:00