Commit Graph

1987 Commits

Author SHA1 Message Date
Ivan Furs a88aebe8cc evas: for aabb add interpolation frame when base frame is not found
Summary:
Old algorithm searched specified frame of the base frame and when it could not find the specified frame it ignored. So the bounding box was not synchronized with the object.
New algorithm always returns specified base frame or frame interpolation between the nearest base frames. That does synchronizes mesh object and his bounding box.

Reviewers: Hermet, cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-03 17:14:12 +02:00
Bogdan Devichev 8369dfd28f evas_3d: fix coverity scan CID 1302703 and CID 1302702
Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2613
2015-06-03 21:26:34 +09:00
Tom Hacohen 6190f3cb46 Edje object: Fix more Eolian warnings. 2015-06-03 11:30:41 +01:00
Dongyeon Kim 3e39bf3638 Evas GL: support surfaceless make current
Summary:
Evas GL now supports surfaceless make current, where
evas_gl_make_current can be called with sfc parameter NULL.
This closely resembles EGL_KHR_surfaceless_context extension,
where applications that only want to render to client API targets
can make current to NULL surface instead of creating a dummy egl surface.
@feature
2015-06-03 11:30:22 +09:00
Tom Hacohen 87e7d2f200 Eo types: Fix Eina.Rectangle's namespace. 2015-06-01 14:04:09 +01:00
Tom Hacohen 5e43550937 Evas table: Migrate types to .eo files. 2015-06-01 12:12:03 +01:00
Tom Hacohen 72488cb26b Evas box: Migrate (some) types to .eo files. 2015-06-01 11:47:37 +01:00
Tom Hacohen dd6bb93ba0 Evas textgrid: Migrate types to .eo files. 2015-06-01 11:33:59 +01:00
Tom Hacohen 37b130b934 Evas grid: Migrate types to .eo files. 2015-06-01 11:17:22 +01:00
Tom Hacohen 82f6dff7d7 Evas smart: Migrate types to .eo files. 2015-06-01 11:16:22 +01:00
Tom Hacohen 9eef6deea9 Evas polygon: Migrate types to .eo files. 2015-06-01 11:06:48 +01:00
Tom Hacohen 5a64c11bde Evas textblock: Migrate types to .eo. 2015-06-01 11:04:10 +01:00
Tom Hacohen b2370c4766 Evas text: Migrate types to .eo. 2015-06-01 11:04:10 +01:00
Tom Hacohen 49b2998bb4 Evas common interface: Add a workaround for Eolian issue.
This should be fixed properly once Eolian supports forward class
declarations.
2015-06-01 10:34:08 +01:00
Tom Hacohen 57e7af6673 Evas: Migrate more types to Eolian. 2015-06-01 10:34:08 +01:00
Tom Hacohen 79083ed3af Evas types: Fix inclusion of evas types from the right location.
My system was dirty and it was already installed in the right place.
Now it works as expected.

Reported on IRC by batden.
2015-05-29 16:42:34 +01:00
Cedric BAIL 0acf23857f eina: beginning of a generic quaternion API. 2015-05-29 17:20:29 +02:00
Tom Hacohen 8a6e542fef Evas map: Move opaque type definition to .eo. 2015-05-29 15:00:22 +01:00
Tom Hacohen edd361b420 Evas: Move evas aspect control to eolian and start using it. 2015-05-29 14:52:33 +01:00
Tom Hacohen 0574663780 Evas: Move evas coord to eolian and start using it. 2015-05-29 14:49:28 +01:00
Tom Hacohen bfe92631c6 Evas: Add a general evas types header. 2015-05-29 14:46:16 +01:00
Tom Hacohen 5aedcdb591 Evas object: Use correct type in .eo file.
When we want an Evas_Object in Eo files, we should use Evas.Object.
2015-05-29 11:39:03 +01:00
Tom Hacohen 52d998f475 Eo base: Remove the free_func parameter from key_data_set.
This was not really useful and against the Eolian guidelines.
While I promised I won't break things until the 27th, I was ill
(still am), so I'm giving myself a 1 day pass. :P
2015-05-28 17:47:59 +01:00
Mike Blumenkrantz 29cf9abfc6 evas: make image_size_get() return the actual image size
proxy/3d/etc images would previously return 0x0, breaking size calcs

@fix

