path: root/src/lib/evas/common/evas_op_blend (follow)
AgeCommit message (Collapse)Author
2015-01-07Evas masking: Fix mask blend functions (SW engine)Jean-Philippe Andre
The selected op func was not performing the correct operation, thus producing rendering artifacts. These functions should not be used anywhere except in case of masking... which was not an available option earlier. It was doing (wrong): dst = interp(mask, src, dst) Instead of (correct): dst = dst + (1 - mask) * src NOTE: This commit also disables MMX, SSE3 & NEON implementations of pixel_mask blend operations, since they are also broken.
2014-08-14evas render i386 - comment out structurally dead codeCarsten Haitzler (Rasterman)
this code has bugs, so comment it out rather than just have a return get rid of it - CID 1039499
2014-05-31evas/blend: oops, missed a variable declaration.ChunEon Park
build error by this commit. aede29e2d4cd49c370b5225196fd267a712d3593
2014-05-31evas/blend - disable neon code.ChunEon Park
Current neon code is a little buggy, the blend won't be done correctly. so leave the c code depends on the compiler optimization.
2014-02-09cleanup - Remove the extra copy of the code and use a define insteadAlbin Tonnerre
_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-09evas/op_blend: rename LOOP_ALIGNED_U1_A48_SSE3 to LOOP_ALIGNED_U1_A48Albin Tonnerre
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:
2014-01-21_op_blend_c_dp_neon miscalculation fixCarsten Haitzler (Rasterman)
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 : a = 256 - (c >> 24) in NEON: "vmvn.u8 q7,q6 \n\t" // ie (8 bit)~(c>>24) === 255 - (c>>24) We cant just add "1" as overflow will occur in case (c>>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. This makes the function slower by 20-30% but it is still at least 2 times faster then C code. Reviewers: raster Differential Revision:
2013-12-29Blending function rework and speedupYury Usishchev
Summary: _op_blend_mas_c_dp_neon rework: main loop now process 4 pixels per iteration fast path when *m == 0 Reviewers: raster Reviewed By: raster CC: cedric Differential Revision:
2013-11-15evas - fix neon blend code used for text rendering to not leave dirty endCarsten Haitzler (Rasterman)
2013-06-20evas: Keep sane name for public headerSebastian Dransfeld
Evas_Common.h should be used for the public header, and rather rename evas_common.h internal header to another name. Sa: Evas_Common_Header.h -> Evas_Common.h evas_common.h -> evas_common_private.h Shouldn't have both Evas_Common.h and evas_common.h because of case insensitive filesystems.
2013-02-27evas/common - declare a var in function head.ChunEon Park
2012-11-04merge: and now EvasVincent Torri
I've tested make -j 3 install and it works nicely I've tested expedite with software and opengl xlib, and it works. Not tested other engines, so please report any problems (engines or other) on the ML. TODO: examples and tests, I'll add them later ISSUE: Eina_Unicode size check. It indirectly depends on eina_config.h, which is created at the end of the configure script. So its size is always 0. I don't know how that size is used, so I can't do a lot, for now. SVN revision: 78895