Commit Graph

942 Commits

Author SHA1 Message Date
Jean-Philippe Andre 0d9ffc2624 Evas filters: Fix padding in blur with offset
Test case was: blur(ox=40, rx=40);
This would crop the blurred text instead of having proper padding.
2014-02-20 13:27:42 +09:00
Jean-Philippe Andre 538d078cf0 Evas filters: Fix curve filter with RGBA
The curve filter did not respect premultiplied values in
RGBA images. Unfortunately, the fastest solution is to unpremul
and re-premul everytime...
2014-02-20 13:27:42 +09:00
Jean-Philippe Andre 8a694314a4 Evas filters: Fix options parsing
Test case "blend() blend();" did not fail when it should have.
Also, return an error if the program was empty (all whitespaces).
2014-02-20 13:27:42 +09:00
Jean-Philippe Andre ddf267e506 Evas filters: Fix padding in blur filter
The wrong value was used for the command's padding.
Also, remove mention of "motion" blur which is not
implemented.
2014-02-20 13:27:42 +09:00
Jean-Philippe Andre 126cbbc7a9 Evas filters: Mark parser functions as EAPI for tests
The filter unit test case will directly call the parser functions.
2014-02-20 13:27:42 +09:00
Tom Hacohen 0e5d3f9b98 Evas textblock: Fixed a few word start/end issues.
Fixed issues with valgrind complaints at the end of the textblock, and
Fixed wrong jumping with some special cases like "a a a a "."

This fixes T995.
2014-02-19 14:38:06 +00:00
Tom Hacohen 27b1bebea5 Evas text utils: Fixed walking compound clusters.
In some scripts, like Devanagari, clusters can be split across more
than just one glyph. This is now fixed.

Thanks to YoungBok Shin for reporting.
2014-02-19 12:08:56 +00:00
Youngbok Shin 2bff3d1c2e evas - Added eina_stringshare_ref call for fallbacks, lang in font description.
Summary:
When the fdesc(Font Description) is duplicated,
ref of all of stringshare pointers should be increased.
But, in the evas_font_desc_dup API, we only increased ref for name string.
It can cause some of memory issues.

Reviewers: tasn, woohyun, seoz, Hermet

CC: cedric

Differential Revision: https://phab.enlightenment.org/D570
2014-02-19 10:44:34 +00:00
Jean-Philippe Andre 6067c88b56 Evas filters: Use strtok instead of strtok_r for mingw
The Windows build (mingw) does not know about strtok_r.
So, let's use the non-safe variant strtok instead.
Currently, this function is called from the main thread only,
so this should be fine :)

In the future it would be nice to not use strtok anymore,
but strtok_r everywhere, and add it to evil. Considering the
release coming soon, I'm not going to change something like that
now.
2014-02-19 11:30:11 +09:00
Jean-Philippe Andre 54129dfcaa Evas filters: Fix documentation for displace
fillmode "none" is not supported, as it does not make much sense
(how do we displace pixels without an underlying displacement map?)
2014-02-18 10:22:50 +09:00
Jean-Philippe Andre ded097461d Evas filters: Fix padding with "blend"
Test case was:
buffer : a (alpha);
blur (20, dst = a);
blend (src = a, ox = 30);

In that case, padding was 20, 30, 20, 20.
So the blurred buffer was clipped on screen.
2014-02-18 10:22:50 +09:00
Jean-Philippe Andre 3819bc7abb Evas filters: Implement "fillmode" for displace
The fillmode (stretch or repeat map) was present and documented
for displace, but not implemented. Easy copy & paste from the
mask filter.
2014-02-18 10:22:50 +09:00
Jean-Philippe Andre 7cf02ca75b Evas filters doc: Add link to "fillmode" 2014-02-18 10:22:50 +09:00
Jean-Philippe Andre d70b805e6d Evas filters: Fix crash in displace filter
Simplify and fix map traversal code
2014-02-18 10:22:49 +09:00
ChunEon Park a739716cee evas/image - update dirty region in the render time.
this fixes the proxy rendering that sub object of the source couldn't be dirty region set.

since the object could be invisible nor won't be pre-rendered neither.