@jpeg
2015-05-27 22:16:22 -04:00
Carsten Haitzler cc49c1702b evas - fix yuv support to no longer ignore 709 colorspace params
if yuou use 709 instead of 601 yuv (ycbcr) evas will just be wrong and
use 601. this fixes that and implements 709. it also fixes a scaling
bug for yuv in the gl engine. no one noticed but me, so i won't call
this a bug fix, and it can go into the next efl release - no need to
backport unless it actually bothers peolpe (which it seemingly doesn't)
2015-05-27 20:19:46 +09:00
Subodh Kumar 77e3ac7f82 Evas textblock: Add underline height support
Summary:
For showing text error like spell error thick underline is used hence added the underline height support.

@feature

Test Plan: test case added in evas textblock test.

Reviewers: raster, shilpasingh, tasn

Subscribers: govi, rajeshps, cedric

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

TAsn comment: I wonder if the format should be renamed to
underline_relheight instead of height. If you have any thoughts, please
let me know.
2015-05-27 11:18:19 +01:00
se.osadchy 684c51360f evas: fix color pick compatibility of Evas_3D with GLES.
Summary:
Use fourth component texture. Update mechanism generation pixels, scene renderer
to texture and geting color pixels from texture. Update shader for color pick.

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: Oleksander, cedric

Differential Revision: https://phab.enlightenment.org/D2549
2015-05-27 00:31:07 +02:00
Bogdan Devichev 6dac83e643 evas: add API for creation Evas_3D node primitives.
Summary: Now mechanism of creation of primitives is similar to model loading.

Reviewers: Oleksander, Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-27 00:31:07 +02:00
Ivan Furs ab147386ad evas: fix errors when updating the bounding box of Evas_3d_Node.
Summary:
For calculation 'aabb' need  to know how mesh was transformed.
So for  primary data of mesh was calculate all transformation.

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-27 00:31:06 +02:00
Daniel Kolesa 9214fa3db9 eolian: disallow cyclic dependencies between .eo files
Eo files will now fail to compile if a cycle is detected.

This required some temporary changes in existing eo files
(we had 2 cycles) for which I added a FIXME (they do not
affect C generation).

@feature
2015-05-22 15:03:38 +01:00
MinJeong Kim 344f17a03d evas_object_textblock: fix dereference before null check
Summary:
Fix coverity CID 1270031 Dereference before null check
@fix

Reviewers: devilhorns, zmike, raster, tasn

Reviewed By: tasn

Subscribers: tasn, cedric

Differential Revision: https://phab.enlightenment.org/D2522
2015-05-21 08:48:56 +01:00
Mike Blumenkrantz b7c89d2325 evas: add keysym member to key event structs
@feature
2015-05-20 14:58:31 -04:00
Daniel Kolesa 378e161cd3 eolian: remove @const_get occurences in the EFL 2015-05-20 17:48:52 +01:00
Tom Hacohen 92fb2917cb Eo: Remove eo_error_set() and clean up finalizer()
This is another cleanup in perparation for the Eo stable release.
This is no longer needed thanks to the proper error reporting with
eo_constructor()'s new return value.

The finalizer change cleans it up a bit so it catches more cases/issues.
This also means that the finalizer cleans up the object in all cases,
and not only some.

@feature.
2015-05-20 16:25:38 +01:00
Tom Hacohen 6efbfe227a Eo: Add a return value to eo_constructor().
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.

This is one of the final steps towards stabilizing Eo.

@feature
2015-05-20 13:03:24 +01:00
Daniel Kolesa 3df93cca7d eolian: Eina_Bool -> bool 2015-05-18 16:25:59 +01:00
Daniel Kolesa 058a9c9d88 eolian: new syntax for params/values/keys
Instead of "@in type name;" we now use "@in name: type;". This change
is done because of consistency with the rest of Eolian; pretty much
every other part of Eolian syntax uses the latter form.

This is a big breaking change in the .eo format, so please update your
.eo files accordingly and compile Elementary together with the EFL.

@feature
2015-05-18 16:14:31 +01:00
Amitesh Singh 86751fdbaf evas: New Evas Callback added when viewport is resized.
Summary: @feature

Reviewers: seoz, Hermet, cedric, raster

Subscribers: seoz, cedric, sachin.dev

Differential Revision: https://phab.enlightenment.org/D2526
2015-05-18 20:10:27 +09:00
Carsten Haitzler bd1d996545 evas font draw - fix up some whitespace/indenting/formatting 2015-05-18 17:13:38 +09:00
ChunEon Park f3c78cd69e evas canvas: fix insane mouse move events on proxy source.
There is no need compare - transformed mouse pos and origin pos.
This compare just block the mouse move event trigger on source.

@fix
2015-05-16 00:34:28 +09:00
Cedric BAIL 46e1ffd257 evas: use portable environment lookup. 2015-05-14 18:41:48 +02:00
ChunEon Park 3c7188ec20 evas canvas: add exceptional handling in invalid input case.
@fix
2015-05-14 19:50:50 +09:00
Carsten Haitzler 8a101cd8f0 efl - add more evlog points
@feature
2015-05-14 17:35:22 +09:00
Yury Usishchev 835c393d17 evas: add support for BUILD_NEON_INTRINSICS to evas_convert_rgb_32.c
Summary: This fixes build for aarch64 when TILE_ROTATE is disabled and BUILD_NEON is enabled(it is enabled by default for aarch64 since https://phab.enlightenment.org/D2309).

Reviewers: cedric, raster

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-13 16:20:22 +02:00
Oleksandr Shcherbina fc4f755c28 evas: fix coverity CID 1297159 and CID 1297158.
Reviewers: Hermet, b.devichev, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-13 16:20:22 +02:00
Carsten Haitzler f6a39ab571 evas grid smart - fix coord overflows when grid size and vsize are large
if your virtual size is fairly big AND your actual object size is also
big, you easily overflow a signed int for intermediate coordinate
calculations, resulting in seeing only a small fractin of your objects
correctly. this fixes that by expanding up to long longs internally to
allow for the added space needed for the multiplications

@fix
2015-05-13 22:25:09 +09:00
Jean-Philippe Andre 3e31ad27da Evas filters: Disable excessive debug 2015-05-13 10:24:24 +09:00
Daniel Kolesa 3dc27cb482 eolian: fix up remaining doc comments in the tree 2015-05-11 15:38:03 +01:00
Daniel Kolesa 8c51033d49 eolian: fix doc comments across the tree 2015-05-11 15:38:03 +01:00
Subhransu Mohanty d82c0ae1bf evas/canvas : Call correct engine function for setting clip color 2015-05-09 19:59:00 +09:00
ChunEon Park 1c063e85d2 evas vector: remove white trailings 2015-05-08 20:51:52 +09:00
Subhransu Mohanty 8f55ac7550 evas/canvas: Null check for base class data pointer. 2015-05-08 20:40:28 +09:00
ChunEon Park e08b942ffd evas vector: cancel the transformation when null is passed. 2015-05-08 20:38:56 +09:00
Daniel Kolesa ed0988a22d eolian: change all EFL .eo files to use new syntax for properties 2015-05-07 16:36:58 +01:00
Cedric BAIL 45bba2439d evas: do not cast uint64x1_t to int in evas_common_convert_argb_premul
Summary:
In GCC 5.1 arm_neon header for aarch64 was changed. It is not possible anymore to silently cast uint64x1_t to int.

So replace cast with proper getter function to avoid following error:
lib/evas/common/evas_convert_color.c:50:18: error: incompatible types when assigning to type 'DATA32 {aka unsigned int}' from type 'uint64x1_t'
nas += vpaddl_u32(vpaddl_u16(vpaddl_u8(cmp)));

Reviewers: raster, cedric, devilhorns

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:12 +02:00
Cedric BAIL ad1076525a evas: implement _op_blend_rel_mas_c_dp_neon using NEON intrinsics
Summary: NEON intrinsics can be built both for armv7 and armv8.

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL 2c2983aadb evas: implement _op_blend_rel_{p,pan}_dp_neon using NEON intrinsics
Summary: NEON intrinsics can be built both for armv7 and armv8.

Reviewers: raster, cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL 10ece61dbf evas: implement _op_blend_rel_c_dp_neon using NEON intrinsics
Summary: NEON intrinsics can be built both for armv7 and armv8.

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL d364cbdadd evas: implement _op_blend_rel_p_c_dp_neon using NEON intrinsics
Summary:
NEON intrinsics can be built both for armv7 and armv8.

There were no NEON variant for this function, so it was added with all copies to init function.

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL 76a5efe13a evas: implement pixel_color blending functions using NEON intrinsics.
Summary:
NEON intrinsics can be built both for armv7 and armv8.
Implemented functions:
_op_blend_pan_c_dp_neon
_op_blend_p_can_dp_neon
_op_blend_pan_can_dp_neon
_op_blend_p_caa_dp_neon
_op_blend_pan_caa_dp_neon

Reviewers: raster, cedric

Subscribers: cedric

Projects: #efl

Maniphest Tasks: T2341

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL 71b7fc982a evas: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Bogdan Devichev 04038dfaef evas: primitives - Changed enum for types of Evas_3D_Mesh primitives
Summary:
**`Creating API for primitives.`**

//What should be in the end://

- Class evas_3d_primitive inherited from eo.base
- Unificated API of mesh for setting data from primitives
- API's of primitives to get/set precision, ratio, type, tex_scale etc.
- code of primitives in separated modules

//Steps://

**1.) Enum for types of primitives**
2.) Copies of primitives in modules
3.) Eo and c files for class of primitive
4.) In common create picker of module
5.) API function in mesh.c
6.) Binding of new realization
7.) Rewriting of examples
8.) Deleting of old files for primitives

