Commit Graph

300 Commits

Author SHA1 Message Date
Jean-Philippe Andre 56e6141013 Evas convert: Remove dead code
Woah coverity...
Fixes CID 1039448
2014-10-28 10:54:51 +09:00
Cedric BAIL 2e1ff6550e evas: let's handle dds also during tests properly. 2014-10-21 23:42:03 +02:00
Mike Blumenkrantz 5375e154fe fix config.h inclusion across the tree 2014-09-23 15:56:46 -04:00
Philippe Coval 8f40c291ca evas: fix build on armv7l.
Summary:
Without compilation will fail on :

  error: unknown type name 'pix_type'
  error: expected identifier or '(' before 'else'

Applies to efl-1.11.0 and later

Bug: https://phab.enlightenment.org/T1620
Bug-Tizen: PTREL-737/part
Change-Id: Idbcb442803ed6559698b2a371d1d6c584ec053e0
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>

Test Plan:
  gbs build -P "profile.tizen_common_armv7l" --arch armv7l --include-all

@fix

Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-09-03 18:24:05 +02:00
Carsten Haitzler 33d39beac6 evas conversion - fix bad rotation handling
coveriity found bad copy & paste in conversion code - 270 rot twice.
fixes CID 1039448
2014-08-27 14:24:08 +09:00
Carsten Haitzler 372b2a256f evas - dither | convert - fix dead code
dead code as paln one checked twice in a row - the grey 16 check was
wrong so move to end and check against greay16 pal type

fix CID 1039449
2014-08-27 14:21:23 +09:00
Carsten Haitzler bb7a7151ec evas - remove logicallly dead code
fixes CID 1039450
2014-08-27 14:16:50 +09:00
Carsten Haitzler 6dfb9b292f evas - remove logicallly dead code
fixes CID 1039451
2014-08-27 14:14:47 +09:00
Carsten Haitzler 6038318851 evas font draw - fix possible custout rect leak found by coverity
fixes CID 1039477
2014-08-25 13:18:51 +09:00
Carsten Haitzler ddac73a5fc evas - scalecache cutouts - fix possible leak coverity found
fixes CID 1039923
2014-08-25 12:49:22 +09:00
Carsten Haitzler 8389e3e6a9 evas - rectangle custouts - fix possible leak coverity found
this fixes CID 1039924
2014-08-25 12:42:56 +09:00
Carsten Haitzler c654b3ef2c evas loaders - fix logically dead code
fix CID 1039447
2014-08-22 20:14:59 +09:00
Carsten Haitzler da45b6ad57 evas sw core - scaler - remove logically dead code
fix CID 1039445 1039446
2014-08-22 20:14:59 +09:00
Carsten Haitzler 2bfc9190d9 Revert "evas scalecache - fix thread deadlock posssibility"
This reverts commit 24a1c444b0.
2014-08-19 08:02:36 +09:00
Carsten Haitzler 029c6847d7 evas render i386 - comment out structurally dead code
this code has bugs, so comment it out rather than just have a return
get rid of it - CID 1039499
2014-08-14 20:17:16 +09:00
Carsten Haitzler d399921724 fix structurally dead code
this cleans up fixing of unused param warnings - fix

CID 1039524 1039504 1039523 1039503 1039522 1039502 1039521 1039501
1039540 1039520 1039539 1039519 1039538 1039537 1039517 1039536
1039516 1039535 1039515 1039534 1039514 1039533 1039513 1039532
1039512 1039531 1039511 1039530 1039510 1039529 1039509 1039528
1039508 1039527 1039507 1039526 1039506 1039525 1039505
2014-08-14 20:17:16 +09:00
Carsten Haitzler 24a1c444b0 evas scalecache - fix thread deadlock posssibility
there is a re-ordering of how locks are taken and this should cover
that deadlock possibility. fixes CID 1106338
2014-08-14 18:10:11 +09:00
Tom Hacohen 5d021658ad Evas bidi: Make code more explicit (silence coverity).
CID1039922.
2014-08-12 10:05:52 +01:00
ChunEon Park fdf71e9a66 evas/map: correct the interpolation in the span calculation.
As far as i tested, this quality will be better in map transformation,
especially in case of the object rotation on z-axis.
2014-08-05 16:40:23 +09:00
Jean-Philippe Andre 48bcf182b4 Evas gl: Add support for ETC1+Alpha textures
Compile-in the required shaders, add support for the
new EVAS_COLORSPACE_ETC1_ALPHA, and upload textures as RGB+A
pairs.