Im supposing the mapped(proxy) object rendering sequence should be totally refactored

that should be separated with the normal rendering sequence.

Until that, this change will be alternative solution.
2014-02-17 23:05:36 +09:00
Jean-Philippe Andre 7cc7af14b8 Evas filters: Fix alpha in displacement filter
If the displacement map has some alpha values (not 0xFF),
then the blending should take this alpha into account. This
part is fine.

BUT, since Evas relies on premultiplied colors... we have a
problem: R (dx) and G (dy) have already been scaled down.

Actually we would need to load the map in non premultiplied RGBA,
otherwise we'll lose precision on dx,dy as soon as A != 0xFF.
Well... I guess this will be a limitation of this filter, for now
at least. Most displacement maps shouldn't even have any alpha
anyways.
2014-02-17 10:14:11 +09:00
Jean-Philippe Andre 9472e03546 Evas filters: Fix RGBA displacement filter
Well... it was just broken: typo, lack of normalization on alpha,
invalid formula for blending. Duh!
2014-02-17 10:02:19 +09:00
Daniel Kolesa 136cf346e9 evas/common: fix segfaults in evas_map_image_loop.c 2014-02-14 16:30:51 +00:00
Jean-Philippe Andre df65e71e79 Evas filters: Another clang warning fix
Prevent error case from crashing.
2014-02-14 13:06:05 +09:00
Jean-Philippe Andre a4ecf34316 Evas filters: More clang fixes
NULL ptr dereference.
2014-02-14 13:06:05 +09:00
Jean-Philippe Andre 6642d16a7d Evas filters: Fix more clang stuff and add safety checks
The prepare function should not fail, unless something is very
wrong. Also, return NULL instead of EINA_FALSE.
2014-02-14 13:06:00 +09:00
Jean-Philippe Andre f603d5da86 Evas filters: Silence some clang warnings
Remove @hidden tag. It does not exist.
Initialize value of pow2_div. In theory not needed but better be safe :)
2014-02-14 12:07:54 +09:00
Jean-Philippe Andre eb1c452156 Evas filters: Prevent division by zero
These can not happen, as all weights > 0.
Add a CRI message in case of div0.
Fixes CID 1174081, CID 1174080.
2014-02-14 11:25:25 +09:00
Carsten Haitzler adbb8e6675 evas - table - fix theoretical leak that likely will never happen
this addresses CID 1039663
2014-02-13 19:44:40 +09:00
Carsten Haitzler c7aa6039c8 evas filter - fix uninitialized pointer in evas
fixes CID 1174077
2014-02-13 19:05:43 +09:00
Carsten Haitzler b837cdb055 evas - filter - don't use longs when DATA32 is the right type
fixes CID 1174078
2014-02-13 18:59:16 +09:00
Carsten Haitzler a725924b53 evas - filter - fix memory leak if cmd not found by curve cmd 2014-02-13 18:57:27 +09:00
Carsten Haitzler bbefeae071 evas - filters - remove logically dead code
this addresses CID 1174084 - fix to remove useless code.
2014-02-13 18:57:27 +09:00
Jean-Philippe Andre 511049e20d Evas filters: Improve doc automatization
Include example filter codes from src/examples in Doxygen.
Use these examples for the generation as well.
2014-02-13 17:37:33 +09:00
Jean-Philippe Andre 9f1ae254db Evas filters: Add image for the Syntax example
And change it a bit so the glow is nicer :)
2014-02-13 17:37:33 +09:00
Jean-Philippe Andre 872ab8aa4d Evas filters: Add images to the html doc 2014-02-13 17:37:33 +09:00
Carsten Haitzler 56f4035898 evas - proxy source visible check not done on update del
this fixes T842
2014-02-13 15:40:29 +09:00
Jean-Philippe Andre 6301c6dc1e Evas filters: Remove undocumented files from Doxygen
Some files had Doxygen tags @file, which included them in the
Files list. But they are not documented, so remove them from
the index.
2014-02-13 11:24:47 +09:00
Jean-Philippe Andre 93a608dc66 Evas filters: Buffer names are case-sensitive
Or so claims the documentation, so let's use strcmp
instead of strcasecmp.
2014-02-13 11:24:47 +09:00
Jean-Philippe Andre 36b0bca4aa Evas filters: Add the reference documentation (script language)
In Doxygen format, write the reference documentation for the filters.
It will contain a few examples only, should serve more as a reference
just like edcref.