//Also this commit will be usable in parsing EDC by edje//

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Cedric BAIL 657d495aa9 evas: implement _op_blend_p_mas_dp_neon and _op_blend_pas_mas_dp_neon in NEON intrinsics.
Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Cedric BAIL 8fa4d415e4 evas: improve _op_blend_p_dp_neon intrinsics implementation
Summary:
Use vceqq and vbsl instead of twice as much vmovl and vadd instructions.
Replace vaddq_u8 with vaddq_u32.
This allows NEON code to behave exactly like C version.

Reviewers: raster, cedric

Reviewed By: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Oleksandr Shcherbina d88ccf06a5 evas: use Evas_GL_image for generate texture unit for Evas_3D_Texture.
Summary:
Used engine function for load image/data and use texture unit through
Evas_GL_Image object
Used Evas_ColorSpace format instead Evas_3D_Color/Pixel format
Added transformation matrix for adjusting texture unit coordinates in shader
Added property in Evas_3D_Texture for mark possibility get texture without atlas
(see https://phab.enlightenment.org/conpherence/54/, I suppose it will done
after this patch)

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Yury Usishchev 970afe9bea evas: implement _op_blend_mas_can_dp_neon in NEON intrinsics.
Reviewers: raster, cedric

Reviewed By: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Yury Usishchev be7c7c2c77 evas: implement _op_blend_p_c_dp_neon in NEON intrinsics.
Reviewers: cedric, raster

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Yury Usishchev a0d0c98839 evas: improve _op_blend_mas_c_dp_neon intrinsics implementation.
Summary:
Use vceqq and vbsl instead of twice as much vmovl and vadd instructions.
Replace vaddq_u8 with vaddq_u32.
This allows NEON code to behave exactly like C version.

Reviewers: cedric, raster

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:08 +02:00
Yury Usishchev d2c5730b81 evas: implement _op_blend_mas_c_dp_neon in NEON intrinsics.
Reviewers: raster

Subscribers: cedric

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D2312
2015-05-07 09:53:08 +02:00
Yury Usishchev 9caa6a3597 evas: implement _op_blend_p_dp_neon and _op_blend_pas_dp_neon in NEON intrinsics.
Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D2311
2015-05-07 09:53:08 +02:00
Yury Usishchev a30481d27b evas: implement _op_blend_c_dp_neon in NEON intrinsics.
Reviewers: raster, cedric

@feature

Reviewed By: cedric

Subscribers: jpeg, cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:08 +02:00
Yury Usishchev 71eec44ccc evas: enable NEON-optimized code for aarch64.
Summary:
Add new define, BUILD_NEON_INTRINSICS to control whether NEON inline code or
NEON intrinsics should be built.

GCC NEON intrinsics can be built both for armv7 and armv8. However NEON inline
code can be built only for armv7.

@feature

Reviewers: raster, stefan_schmidt, cedric

Subscribers: cedric, stefan_schmidt

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:08 +02:00
Amitesh Singh 24a5e2cdba evas: fix typo in API documentation.
Summary: Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>

Reviewers: raster, Hermet

Subscribers: seoz, cedric, sachin.dev

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-05 10:44:41 +02:00
Jean-Philippe Andre 5209aaebdb Evas masking: Free mask surfaces during evas dump
On minimizing, free all mask surfaces. This could save a lot
of memory.

Also, write "proxy" COW only when there is a surface (the "proxy"
pointer itself is always valid and non-NULL).
2015-04-27 16:40:34 +09:00
Jaehwan Kim c3ae53bb9c evas_text: fix default return value.
@fix
2015-04-23 22:11:32 +09:00
Tom Hacohen 450ff212e2 Evas text utils: move the non-ot function into the current ifdef.
This function should only be build when OT is off. Move
it to the #else part of the ifdef.
2015-04-22 13:11:58 +01:00
Chris Michael f7fb534562 evas-blend-ops: fix off-by-1 in the C MUL3_SYM "simd" multiplier
Summary: op_blend functions give off-by-1 using NEON intrinsics in C
MUL3_SYM, this commit fixes that issue with no ill effects on other
platforms.

@fix

Reviewers: raster, cedric

Subscribers: cedric

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D2394
2015-04-21 11:26:03 -04:00
Jean-Philippe Andre 02d94f5e5e Evas tiler: Remove unused functions (clang)
rect_list_add_split_strict is still kept for reference in
eina_tiler.c
2015-04-21 20:46:04 +09:00
Jean-Philippe Andre de567368f8 Evas: Fix clang warning (actually use function)
Those helper functions are barely ever used...
2015-04-21 20:16:21 +09:00
Jean-Philippe Andre 25b4846314 Evas/cserve2: Fix clang warning 2015-04-21 20:11:02 +09:00
Jean-Philippe Andre 6637e7cda9 Evas filters: Fix clang warnings 2015-04-21 20:11:02 +09:00
Jean-Philippe Andre fb812c13b3 Evas render2: Fix clang warnings
More unused functions. Kept around for later debugging.
2015-04-21 20:11:01 +09:00
Tom Hacohen c7999fbf42 Evas 3d mesh: remove non-implemented functions from "implements".
They are not implemented, so they should not be marked as implemented.
Eo already properly handles functions that are not implemented, this is
completely unnecessary.
2015-04-20 15:00:40 +01:00
Jean-Philippe Andre 1dddbbd8f7 Evas: Remove callbacks in reverse order with callback_del
This function is deprecated, because del_full should be used instead.
Still, the documentation specifies in which order the callbacks should
be deleted.

Fixes T2077 (not really fixes according to the comment but fixes
according to the doc).
2015-04-20 16:41:12 +09:00
Subhransu Mohanty 451a15802a evas: update matrix calulation as the behaviour of eina_matrix api changed.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-17 10:52:28 +02:00
Sohyun Kim e48792a81e Evas textblock: remove freed item from the line list
@fix
2015-04-17 16:10:20 +09:00
Jean-Philippe Andre a871ac96a8 Evas masking: Skip GL fast path for border images
Right now the engines don't support mask tiles so we can't
just scale up an image on-the-fly when doing a masking operation.

Skip fast path and force render of border images into their own surface.
2015-04-17 09:33:37 +09:00
Jean-Philippe Andre 4227bae2b6 Evas render: Fix debug logs
Those are only printed out if REND_DBG is set to 1 in evas_private.h
--> Non functional change.
2015-04-17 09:26:49 +09:00
Oleksandr Shcherbina ee08fa9b1a evas: fix possible segfault in evas_3d_node_member_add/del.
Summary: @fix

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-16 19:21:44 +02:00
Jean-Philippe Andre 5e832dfa76 Evas GL: Disable direct rendering if there is a map
The engine itself (gl_generic) will detect whether the target
surface (canvas where to draw the gl stuff) is the window
backbuffer or not.
2015-04-14 21:19:13 +09:00
Jean-Philippe Andre 796a0d7d34 Evas GL: Fallback to indirect rendering if mul_col != 0xFFFFFFFF
@fix
2015-04-14 21:19:13 +09:00
Jean-Philippe Andre b0c6a32d68 Evas render: Fix double-clipping issue with maps
Situation:
 - Evas Object A has a clip C and a map M.

