Commit Graph

2250 Commits

Author SHA1 Message Date
Youngbok Shin 917fdbd597 evas: fix a NULL dereference issue in font.
Summary:
eina_list_remove returns Eina_List pointer.
It could be NULL if the last list item is removed.
And the returned Eina_List pointer could be different from the given list.
So, calling free for fdir->data after fdir's address is changed is dangerous.
@fix

Test Plan: Run expedite or test app with evas_font_path_append() API.

Reviewers: stefan_schmidt, jpeg

Reviewed By: jpeg

Subscribers: stefan, jiin.moon, cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 15:03:51 -08:00
Stefan Schmidt 3a11868201 evas_3d_utils: do not bitwise AND against 0 in condition
We need to check against the state here and if the compilers assignes 0 to the
first item in an enum we are screwed here as the bitwise AND will always
evaluate to false.

This is a re-incarnation from a486671bce
2015-11-30 17:36:24 +01:00
Stefan Schmidt 54abe37c44 evas_font_dir: do not passed free'd memory to eina_list_remove()
Free the actual memory after we removed it from the list.
2015-11-30 17:36:24 +01:00
Vincent Torri db8d1883d7 Evas: use LC_MESSAGES on Windows to fix compilation
Compilation is broken on Windows because LC_MESSAGES does not exist on this platform
Include Evil.h to provide support of LC_MESSAGES

@fix
2015-11-30 16:28:02 +00:00
Chris Michael 886c20a43b evas-3d: Fix missing field initializers
Clang spits warnings here about missing field initializers for
Evas_Vec3 (missing y and z fields), so we will explicitly initialize
them to 0 (matching the x field).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-30 09:15:53 -05:00
Tom Hacohen 2c9a79e939 Revert "Evas: Temporarily hack OT_SUPPORT to fix textgrid"
Fixed in upstream, see T2865.

This reverts commit 8ccea8233c.
2015-11-27 12:34:15 +00:00
Stefan Schmidt 043cfaa33b evas_common3d: use void to force empty function parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
2015-11-26 17:25:36 +01:00
Youngbok Shin 507baf4891 evas: Add ExtraLight, ExtraBold for font weight.
Summary:
Evas supports UltraLight, UltraBold as font weight.
These terms have same weight value as ExtraLight, ExtraBold.
Some applications, for example, fontforge, use ExtraLight, ExtraBold terms for these weight values.
So, it would be better to support these terms, too.
@feature

Test Plan: None

Reviewers: tasn, woohyun, herdsman

Reviewed By: herdsman

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3126
2015-11-26 10:16:14 +02:00
Jean-Philippe Andre 8ccea8233c Evas: Temporarily hack OT_SUPPORT to fix textgrid
See T2865.
Since Harfbuzz 1.1.0, terminology displays fonts funnily aligned to
the top. This is apparently because until 1.0.6 the y_offset was
always 0 for all glyphs, but since 1.1.1 the offset is actually
set.

This is a TEMPORARY fix. There might be an underlying issue left
here.

Harfbuzz changed behaviour in this commit:

  commit 44f82750807475aa5b16099ccccd917d488df703
  Author: Behdad Esfahbod <behdad@behdad.org>
  Date:   Wed Nov 4 20:40:05 2015 -0800

      [ft] Remove font funcs that do nothing
2015-11-25 16:44:04 +09:00
Subhransu Mohanty 609f74994b efl: make path stroke related api as non virtual.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 15:42:29 -08:00
Daniel Hirt 40dfc4a45d Evas textblock: add support for hyphenation wrap style
We now support hyphenation in style. Use "wrap=hyphenation" to use this
wrap option. It will hyphenate based on explicit SOFT HYPHEN (&shy;)
placement in the text, and with the (optional) assistance of dictionaries
compatible with Hunspell's "hyphen" library.

This wrap mode favors breaking at hyphen positions in a word, over moving
the whole word to the next line. It will put an additional "-" at the
break position if it was hyphened.