@feature
2014-07-09 09:04:55 +09:00
Wonguk Jeong 1cc23d4ff2 evas: jpeg loader - support flip, transpose, transverse
Summary:
Previously, jpeg image loader support rotation (90°, 180°, 270°) only.
this patch is about supporting flip(vertical, horizontal), transpose, transverse

@feature

Test Plan: I'm going to make tests in src/tests

Reviewers: cedric, raster, jpeg

CC: seoz, cedric

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

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
2014-07-06 20:12:31 +02:00
Jean-Philippe Andre b0df307927 Evas gl: Add support for S3TC textures
Add support for DXT1, DXT3 and DXT5 textures (4 formats in total).

@feature Add support for S3TC textures if the GPU supports them
2014-07-03 15:36:22 +09:00
Jean-Philippe Andre a2de0a0bc9 Evas: Support duplicated borders in surface alloc
Now, the evas loader is supposed to advertise the actual border
size in case of compressed texture formats.

The only case where the border was non zero was ETC formats,
from the TGV loader, so I think we don't need to keep the
previous behaviour (auto-calculate borders for ETC).
2014-07-03 11:37:48 +09:00
Carsten Haitzler 12dc40fa3b formatting - convert tabs to whitespace 2014-07-01 19:57:04 +09:00
Carsten Haitzler ac63e3f8b5 whitespace - fixup trailing whitespace 2014-06-17 15:31:57 +09:00
Jean-Philippe Andre d0d9dbfdba Evas: Add encoding parameter to the savers
ecore_evas_convert: Add -e/--encoding option

This uses directly the encoding parameter.
For now, used only by the TGV saver, but there is no other way
to specify between ETC1 and ETC2. And we don't have a mixed ETC1+2
mode (yet).

@feature
2014-06-13 16:05:48 +09:00
Tom Hacohen 3b70b4f28f Evas textblock: Fix crash when cutting ligatures with formats.
"f<color=#f00>i</color>f" could cause textblock to crash. It doesn't
crash anymore. It doesn't render the colours correctly either, but at
least this is the first step.

This is the start of fixing T1308

@bugfix
2014-06-04 10:14:24 +01:00
ChunEon Park 0650797825 evas/blend: oops, missed a variable declaration.
build error by this commit.

aede29e2d4
2014-05-31 14:43:48 +09:00
ChunEon Park aede29e2d4 evas/blend - disable neon code.
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-05-31 14:33:55 +09:00
Jean-Philippe Andre f4a0c8054f Win64: Fix a bunch of warnings
Fix invalid casts.
Use printf("%z") where appropriate.
Fix unused variables warnings.

Thanks vtorri for the patch.

@fix
2014-05-29 20:02:16 +09:00
Jean-Philippe Andre f62b612797 Evas: Remove invalid cast and fix warning/bug on windows
On Windows, long is 32 even on Win64.
Thanks Vincent for spotting this.

@fix
2014-05-29 17:31:16 +09:00
Jaehyun Cho 9952699820 evas_draw_main: Remove unnecessary conditional expression
Summary: The comparison dc with NULL is not necessary. So remove the unnecessary conditional expression.

Reviewers: Hermet

Reviewed By: Hermet

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D908
2014-05-28 11:24:56 +09:00
Jean-Philippe Andre 86ce491a86 Evas gl_x11: Add ETC2 support to the GL/X11 engine
This should allow texture upload with ETC2 RGB8 or RGBA8 formats.
Untested for now...