Problem:
 - Clip C will be applied once inside the map surface S and
   again when the surface S is drawn to the canvas.

Solution:
 - Track whether the current object is the mapped object
   or a child of the mapped object. In the first case,
   discard the clipper when rendering to the map surface.
   In the second case, the child's clipper is PROBABLY[*]
   inside the map, so it should be applied when rendering the
   map surface itself.

Note: This also applies to masks.

[*] This is clearly not the ultimate clipping fix.
2015-04-14 16:37:12 +09:00
Tom Hacohen 2da13de20a Evas object: verify the parent is valid and fail if not.
It seems like before the switch to Eo, all the object_*_add functions
had magic checks that only allowed non NULL Evas pointers to be passed.
Since we switched to Eo we apparently missed the early failure we used
to have, and we instead fail later. This patch should fix that.

Thanks to jaehwan for reporting.

@fix
2015-04-13 13:52:47 +01:00
Chris Michael 3eed18d231 evas-3d: Fix Resource leak from CID1271635
Summary: This fixes a reported resource leak (by coverity).
_pack_meshes_vertex_data allocates memory stored in 'vertices' however
vertices is never free'd unless count > 0

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Jaehwan Kim 0822485465 evas_object_box: add MAGIC_CHECK when it is added.
@fix
2015-04-10 19:37:59 +09:00
Cedric BAIL 3b46609140 evas: _op_blend_p_dp_neon and _op_blend_pas_dp_neon miscalculation fix
Summary:
When processing random data result of this function differs from C variant in more than 50% cases.
This difference is due to alpha calculation, in C code :

alpha = 256 - (*s >> 24)

in NEON:

"vmvn.u8 q4,q0 \n\t"
// ie ~(*s>>24) === 255 - (*s>>24)

We cant just add "1" as overflow will occur in case (*s>>24) == 0 (we use only 8 bit per channel in vector registers)
So here is the solution:
copy *d right before multiplication and add it to the result of it later.

Same approach as in D455.

Reviewers: raster, cedric, stefan_schmidt

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Jean-Philippe Andre 0a19a87c0e Evas image: Return proper path even with mmap
Since we're using a union (u.{f,file} we can't just
return u.file when the file was set as an mmap source.

@fix
2015-04-10 16:47:12 +09:00
Jean-Philippe Andre 3fd7f199da Evas: Fix use of uninitialized values
Not a meaningful issue, but let's make Coverity happy.
Fixes:
 - CID 1293522
 - CID 1293521
2015-04-10 11:34:50 +09:00
Jean-Philippe Andre 464e6ca987 Evas masking: Avoid potential crashes (SW)
Make sure not to sample the mask image outside its boundaries.
This is a series of last resort checks. I can not reproduce the
crashes but know they have happened.

I used EINA_UNLIKELY more for clarity than for compiler optimizations.
2015-04-08 18:17:34 +09:00
Conrad Meyer 6dd135d4c6 Evas GL: Add @since 1.14 flags to Evas_Native_Surface
And enum
2015-04-08 12:31:06 +09:00
ChunEon Park 1e33454772 evas common: make logic same to c code version.
As C version,
It increase alpha value by 1 to avoid loosing of the remains while it divides
values. Neon version does same technique to make same results.
2015-04-07 23:06:43 +09:00
ChunEon Park 51d60e649c evas common: NEON version of evas_common_convert_argb_premul.
This patch reduces power consumption by around 18mA in certain scenarios
(music player list scroll, my files sound list scroll), making
evas_common_convert_argb_premul() ~60% faster (6.2msec->2.6msec).

Take music-player application, make 100 copies of the standard
Over the Horizon” song, scroll up and down to see those
downscaled-from-720x720 thumbnails enter and leave the screen.
Every time a list item enters the screen, the image is re-read
(as evas image cache is not large enough to store more than two
pictures of that size), and one call of _common_convert_argb_premul()
occurs, taking ~6.2msec (which is not much compared to ~60msec
spent in libpng->libz (the biggest bottleneck here),
but still noticeable).

A similar power consumption improvement is observed during
scrolling sounds list of the same files in My Files application
(just with idle level ~100mA lower).

We also checked the new code to be correct on random input data.

all tests are performed based on tizen device.

Signed-Off-By: Artem Dergachev <dergachev.a@samsung.com>
2015-04-07 23:05:40 +09:00
Cedric BAIL 0b4d525e59 evas: make all of Evas_Object_VG API part of BETA
As JP pointed out there is no point of having an API if the only way to use
it is through a BETA API.
2015-04-07 13:11:21 +02:00
ChunEon Park 7a6eb2ea42 evas/common: improve evas_common_convert_argb_unpremul() computation.
prev logic increased the alpha channel by 1 so the unpremul resulted in the color got too diff from the origin.

We can't avoid losing the rest values while dividing values in premul/unpremul()
but this will recover the value better closed to origin value.
2015-04-06 22:02:49 +09:00
Bogdan Devichev f8f118f058 evas-3d: T2226 (Evas Eet saver does out of range access) fixed.
Summary:
texcoord now is 2D vector

@fix

Reviewers: cedric, Hermet, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2233
2015-04-06 14:13:30 +09:00
Oleksandr Shcherbina bc8dfbb1ef [evas/evas_3D] Billboard mechanism
Summary:
Add pointer to target billboard node in Evas_3D_Node
Skip set flags change orientation for billboard node
Add method node_billboard_update to use it for change orientation during traverse
by nodes
Split API evas_3d_node_look_at_set to have possibility change orientation of node
without set flags