Enabling the hyphen dictionaries is done by adding these configure
options:
  --enable-hyphen (requires Hunspell's "hyphen" library installed)
  --with-dictionaries-hyphen-dir=DIR (specifies the install location of
          the actual .dic dictionary files e.g. /usr/share/hyphen)

Note that dictionary files are expected to be in the form of "en_US.dic"
or anything that ends with it e.g. "hyph_en_US.dic" (this how they are
        named in Arch Linux).

@feature
2015-11-24 14:31:05 +02:00
Minwoo, Lee 3700be959b evas: Fix text effect which has shadow direction
Summary:
If text object has outline and shadow effect (OUTLINE_SHADOW or OUTLINE_SOFT_SHADOW), and has shadow direction except BOTTOM_RIGHT then outline is not displayed.
So fix logic of style checking.

OUTLINE_SOFT_SHADOW effect of text object is different with text block, so fix it.

Test Plan: Make text obect with OUTLINE_SHADOW or OUTLINE_SOFT_SHADOW effect with any direction except BOTTOM_RIGHT

Reviewers: cedric, woohyun, herdsman, tasn

Subscribers: id213sin

Differential Revision: https://phab.enlightenment.org/D3047
2015-11-23 20:53:29 +09:00
Oleksandr Shcherbina d871ff8d11 evas: remove useless part of code in evas_convex_hull_get function
Summary:
@fix
CID: 1339788

Reviewers: raster, cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-23 08:20:26 +01:00
Oleksandr Shcherbina 3a56b3f013 evas: fix uninitialize variable in convex_hull_vertex_set function
Summary:
A bit of useless claim, becouse parameter coord always have value 0 or 1 or 2.
May be for escape problem in future.
@fix
CID: 1339781

Reviewers: raster, cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-23 08:18:53 +01:00
Oleksandr Shcherbina 6866d256e8 evas: fix possible accsess to NULL pointer in Evas.Canvas3d.
Summary:
@fix
CID:1339784

Reviewers: raster, cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-23 08:16:12 +01:00
Oleksandr Shcherbina 5d4f3b22c4 evas: fix unreachable code in _generate_unic_color_key function in Evas.Canvas3D.
Summary:
Have a sence. It is hard to assume that more that 16 million color will be used.
@fix
CID: 1339790

Reviewers: raster, cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-23 08:12:00 +01:00
Jean-Philippe Andre 58a1b2767e Evas render: Fix another map clip render issue
This time it's only about performance. We seem to be setting the
changed flag too often, which might trigger unnecessary redraws.

- map flag is set if there is currently a map AND it's not an image
  object (because images can map themselves)
- hmap flag is set if there was a map before

So, map != hmap does not imply a transition between a mapped and
non-mapped state. Add an extra check before marking the clip
as dirty and changed.
2015-11-20 14:23:29 +09:00
Cedric BAIL 412191e5f8 ector: improve uploading of GL texture for vector graphism
This rely on a faster code path to upload dynamic texture. Once we get support
for gbm, we should see significant performance improvement in speed, but this
first step is already a 5 times improvement (Ok, we get from really bad, to not
really useful...).
2015-11-19 14:52:10 +01:00
Youngbok Shin a9b4be11e1 Evas object: Add paragraph_direciton APIs
Summary:
It adds evas_object_paragraph_direction_set, get APIs.
The APIs set or get paragraph direction to/from the given object.
It changes BiDi calculations and affect the direction and aligning of text.
It doesn't have any effect to text without Fribidi library.

The default paragraph direction is EVAS_BIDI_DIRECTION_INHERIT.
If dir is EVAS_BIDI_DIRECTION_INHERIT, paragraph direction is changed
according to smart parent object. If there is no smart parent object,
paragraph direction works as EVAS_BIDI_DIRECTION_NEUTRAL.

@feature

Test Plan:
Test cases included to the following files.
- evas_test_textblock.c
- evas_test_text.c
- evas_test_object_smart.c

Run "make check".

Reviewers: woohyun, raster, herdsman, tasn

Subscribers: c, raster, cedric

Differential Revision: https://phab.enlightenment.org/D1690
2015-11-19 11:43:39 +00:00
Tom Hacohen 1e1e50ca06 Evas text: Fix last up to pos error return value.
This commit also simplifies the code a (tiny) bit.

This fixes the bug introduced in:
392df9479f
2015-11-18 10:56:48 +00:00
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
Oleksandr Shcherbina 60b16be772 Evas canvas3d: Move evas 3d types to evas_types.eot
Summary:
Move evas_canvas3d types from Evas_Eo.h to evas_types.eot
Change enum constatnt for vertex_arrtib, material_attrib, blend_func
Correct namespace for Evas.Real type

Reviewers: cedric, tasn

Reviewed By: tasn

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2734
2015-08-04 10:57:14 +01:00
Carsten Haitzler d31098fcec evas image unload - fix free path to remove from pending list
this should fix T2580
2015-08-04 10:47:38 +09:00
Nicolas Aguirre b79ab57226 Revert "Include <Eet.h> where needed. cf:"
This reverts commit 877338659b.
2015-08-03 14:34:57 +02:00
Florent Revest 877338659b Include <Eet.h> where needed. cf:
https://github.com/openembedded/meta-oe/blob/master/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch
2015-08-03 14:16:35 +02:00
Tom Hacohen 7ffa4d1367 Evas text: Migrate docs to new Eolian format. 2015-07-31 16:00:23 +01:00
Tom Hacohen e851249db7 Evas table: Migrate docs to new Eolian format. 2015-07-31 15:38:18 +01:00
Jean-Philippe Andre 81f1f5db17 Evas filters: Fix invalid sizeof
CID 1308609
2015-07-31 13:24:17 +09:00
Daniel Kolesa 465bffcf7d evas textblock: convert docs 2015-07-30 13:16:05 +01:00
Daniel Kolesa 8a58bc9188 evas_common_interface: remove bad doc comment 2015-07-30 13:01:29 +01:00
Daniel Kolesa e607cb6f6f evas canvas3d: doc conversion of mesh 2015-07-30 13:00:25 +01:00
Daniel Kolesa 70a8304495 evas canvas3d: doc conversion of scene 2015-07-30 12:38:51 +01:00
Daniel Kolesa 1e620e8f80 evas canvas3d: doc conversion of texture 2015-07-30 12:30:40 +01:00
Jean-Philippe Andre fbd0a51607 Evas filters: Fix order of header file includes
This fixes filters on Ubuntu 32 bits.

This was one hell of a weird bug to track down. Everything worked
like a charm on my 64 bit machines, but filters would simply fail
for no good reason: a safety check sees a NULL pointer when clearly
it was properly allocated.

Just after entering a function, the content of an RGBA_Image would
change, even though there was no memory write there. This made the
image data pointer NULL, and filters would fail miserably.

So I printed out the contents of the RGBA_Image, they changed. But
the memory itself had not changed. The size of the struct itself
had changed when jumping from one file to another! But its definition
had not! Non-sense!

Unless of course a system header file was included before config.h
and ino_t or off_t would switch between 32 and 64 bits...

@fix
2015-07-28 17:13:52 +09:00
Jean-Philippe Andre 0058cd08f4 Evas filters: Fix COW usage in filter mixin 2015-07-28 17:13:52 +09:00
Jean-Philippe Andre f9c7d25b08 Evas filters: Disable debug code path 2015-07-28 17:13:52 +09:00
Jean-Philippe Andre 284cd2a530 Evas filters: Fix invalid rendering in case of async render
This simplifies the code and fixes async buffer management.

@fix
2015-07-28 17:13:52 +09:00
Jean-Philippe Andre c45ae022c8 Evas masking: Fix crash in async rendering
There was a FIXME comment... >_<

Improper management of image resources in async render led to
a rare crash. This should fix that.

@fix
2015-07-27 14:15:09 +09:00
Carsten Haitzler 17823d21ea evas - image data unload - try plug another possible crash path
i am not sure if this is the odd crash i am seeing, but in theory it
could be. as these crashes are rare it's hard to find and gdb is "too
late" other than telling me the image is freed already by the time we
do an unload.
2015-07-26 03:02:06 +09:00
Stefan Schmidt 3b91d33da2 evas/filter: Avoid leak in error path
If format is not found we go out of scope and would leak param. Free instead.

CID 1308610
2015-07-24 19:01:10 +02:00
Carsten Haitzler 5b1e3b3a89 evas - image unload - fix unload to only unload imgs needing it
need_unload seems to have been done wrong. using preload not
need_unload. no idea why it checked/cleared preload instead of
need_unload.
2015-07-24 23:21:55 +09:00
Carsten Haitzler 65ebf496fd evas render2 work - no new feature - paralell bit of code
*this does not affect any "stable" code paths - it's render2 and some
added region code that i MAY have to use to fix some bugs/issues as i
am noticing tilebuf being pretty silly and just doing bounding boxes.
region code lifted from xserver (mit-x11 license thus compatible with
evas bsd) and it's been stripped down and cleaned up with some tilebuf
optimizations like remembering the last rect add/del to avoid work
when repetedly adding/delling the same rects (very common).
2015-07-24 22:11:40 +09:00
Carsten Haitzler e0c81ed35f evas render - fix up debug macros so they don't generate any code
if render debug is not enabled make sure they end up totally empty to
avoid any possible overhead from the optimizer not stripping them out
2015-07-24 22:11:40 +09:00
Srivardhan Hebbar 3e54602209 evas grid: Eolian doc conversion of grid.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, tasn, q66

Reviewed By: q66

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2860
2015-07-24 13:40:30 +01:00
Jean-Philippe Andre ff6dbb17e3 Evas filters: Set state.next to nil when not in transition
This is what the doc says and makes more sense.
That was some kind of inverted logic.
2015-07-23 20:17:39 +09:00
Srivardhan Hebbar 03b1416426 evas vg: Eolian doc conversion of vg.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, tasn, q66

Reviewed By: q66

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2857
2015-07-23 10:43:04 +01:00
Srivardhan Hebbar c2ff5bfc82 evas out: Eolian doc conversion of out.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, tasn, q66

Reviewed By: q66

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2855
2015-07-23 09:32:46 +01:00
Jean-Philippe Andre fcde390fa4 Evas GL: Add missing call in case of direct rendering
I spotted this by looking at the code in a different branch (that
was tested on real hardware).
2015-07-23 10:34:15 +09:00
Srivardhan Hebbar d516d409c4 evas polygon: Eolian doc conversion of polygon.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, tasn, q66

Reviewed By: q66

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2854
2015-07-22 10:41:39 +01:00
Srivardhan Hebbar 99efa51a39 evas object: Eolion doc conversion of object_smart.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, tasn, q66

Reviewed By: q66

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2853
2015-07-22 10:38:59 +01:00
Daniel Kolesa 68fbd24a60 evas_canvas3d_scene: fix missing color initializer 2015-07-21 14:46:25 +01:00