This is for the script language itself, not for the Eo APIs or the
internal APIs (those are already documented).
2014-02-13 11:24:43 +09:00
Jean-Philippe Andre c6943bb32d Evas filters: in transform, dst must be specified
Since the transform operation is (for now) a very simple tool,
it only works when src and dst have the same colorspace.

This commit forces users to specify dst, since "input" and "output"
have different colorspaces.
2014-02-13 11:21:32 +09:00
Jean-Philippe Andre 62f0ea1d34 Evas filters: Improve displace flags in scripts
These flags were a dumb integer instead of being a human
readable string.

They define how to handle cases were a pixel is read from
out of boundaries.
2014-02-13 11:19:49 +09:00
Jean-Philippe Andre 56d73cb897 Evas filters: Fix warnings on shadowed variables
Also, remove globals A, R, G, B from parser.c... these are
temp variables used in a macro.

My CFLAGS didn't include -Wshadow so I missed those.
Thanks Tom for spotting :)
2014-02-12 10:36:11 +09:00
Jean-Philippe Andre 62fdf414e2 Evas filters: Improve code consistency in blur
source left was called sl or ls depending on the function,
use sl everywhere.
2014-02-12 10:36:11 +09:00
Jean-Philippe Andre 96d5944235 Evas filters: Fix comments and fail more often in blend
Some features are not supported (mainly because alpha scaling
has not been implemented yet) in the blend API. So, instead of
rendering the wrong effect, fail with an error message.

Also rename col into color for code clarity (we have cols for columns).
2014-02-12 10:36:10 +09:00
Tom Hacohen 650b0b6c64 Evas textblock: Fixed colour setting for textblock formats.
Of course Cedric introduced a bug. The bug was that the current colour context
is set to the previously selected colour, instead of the current one, which
made all colours wrong.

Fixes T926.
2014-02-10 16:49:53 +00:00
Tom Hacohen 80033e022d Evas textblock: Fix rendering of spaces in some cases.
The issue was with a textblock that's being resized and a space between formats.
The problem is, that the text would get trimmed when wrapping, and then not
restored, because it had nothing to merge to.

This fixes T924.
2014-02-10 14:17:03 +00:00
Jean-Philippe Andre 40c18743f4 Evas filters: Disable time debug logs (blur)
Enabling those will break windows build.
2014-02-10 11:27:33 +09:00
Jean-Philippe Andre b9b8300f98 Evas filters: Check for EVAS_CSERVE2 when using cs2 APIs
This broke the windows build, because cserve2 isn't available on windows.
2014-02-10 11:15:54 +09:00
Albin Tonnerre 64e153ea7f cleanup - Remove the extra copy of the code and use a define instead
_op_blend_pan_mas_dp is just a duplication of the code in
_op_blend_pas_mas_dp. Remove the extra copy of the code and use a define
instead; this is what the SSE3 code already does.
2014-02-09 19:44:49 +09:00
Carsten Haitzler acbcc7da6a in case font_instance is null in text_props... avoid using it 2014-02-09 19:39:30 +09:00
ChunEon Park f2d554ee4c evas/common - add comments for maintainance 2014-02-09 10:14:05 +09:00
ChunEon Park 180a0aaeaf evas/common - code cleanup
removed white trailing
modified for better readibility.
2014-02-09 10:13:02 +09:00
Albin Tonnerre 259f33679c evas/op_blend: rename LOOP_ALIGNED_U1_A48_SSE3 to LOOP_ALIGNED_U1_A48
Summary:
There's nothing SSE3-specific about that macro, let's use a more generic name
for it. Since that's just a generic macro, we can also allow non-SSE (eg.
NEON) code to use it if they want to

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D528
2014-02-09 09:42:52 +09:00
Chris Michael 6e1b9de112 Evas Textgrid: Don't leak an eina_stringshare when scale_update is
called.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-02-08 17:17:25 +00:00