Reviewers: cedric, Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2245
2015-04-06 14:10:28 +09:00
Vincent Torri c8a9769665 Evas: remove warning while factorizing code 2015-04-05 11:30:56 +03:00
ChunEon Park 513b7c5ed9 evas: fix typo in doc. 2015-04-04 15:04:01 +09:00
Cedric BAIL 899b70d3dc evas: mark Evas VG API as beta API to. 2015-04-03 16:57:35 +02:00
Subhransu Mohanty f4d325ee78 evas: fix memory leak in Efl.Vg.Base class. 2015-04-03 16:38:17 +02:00
Subhransu Mohanty 5c31036249 evas/canvas : bail out in case of empty or null dash.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:38:14 +02:00
Cedric BAIL 41a75f0b07 efl: follow Efl.VG naming by using bounds_get as an API name. 2015-04-03 16:38:08 +02:00
Cedric BAIL 990c088f6b evas: align naming with ector, use bounds. 2015-04-03 16:38:07 +02:00
Cedric BAIL 600e69d226 evas: implements efl_vg_bound_get in all Efl.VG object. 2015-04-03 16:38:04 +02:00
Cedric BAIL c1836b97ed evas: remove Efl.VG.Image for now as it was not implemented. 2015-04-03 16:38:00 +02:00
Cedric BAIL 2613d17844 evas: remove unused function, no need for untested code. 2015-04-03 16:37:59 +02:00
Cedric BAIL 0eeb19d688 evas: implement stack below and above get for Efl.VG object. 2015-04-03 16:37:58 +02:00
Cedric BAIL 1821aef0c6 evas: add forgotten static in some Efl_VG object. 2015-04-03 16:37:57 +02:00
Cedric BAIL 9e3cfef8d7 evas: add missing boung_get and above/below get. 2015-04-03 16:37:56 +02:00
Cedric BAIL 8288e0a880 evas: remove SVG loader code. 2015-04-03 16:34:27 +02:00
Cedric BAIL 013b18ea6a evas: removing the ability to load file in Evas_Object_VG for now.
Without events and animation it is not really useful and that can only be
done with a library on top of Ecore.
2015-04-03 16:34:26 +02:00
Cedric BAIL b18b1e89ff evas: fix Windows build. 2015-04-03 16:34:22 +02:00
Subhransu Mohanty 1c093f3660 evas: fix EVAS_RENDERER_DEBUG_TIMING implementation for async rendering
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:15 +02:00
Subhransu Sekhar Mohanty f73352adec evas : add documentation to legacy vector api's.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:02 +02:00
Subhransu Sekhar Mohanty e80a759139 evas: add legacy api for creating vg_shape and vg_container object.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:00 +02:00
Cedric BAIL 29aefe04ad evas: correctly handle redraw of changed tree of Evas_VG_Node. 2015-04-03 16:33:42 +02:00
Cedric BAIL de08a3bc04 ector: add reference point to define (0, 0) and don't repeat the same value everywhere. 2015-04-03 16:33:19 +02:00
Cedric BAIL 9f8c35002b efl: add Efl.Gfx.Shape.append_rect following SVG specification.
SVG rectangle can have rounded corner.
2015-04-03 16:31:53 +02:00
Cedric BAIL e99774946c ector: implementation of some common code in Ector.Renderer.Cairo.Base.
This require to make some class mixin instead of interface or abstract. So a lot
of class renaming is also necessary here.
2015-04-03 16:31:44 +02:00
Cedric BAIL cd1f09d359 evas: all color in evas are premultiplied, enforce with warning when not. 2015-04-03 16:31:39 +02:00
Subhransu Sekhar Mohanty 3dea7dbfaf evas: update and propagate Evas_VG_Base transformation. 2015-04-03 16:31:29 +02:00
Cedric BAIL 986704dfb4 evas: do not track change on root node. 2015-04-03 16:31:09 +02:00
Cedric BAIL ebfcfed59b evas: fix coding style. 2015-04-03 16:31:08 +02:00
Cedric BAIL ab1f6f7984 evas: set alpha to zero for Efl.VG.Shape.stroke_color. 2015-04-03 16:31:00 +02:00
Cedric BAIL eb2bd9a8d8 evas: move Evas.VG_* to Efl.VG.*
This also introduce legacy API for all of them.
2015-04-03 16:30:59 +02:00
Cedric BAIL dd1cae7329 evas: initial implementation of a dumb SVG parser.
This commit is experimental and may be rebased until usable.
2015-04-03 16:30:56 +02:00
Cedric BAIL 0a27241f61 evas: eo_data_scope_get will return random value in memory, need to always use eo_isa. 2015-04-03 16:30:54 +02:00
Cedric BAIL 6a90d24aab evas: Evas_VG_Root_Node parent will be NULL during destructor. 2015-04-03 16:30:53 +02:00
Cedric BAIL 457e550616 evas: implement render_pre due to our hack over Evas_VG_Container. 2015-04-03 16:30:53 +02:00
Cedric BAIL d6feb49c0c evas: don't duplicate entry in parent children list
eo_parent_set is always called, even in the constructor.
2015-04-03 16:30:52 +02:00
ChunEon Park 4e0b919a62 evas: ref/unref root node while it's being used by vg object.
This also remove dead code.
2015-04-03 16:30:49 +02:00
Cedric BAIL f2380b0920 evas: introduce begin and end operation on an Ector surface.
This is necessary for GL has you want to map once and run with it, but it
will also help the software backend to not remap the surface all the time !
2015-04-03 16:30:44 +02:00
Cedric BAIL 0f6328b04f efl: introduce EFL_GFX_CHANGED event and properly propagate up to Evas. 2015-04-03 16:30:42 +02:00
Subhransu Sekhar Mohanty 7ee3f8d952 evas: add documentation for Evas_Object_Vg class. 2015-04-03 16:30:38 +02:00
Subhransu Sekhar Mohanty a068378c83 evas: add documentation for Evas_Object_VG 2015-04-03 16:30:36 +02:00
Cedric BAIL 32de8d9e5f efl: move Efl.Gfx.Gradient_* to Efl.Gfx.Gradient.* much nicer for bindings. 2015-04-03 16:30:35 +02:00
Cedric BAIL 1e18631554 evas: make Evas.VG_Shape use Efl.Gfx.Base.color_part for stroke. 2015-04-03 16:30:34 +02:00
Cedric BAIL d7f434986e evas: use Efl.Gfx.Base.color_part in Evas.VG_Node. 2015-04-03 16:30:33 +02:00
Cedric BAIL cd3f8db506 efl: provide Efl.Gfx.Base.color_part and implement it in top Evas_Object. 2015-04-03 16:30:32 +02:00
Cedric BAIL ac8d923090 efl: add path operation to Efl.Gfx.Shape. 2015-04-03 16:23:28 +02:00
Cedric BAIL 1fb52dbe71 evas: move Evas.VG to use Efl.Gfx.View. 2015-04-03 16:23:27 +02:00
Cedric BAIL a395f5ded5 efl: add Efl.Gfx.View and use it in Evas.Image. 2015-04-03 16:23:26 +02:00
Cedric BAIL 5f2527f791 evas: move Evas.VG to use Efl.Gfx.Fill. 2015-04-03 16:23:25 +02:00
Cedric BAIL 7ba7ed4a1c efl: add Efl.Gfx.Fill and migrate Evas.Image to it. 2015-04-03 16:23:24 +02:00
Cedric BAIL a38c037953 evas: make Evas.VG_Node inherit from Efl.Gfx.Stack. 2015-04-03 16:23:23 +02:00
Cedric BAIL 500fe6ef1b efl: add Efl.Gfx.Stack interface and update Evas_Object accordingly. 2015-04-03 16:23:22 +02:00
Cedric BAIL c1118e7282 evas: implement Efl.Gfx.Base in Evas.VG_Node. 2015-04-03 16:23:20 +02:00
Cedric BAIL 651436f410 efl: rename visibility to visible.
After discussion bindings and people in general prefer visible.