@feature
2014-04-25 16:50:29 +09:00
Matvey Konovalov 9fb3aa6549 evas - improve speed of unpremul with redundant pixel data 2014-04-15 19:22:58 +09:00
Jean-Philippe Andre 54fb9b2346 Evas: Use Evas_Colorspace to declare cspace
Why use int when we have a proper type?
All these APIs are internal.
2014-04-15 18:50:37 +09:00
Jean-Philippe Andre 77d0d69c3e Evas: Add support for AGRY88 in image creation functions
- evas_common_rgba_image_from_data
- evas_common_rgba_image_colorspace_set
- evas_common_image_colorspace_normalize
2014-04-04 10:08:08 +09:00
Jean-Philippe Andre 5a1ef2155d Evas: Add support for AGRY88 in evas_common_rgba_image_from_copied_data
This should fix a potential abort().
2014-04-04 10:08:08 +09:00
Cedric BAIL b517ed81d5 evas: always allocate an image.data pixels buffers even YUV content.
fix T1146.
2014-04-02 16:41:41 +09:00
Cedric BAIL eb7071078a evas: handle premultiplying of AGRY88. 2014-04-01 22:00:15 +09:00
Cedric BAIL 516ee8c99e evas: don't forget that we can allocate AGRY8 now. 2014-04-01 22:00:15 +09:00
Cedric BAIL cbf81fddd1 evas: handle allocation of ETC1 color space image surface. 2014-04-01 22:00:15 +09:00
Cedric BAIL 3699ec6883 evas: remove RGBA_IMAGE_ALPHA_ONLY flags and use EVAS_COLORSPACE_GRY8 instead. 2014-04-01 22:00:15 +09:00
Cedric BAIL 05239d8dd2 evas: let loader specify there prefered color space. 2014-04-01 22:00:14 +09:00
Cedric BAIL 0609779f17 evas: add TGV saver module. 2014-04-01 22:00:13 +09:00
Cedric BAIL 961ecab040 evas: add a tgv loader.
The TGV file format is specifically created for Evas. It is designed to allow
region decompression and parallele decompression with a fast path for GPU that
do handle ETC1 compression. Plan for adding other compression method will come
later.
2014-04-01 22:00:13 +09:00
ChunEon Park 4de2059d41 evas/common - initialize only the available blend stuff that cpu is supporting. 2014-03-22 17:25:59 +09:00
Alex-P. Natsios fa2b1b3d30 evas: improve portability for BSD system.
configure: fix prerequisite header issue

Summary:
in some platforms like openBSD <sys/socket.h> must be included before
net/if.h

the canonical way to ensure that with autotools is by providing that
fourth directive.

evas: use MAP_ANON instead of MAP_ANONYMOUS

Stupid unpredictable standards (or not so standard).
MAP_ANON exists and is defined almost anywhere unlike MAP_ANONYMOUS

Let's use that for portability's sake (they are practically identical
anyway)

Reviewers: raster, cedric

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-03-15 19:58:08 +09:00
Cedric BAIL d3bc06ae33 evas: simplify path logic and make backend code more robust.
Fix CID 1039665.
2014-03-13 10:57:38 +09:00
Boris Faure e8c0e71f89 evas: @fix use the correct composite op on lines with pixman 2014-03-11 22:34:35 +01:00
Tom Hacohen d175b8aa69 Evas textblock: Fix clipping issues with some texts with width > advance.
This happens with many texts. The issue occurs when the width of the
last char is larger than it's advance. Before this patch, we didn't the
width into account when calculating width, thus causing clipping issues
in some cases.
2014-03-10 14:58:18 +00:00
Tom Hacohen 4b758f71c1 Evas map: fixed shadow warnings.
evas_map_image_loop is included from within code, so local variables
should not shadow other local variables. I just gave them a more
unique name.
2014-03-10 09:25:21 +00:00
Jean-Philippe Andre 182eaad43d Evas: Reduce verbosity of alpha functions
And remove commented-out code.
2014-03-07 11:07:15 +09:00
Gustavo Sverzut Barbieri e4c5d75993 evas: @fix convert to 24bits so dst_jump is used properly.
in all other convert functions, dst_jump is provided in pixesl and
multiplied by the number of bytes-per-pixel either explicitly or
implicitly by using a different type for dst pointer (DATA16,
DATA32...).

As in 24 bits we use DATA8 we must explicitly multiply dst_jump by 3.
2014-03-06 11:19:12 -03:00
Jean-Philippe Andre ac8140ccd1 Evas filters: Rename RGBA_Image::mask.data into image.data8
The structure should not be changed, despite the union modification.