T2035
2015-04-03 16:23:19 +02:00
Cedric BAIL c08f8e26a6 efl: add Efl.Gfx.Base and fix inheritance for Evas_Object. 2015-04-03 16:23:17 +02:00
Cedric BAIL c000ee8099 efl: rename namespace Graphics to Gfx. 2015-04-03 16:23:16 +02:00
Cedric BAIL 2067e85d68 evas: use the new Efl_File mmap function correctly for Evas_VG API. 2015-04-03 16:23:14 +02:00
Cedric BAIL c2e75544e1 efl: move mmap API to be part of Efl_File class. 2015-04-03 16:23:13 +02:00
Cedric BAIL 28257ec8fe evas: fix warning due to forgotten return. 2015-04-03 16:23:12 +02:00
Cedric BAIL ba47b47eb2 efl: make path a property actually. 2015-04-03 16:23:10 +02:00
Cedric BAIL 091fd5f31d evas: handle setting sub VG object to NULL. 2015-04-03 16:23:09 +02:00
Cedric BAIL 4248bc2870 evas: actually return the right type and fix warnings. 2015-04-03 16:23:06 +02:00
Cedric BAIL 5aafae94f1 evas: actually we want the Ector_Renderer, not the Evas_VG_Node. 2015-04-03 16:23:04 +02:00
Cedric BAIL 502ac45916 evas: properly propagate Eina_Matrix from the VG scene graph to the Ector_Renderer. 2015-04-03 16:23:03 +02:00
Cedric BAIL 2cae706ab6 evas: start correctly implementing the render callback. 2015-04-03 16:23:00 +02:00
Cedric BAIL 6097178ec3 evas: start properly implementing render_pre for Evas_VG_Node. 2015-04-03 16:22:58 +02:00
Cedric BAIL 621d3b5660 evas: those function should have been static. 2015-04-03 16:22:57 +02:00
Cedric BAIL a00b6219fa evas: remove printf. 2015-04-03 16:22:56 +02:00
Cedric BAIL 6071e71e98 evas: cleanup parent handling of Evas_VG_Node. 2015-04-03 16:22:54 +02:00
Cedric BAIL f85f8135a0 evas: NULL is always needed as during destruction parent is set to NULL. 2015-04-03 16:22:53 +02:00
Cedric BAIL 09d7ffe520 evas: add fill and size definition for a VG scene graph. 2015-04-03 16:22:51 +02:00
Cedric BAIL 40e3240e6e evas: fix copy and paste mistake. 2015-04-03 16:22:50 +02:00
Cedric BAIL 185eadf9ad evas: fix typos in Evas_VG_Root_Node. 2015-04-03 16:22:38 +02:00
Cedric BAIL 97714021d1 evas: Evas_Object_VG should always create a root node. 2015-04-03 16:22:37 +02:00
Cedric BAIL 81760ea5d9 evas: also allow Evas_VG and NULL as parent.
I have yet to be sure of the Evas_VG one.
2015-04-03 16:22:26 +02:00
Cedric BAIL 36ba2fc01d evas: add file manipulation API to Evas_Object_VG. 2015-04-03 16:22:22 +02:00
Cedric BAIL b6ffe1cc87 evas: first implementation of an ector drawer inside Evas software engine.
Note: this won't work with the OpenGL backend.
2015-04-03 16:22:18 +02:00
Cedric BAIL c5d085999a ector: add stop implementation. 2015-04-03 16:21:49 +02:00
Cedric BAIL 75728e7fff efl: move PATH manipulation from Evas into Efl interfaces. 2015-04-03 16:21:48 +02:00
Cedric BAIL 0f27e887e4 evas: make the interface part of the Generic name space.
This should enable having multiple backend that will use another namespace instead
of Generic.
2015-04-03 16:15:40 +02:00
Cedric BAIL 4036a22b10 efl: introduce an Efl Gradient Radial interface. 2015-04-03 16:15:37 +02:00
Cedric BAIL e15bdbe457 efl: add a linear gradient interface. 2015-04-03 16:15:36 +02:00
Cedric BAIL d59351732d efl: add a gradient interface. 2015-04-03 16:15:03 +02:00
Cedric BAIL 1d49ff7df2 efl: rename geometry to graphics to be more general. 2015-04-03 16:15:02 +02:00
Cedric BAIL 411bb5b64e efl: use Efl_Geometry_Shape. 2015-04-03 16:14:55 +02:00
Cedric BAIL a247ddeceb evas: fix Evas_VG eo files. 2015-04-03 16:14:52 +02:00
Cedric BAIL 3447936adb evas: implement all Evas_VG_Shape property. 2015-04-03 16:14:51 +02:00
Cedric BAIL b50931a5ca evas: actually compile Evas_VG_Shape. 2015-04-03 16:14:50 +02:00
Cedric BAIL 8097b8ab47 evas: move Evas_VG_Node structure declaration into a shared header to use it directly from Evas_VG. 2015-04-03 16:14:48 +02:00
Cedric BAIL 2e6cc1a173 evas: fix prototype and correctly call the function. 2015-04-03 16:14:47 +02:00
Cedric BAIL ea9330bfe8 evas: declare internal evas_vg helper. 2015-04-03 16:14:46 +02:00
Cedric BAIL ae5472379f evas: handle path set on shape object. 2015-04-03 16:13:13 +02:00
Cedric BAIL 1e5c596ca3 evas: implement stupid bound get at container level. 2015-04-03 16:13:12 +02:00
Cedric BAIL 7f072eb607 evas: add Efl.File interface to Evas_Object_VG. 2015-04-03 16:13:11 +02:00
Cedric BAIL 161b7b93e2 evas: add Evas_VG_Image. 2015-04-03 16:13:07 +02:00
Cedric BAIL fa2f4e969e evas: implement Evas_VG_Node stacking functions. 2015-04-03 16:13:06 +02:00
Cedric BAIL 9dcf840ade evas: Evas_VG_Root_Node should only be attached to an Evas_Object_VG. 2015-04-03 16:13:05 +02:00
Cedric BAIL 95e70ee5cb evas: remove unecessary duplicated code. 2015-04-03 16:13:03 +02:00
Cedric BAIL 45ccb8f6d1 evas: add utility function to build path. 2015-04-03 16:13:00 +02:00
Cedric BAIL 9ba6e1a0ae evas: add initial Evas_Object_VG.
Evas_Object_VG is meant to become an object that can hold a SVG
scenegraph inside of it.
2015-04-03 16:12:59 +02:00
ChunEon Park 2b0fb1ea1d evas/common Fixed incorrect blend pixel color logic in neon.
previously, it had the remaining value issues on blending computation.
The blending color result was in correct.

Signed-Off-By: Vladimir Kuramshin <v.kuramshin@samsung.com>
2015-04-03 19:48:30 +09:00
Youngbok Shin b8b6c1e1a8 evas: Add safety check for NULL pointer of clipper.
Summary: It caused crash when clipper is NULL and it makes evas test-suite fail.

Test Plan: Run evas test-suite. (make check)

Reviewers: woohyun, tasn, herdsman, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2215
2015-03-24 12:53:34 +09:00
ChunEon Park 105b0d75ee evas: prevent crash.
if user delete the interceptor in the interceptor callback,
the interceptors would be NULL.
So we need to check whether it's valid or not.

@fix
2015-03-23 22:00:27 +09:00
Carsten Haitzler 2347c6ff01 evas render2 - restructure it to be an explicit api call - cleaner to do 2015-03-20 18:03:54 +09:00
Jihoon Kim 80d9e0fbaa evas: fix description about Evas_Device_Subclass 2015-03-20 14:43:23 +09:00
Youngbok Shin 262dd3a139 evas: fix build failure with old version freetype.
Summary:
Fix build failure with old version freetype.
It is caused for supporting colored font.

Reviewers: raster, jpeg, woohyun, Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2200
2015-03-20 13:24:31 +09:00
Carsten Haitzler 377e94263b evas - font - new color bitmap support - rename funcs to match file 2015-03-20 10:49:49 +09:00
Youngbok Shin e197f8804f evas: Support bitmap embedded color font.
Summary:
Add the code for getting bitmap buffers from embedded color font,
And draw the bitmap buffers as images.
For drawing the bitmap buffers as images,
evas_common_draw_context_font_ext_set internal API is changed to
pass additional gl engine functions.
T2139
@feature

Test Plan:
1. Set a bitmap embedded color font to textblock.
2. Set a unicode emoticon text.
3. See the result.

Please check the sample unicode in the following link.
http://www.fileformat.info/info/unicode/char/1f3af/index.htm
http://www.fileformat.info/info/unicode/char/1f555/index.htm
http://www.fileformat.info/info/unicode/char/2600/index.htm
http://www.fileformat.info/info/unicode/char/263a/index.htm

Reviewers: tasn, woohyun, jpeg, raster

Reviewed By: raster

Subscribers: herdsman, cedric

Differential Revision: https://phab.enlightenment.org/D2084
2015-03-19 19:02:03 +09:00
Youngbok Shin 6616d11619 evas/font: Add evas_font_reinit API.
Summary:
Reinitialize FontConfig. If FontConfig has to be reinitialized
according to changes of system enviroments(ex. Changing font config files), it will be useful.

Reviewers: woohyun, seoz, tasn, cedric, raster

Reviewed By: raster

Subscribers: raster, herdsman, cedric

Differential Revision: https://phab.enlightenment.org/D1962
2015-03-19 18:01:42 +09:00
Bryce Harrington 27920d31c1 Spelling fixes
Summary:
emmited  ==> emitted
resistence  ==> resistance
occured  ==> occurred

Reviewers: cedric, zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2192
2015-03-18 21:38:33 -04:00
Dmytro Dadyka 31651a8842 evas: Evas_3D - add alpha testing.
Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: Ievgen, cedric

Differential Revision: https://phab.enlightenment.org/D2046
2015-03-18 15:22:20 +01:00
Cedric BAIL b5cea1703d evas: use Emile for defining all possible loader API. 2015-03-17 09:58:18 +01:00
Youngbok Shin 84634ea51f evas/clip: If the clipper is image or has color, clipped area should be redrawn.
Summary:
If the clipper is image or has color, it affects to its clipees.
Even if we unset the clipper or change the clipper to another object,
it seems the clipper is not changed.

Test Plan:
Make two clipper objects and one clipee object.
And make clip the clipee according to following example

ex) Clipee object -> inner_clipper -> clipper

evas_object_clip_set(clipee, inner_clipper);
evas_object_clip_set(inner_clipper, clipper);

After checking the result and hide inner_clipper.

evas_object_clip_set(clipee, clipper);
evas_object_hide(inner_clipper);

See the result.

Reviewers: raster, cedric, Hermet, jpeg

Subscribers: woohyun, cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>

Note: Technically we should not check the color of the fact that
      the clipper is a mask and not a simple rect. But because of
      real-life performance issues, damage_add was disabled so we're
      trying to keep the perf in most cases while being correct in
      cases where the clipper is visually important.
2015-03-17 11:13:29 +09:00
Dongyeon Kim 0ff8936de8 Evas GL: Adjust function naming and remove macros
Summary:
Change function and variable names to more suitable ones.
Remove FBO_FUNC macros.
Little tidying up from previous commit.

Test Plan: Local Evas GL tests for 1.1, 2.0, and 3.0

Reviewers: jpeg

Subscribers: cedric, mer.kim, mythri, wonsik

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-03-16 15:56:49 +09:00
Dongyeon Kim d8fc60e0e6 Evas GL: Use EGL image to share between Evas GL and GL backend
Summary:
When the context version between Evas GL and GL backend differs,
we cannot share texture between them.
So, when the driver has support for KHR_gl_texture_2D_image extension,
use EGL image to share between Evas GL and GL backend

Test Plan: Local Evas GL tests for 1.1, 2.0 and 3.0

Reviewers: jpeg

Subscribers: mythri, mer.kim, wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D2115
2015-03-16 15:56:49 +09:00
mythri.venugopal 4d1a45627f Evas GL: Add support for Evas GL 3.0
Summary:
This should enable applications to use GLES 3.0 through evas gl.
Todo: Fix indirect rendering issue occuring because texture objects
cannot be shared between different version of GLES contexts.
Todo: extension pointers need to be updated for GLES 3.0

Reviewers: wonsik, spacegrapher, jpeg

Subscribers: cedric

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

@feature
2015-03-16 15:56:43 +09:00
Jean-Philippe Andre 29be7a36c7 Evas masking: Fix rendering of masks into invalid surfaces (GL)
In some rare cases, a mask would be rendered (from mask_subrender)
into a surface that is NOT an FBO. This would happen because the
previous surface was a "scaled GL image" and its size would
match the required geometry.

That took a while to figure out...
http://thecodinglove.com/post/111546429281/when-i-finally-solve-a-nasty-bug
2015-03-12 11:32:15 +09:00
Carsten Haitzler 1733d29922 evas - change error out from bitch to complain - cosmetic change 2015-03-11 21:59:01 +09:00
se.osadchy e58b135e31 evas: fix bug in the destructor of node in Evas_3D.
Summary: Bug relative with segmentation fault if node isn't mesh_node type.

@fix

Reviewers: cedric, raster, Hermet

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-06 20:19:22 +01:00
Jean-Philippe Andre bea9567d0e Evas GL: Kill runtime warnings caused by auto fallback
The previous commit modifies the concept of direct rendering
vs. indirect rendering, so some runtime checks (in debug mode
only) will fail.

This commit introduces two new engine functions:
 - gl_get_pixels_pre
 - gl_get_pixels_post