I am renaming for consistency with older branches that had a mask
field in RGBA_Image. Also, the mask.data or data8 is really just
a way to avoid casting between DATA8 and DATA32 (and it shows
clearly what kind of data you are dealing with).
2014-03-04 12:10:29 +09:00
Snacker (Vladimir) 8e17290f19 @feature - Apply NEON intrisics improvement to rotation 2014-02-28 07:04:52 +09: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
Daniel Kolesa 136cf346e9 evas/common: fix segfaults in evas_map_image_loop.c 2014-02-14 16:30:51 +00: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
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
ChunEon Park 28ee00c8c3 evas/common - removed unnecessary handling.
Actually the range checking will be accomplished when u, v is decided.
just duplicated.
2014-02-08 19:15:09 +09:00
ChunEon Park ef83a81750 evas/common - removed unused vars.
my fault. they were not intended to push in.
2014-02-08 18:40:32 +09:00
ChunEon Park 8775e0e58d evas/common - fix indentation 2014-02-08 18:36:18 +09:00
ChunEon Park f0b1854d10 evas/common - code clean up
add better descriptive comments.
modify the code for better readibility.
2014-02-08 18:16:09 +09:00
ChunEon Park 738bcb07ff evas/common - more useful comment. 2014-02-08 16:32:52 +09:00
ChunEon Park 72d90c0768 evas/common - code clean up
removed unncessary backet depth in.
2014-02-08 16:26:01 +09:00
ChunEon Park 0541d1ebe6 evas/common - code clean up
one if-else if compare is enough. don't try compare twice.
2014-02-07 22:37:53 +09:00
ChunEon Park fff4661095 evas/common - don't compare if twice. one is enough. 2014-02-07 22:32:35 +09:00
ChunEon Park de8362defe evas/common - code clean up for more readability. 2014-02-07 20:35:35 +09:00
ChunEon Park 4f905edca3 evas/common - code cleanup
useless to consider this optimization on these days
this just make people read code much awkward.

And actually the code have been unused.
2014-02-07 19:19:19 +09:00
Jean-Philippe Andre 4c4b44a575 Evas fitlers: Implement SLOW font draw to alpha targets
Well, raster did some great job at optimizing font draw... but only
to RGBA32 targets. In this font effects case, we also want to render
text on ALPHA buffers.