The latter will be used in a later patch for optimization.
2015-03-03 20:08:16 +09:00
Jean-Philippe Andre a14492ef73 Evas GL: Automatic fallback to indirect rendering when the scene has
not changed.

Automatically fallback to indirect rendering on FBO or X11 Pixmap
if the Evas Object Image is not marked as dirty. This should
improve the performance and/or power consumption in those
rare cases where this area of the canvas needs to be redrawn
but the GL content has not changed.

@feature
2015-03-03 18:11:32 +09:00
Dmytro Dadyka 731e6f469c [Evas: Evas_3D] Fix mesh API.
Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2075
2015-03-03 11:28:56 +09:00
Jean-Philippe Andre db0f9f4ccd Evas GL: Fix value of GL_COVERAGE_SAMPLES_NV
Use the Khronos version from extension EGL_NV_coverage_sample.
In the extension multisample_coverage version 4 (since 3/7/2013),
there is an explicite note about the name conflict.
2015-03-02 19:15:01 +09:00
Jean-Philippe Andre 2e3ee0e658 Evas masking: Fix double free() with scaled images
The function image_scaled_update() frees() the old scaled image
passed as input if it doesn't match the old dimensions. This commit
will avoid double frees.
2015-02-27 17:56:49 +09:00
Jean-Philippe Andre ab89dc401c Evas masking: Check fill properties to consider image as filled
Edje may not set the filled flag on an image even if its fill
properties make it fill the whole object. For masking, it can
then be considered as a filled image.
2015-02-27 15:57:36 +09:00
Jean-Philippe Andre 0d794e0b37 Evas masking: Skip GL fast path if image has fill options
If the image is not "filled", then we can't assume its image
source geometry is the same as its texture geometry.

Note: Implementing a fast path for non-filled images would
      require a hell of a lot more work (need to cut the render
      into a lot more triangles) for little real-life use.
2015-02-27 13:33:51 +09:00
Jean-Philippe Andre fab0d7f9d3 Evas masking: Simplify previous commit
Call object's function to get the private engine_data (here, the
image object). Thanks Dongyeon for your patch which inspired me to
do that instead of forcing pre_render.
2015-02-27 13:06:09 +09:00
Jean-Philippe Andre fddaf62fcc Evas masking: Add fast path for image-only masks in GL.
This will currently optimize most of the masks when using the
GL engine[1].

This is a very special case that adds a highly optimized path
for masking in GL. It works by creating a virtual image, containing
a pointer to the original image and a new geometry[2].

Instead of creating a new FBO-based surface (image_map_surface),
we refer to the original image and adjust the mask geometry on
the fly.

KNOWN BUGS:
- masking a map with such a scaled image is now broken.

[1] Right now all masks are simple Evas Object Image, so that means
    all cases of masking, except masks of masks, or masks of maps,
    will be optimized with this new method.

[2] This virtual image mechanism is still quite hackish and may
    be improved (for memory usage, refcounting, etc...)
2015-02-27 13:06:09 +09:00
Carsten Haitzler 6d5b2b32a0 evas scale sample - fix useage of eina thread queue
pass in ref not &ref (other uses were fine - this single one broken)
2015-02-27 10:35:01 +09:00
Jean-Philippe Andre 93d167ac87 Evas GL: Add hidden config values for direct rendering options
Those 2 new values are here to avoid using environment variables
that have side effects on the whole application.

I'm actually wondering if we shouldn't just kill off the env
vars altogether. Also, direct override is a terrible option that
should never be used.
Memory optimization can make sense (needs more testing tho).
2015-02-24 22:12:00 +09:00
Daniel Juyung Seo 9057f42453 evas: Add more notes about size_hint APIs.
Stop asking why size hint may or may not work on elementary widget.
2015-02-24 09:30:09 +09:00
Tom Hacohen 648ad2591c Fix code to conform to recent Eo changes. 2015-02-23 17:16:02 +00:00
se.osadchy cd4c0324ec evas: Evas_3D - add destructors for clean of memory.
Summary: Update and add new destructors.

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2029
2015-02-23 15:46:41 +01:00
Dmytro Dadyka 1b142d09d9 evas: Evas_3D - add parallax occlusion shading.
Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2018
2015-02-23 15:46:25 +01:00
Cedric BAIL 1af679dbd5 Revert "Revert "evas: refcounting initialisation and protect things.""
This reverts commit 789633b321.

Now this should be useful since we have refactored the shutdown logic of all engine.
2015-02-23 11:36:03 +01:00
Cedric BAIL 93333ede15 evas: refactor shutdown. 2015-02-23 11:35:29 +01:00
Dmytro Dadyka 095bab1723 evas: Evas_3D - fix bug with pack meshes data.
Reviewers: cedric

@fix

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-20 18:40:13 +01:00
Cedric BAIL 789633b321 Revert "evas: refcounting initialisation and protect things."
This reverts commit 216397bea6.

We do have some engine that are doing partial shutdown outside of the protected
function, leading to a crash.
2015-02-20 17:39:27 +01:00
Cedric BAIL 6bb4ecd65d evas: use two thread when scaling image.
This is for now just a small experiment. It was based on the experiment made
with OpenMP. I prefered to only use Eina here as we have already all the infrastructure
to do this nicely and simply. As a result I get a 65% speed improved on average for
the involved scaling operation. The secondary CPU is on my laptop running with a load of
75% percent. I don't have right now the time to do power consumption analysis, but I
think it shouldn't be to bad. I am also not throwing more core at this as we are not able
to use the second core at its max already, so additional core may result in a bigger
energy loss without enough gain.
2015-02-20 17:11:44 +01:00
Cedric BAIL 216397bea6 evas: refcounting initialisation and protect things. 2015-02-20 15:10:12 +01:00
Cedric BAIL 552a38cde5 evas: refactor software engine initialisation. 2015-02-20 15:04:52 +01:00
Boris Faure 0c5c1c97da evas gl: fix build when GL_COVERAGE_SAMPLES_NV is defined byg <GL/gl.h> 2015-02-19 22:52:50 +01:00
Cedric BAIL a083703e3d evas: more warning fix. 2015-02-18 22:42:48 +01:00
Oleksandr Shcherbina d28b82be45 evas: Evas_3D - callbacks for Evas 3D.
Summary:
Add class and type Evas_3D_Callback like wrapper under smart object
Incapsulate Evas_3D_Callback in Evas_3D_Object
Add virtual function register and unregister in Evas_3D_Object
Add function evas_3d_callback_call
Add callbacks clicked and collision for Evas_3D_Node

@feature

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: artem.popov, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-18 22:42:07 +01:00
Dmytro Dadyka 1c74a1afe2 evas: Evas_3D - refactor node shapes update mechanism.
Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-17 15:39:48 +01:00
Yomi 14e65920ff evas: fix misspellings in evas_render2.
Summary: fix misspellings of 'canvas' and 'work' in the comments.

Reviewers: raster

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-16 11:58:58 +01:00