For now, reuse the existing alpha blending & glyph decompress
functions. It's MUCH easier, and works. Definitely slower than
decompressing on-the-fly and optimizing everything. But for now,
this will not even be the performance bottleneck in an effect
(blur will be a lot slower).
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 9adbbe0bd1 Evas fonts: Pass RGBA_Image instead of DATA32 buffer
Since we want to be able to draw to alpha buffers, it's
easier if we pass the whole image struct instead of just
the data pointer.
2014-02-07 15:38:43 +09:00
Jean-Philippe Andre 160d012559 Evas text utils: Check syntax in color parse
If the color string is not correct (ie. not #RRGGBBAA, #RGBA, #RGB, #RRGGBB),
return an error.
2014-02-07 15:38:42 +09:00
Jean-Philippe Andre 2928a2d2da Evas: Move _format_color_parse to common file
This (simple) code should be shared between Textblock and Filters.
2014-02-07 15:38:42 +09:00
Jean-Philippe Andre d8301fae6e Evas: Add support for Alpha buffers
Evas is an RGBA only engine, BUT we also use some alpha masks,
especially in the font rendering pipeline.
This commit adds basic support for alpha buffer operations
(blend and copy).

RGBA_Image can then point to either alpha-only data, if
its colorspace is grey.
2014-02-07 15:38:42 +09:00
ChunEon Park 5efa4f9305 evas/common - code refactoring.
tiny change for readibility.
2014-02-07 13:39:11 +09:00
Tom Hacohen 17d028f944 Evas font: Added support for font fallback for eet/edje fonts.
This is a long awaited feature that has been requested years ago.
Fontconfig finally added the support needed to make it happen, so here
it is.

I added a fontconfig query to look for similar fonts in case we loaded a
font from eet/edje/file(no fontconfig). This now works quite well.

Still missing: if you load a bold/italic/whatever font directly (set the file)
without putting ":weight=bold" you will not get run-time emboldenment if
only non-bold fonts are found.

This unfortunately depends on very recent fontconfig version (#ifed out
when unavailable), so only people with fontconfig >= 2.11 will enjoy
this feature.
2014-02-04 10:44:11 +00:00
Daniel Kolesa 871597f8c2 fix evas_tiler bug (makes evas get stuck in an infinite loop there in certain scenarios) 2014-01-29 10:00:29 +00:00
Jean-Philippe Andre cc8fa1da45 Evas: Fix MMX mask function _op_copy_p_mas_dp_mmx()
This function does the following operation:
COPY pixel x mask --> dst

But it wasn't iterating over the source. So it was repeating
the value of the first pixel over and over again.

Is this even used anywhere? RGBA + alpha mask function!?
2014-01-21 15:43:10 +09:00
Carsten Haitzler 1a9ebc02c0 _op_blend_c_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 :

 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: https://phab.enlightenment.org/D455
2014-01-21 08:50:34 +09:00
Carsten Haitzler 86a97efeea evas - fonts - move to using 4bit and rel 4 bit compressed font glyphs
this changes the internal encoding of font glyphs in evas to use 4bit
uncompressed if small, or 4bit rle (run length encoded) if larger.
this caves at least 50% of memory on fonts - and more if bigger. with
large fonts (40-80pixel size) we can save in the region of 80% of
memory used for glyphs. this also happesn to allow speedups in
rendering too.
2014-01-13 05:15:32 +09:00
Carsten Haitzler fc7fde97a2 evas - remove dead code (comment it out)
removes entirely dead code and keeps it for reference only
2014-01-10 18:48:42 +09:00
Carsten Haitzler f41bf26d7a evas - unbreak gl font rendering with dst pointer checks 2014-01-10 12:54:54 +09:00
Carsten Haitzler 03fccbd543 evas - sw render - protect against null pointer surface access 2014-01-10 12:47:27 +09:00
Carsten Haitzler 555df8f510 Revert "fix allocator sizeof operand mismatch reported by clang"
This reverts commit 955cc579d4.

why? wrong. no. and it breaks actual execution/functioning. segv land
2014-01-09 10:02:26 +09:00
Jihoon Kim 955cc579d4 fix allocator sizeof operand mismatch reported by clang
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-QL6MiM.html#EndPath
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-a2l0Ci.html#EndPath
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-McvqNf.html#EndPath
2014-01-09 09:10:02 +09:00
Cedric BAIL a2d55c2b82 evas: fix build on windows. 2014-01-06 10:39:34 +09:00
Cedric Bail 8c094d1b2d evas: let's use HUGETLB when it makes sense. 2014-01-05 22:44:50 +09:00
Cedric BAIL 39a0ac4315 evas: disable use of mmap on windows for allocating pixels buffer.
We do have mmap provided by Evil, but there is no implementation yet of
an anonymous map support. Also it is not clear how the memory system of
windows does actually work, so not sure this optimization is relevant
to windows at all. Thus we disable it for the time being and unbreak
the windows support.

- cherry-pick me -
2014-01-03 17:53:51 +09:00
Carsten Haitzler 7753144fe9 evas - sw render - map render neon broken for expedite 45/46 disable 2014-01-01 12:56:18 +09:00
Nick Reed 1799ccfd9d evas - fix neon scale code
Summary: evas_scale_smooth would not compile with BUILD_NEON set

Reviewers: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D424
2014-01-01 11:22:40 +09:00
ChunEon Park f7aae1cf25 evas/common - removed white spaces and use eina bool instead of int. 2013-12-31 21:11:58 +09:00
ChunEon Park b4ea1aaa87 evas/common - refactoring code.
removed white spaces.
added some comments.
changed function and variable name to be more descriptive.
2013-12-31 18:32:30 +09:00
ChunEon Park 0d33d30acc evas/common - more elaborated compuatation in interpolation.
we should not +1 in divide but only do it when the quotient is zero.
2013-12-31 18:19:41 +09:00
ChunEon Park c37ad7dfea evas/common - removed white spaces 2013-12-31 13:29:57 +09:00
ChunEon Park 01c11211dc evas/common - fixed a comment typo. 2013-12-31 13:28:57 +09:00
Yury Usishchev 011fb2d10a Blending function rework and speedup
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: https://phab.enlightenment.org/D418
2013-12-29 13:29:28 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Cedric BAIL 1a5b7d383d evas: fix compilation issue on Jenkins windows that make me wonder how it does build on Linux. 2013-12-20 16:09:10 +09:00