Commit Graph

583 Commits

Author SHA1 Message Date
Mike Blumenkrantz 6d0233afb8 evas/scale_sample: further deduplicate masking code
Summary:
by adding a couple extra params to existing functions, we can reuse
existing code instead of copying it around and adding more bugs

no functional changes

Depends on D8846

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl_rendering

Differential Revision: https://phab.enlightenment.org/D8847
2019-05-21 20:26:57 +02:00
Mike Blumenkrantz 4542cfcbea evas/scale_sample: deduplicate masking code
Summary:
these functions provide identical functionality to the inline blocks

no functional changes
Depends on D8841

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: Hermet, cedric, #reviewers, #committers

Tags: #efl_rendering

Differential Revision: https://phab.enlightenment.org/D8846
2019-05-21 20:26:45 +02:00
Vincent Torri 24e4881efb Evas: remove Evil.h when not needed and use evil_private when needed
Test Plan: compilation

Reviewers: zmike, raster, cedric

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8921
2019-05-20 08:46:02 -04:00
Mike Blumenkrantz 01ce5a1249 evas/scale_sample: call alloca for the scanline buffer after clamping width
Summary:
this is already a risky call for larger scanlines, so use the clamped value
to further reduce the chance of blowing out the stack

Depends on D8839

Reviewers: cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl_rendering

Differential Revision: https://phab.enlightenment.org/D8840
2019-05-13 11:44:27 -04:00
Mike Blumenkrantz 20cefc8db2 evas/scale_sample: fix mask geometry clamping in scale thread
Summary:
the 'y' parameter is not relevant here. this clamping exists solely
to avoid reading outside the bounds of the mask, and 'y' is the scanline
at which to begin the masking

subtracting the mask size here does not make sense: we are attempting to clamp
to the size of the mask in order to avoid buffer over-read, so this means that
we are mapping the maximum y coordinate of the mask (mask_y + mask_h) to be
relative to the clipped y coordinate (dst_clip_y)

Depends on D8838

Reviewers: cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl_rendering

Differential Revision: https://phab.enlightenment.org/D8839
2019-05-13 11:44:18 -04:00
Mike Blumenkrantz fa983e9ff1 evas/scale_sample: slightly refactor some mask geometry clamping
Summary:
this was a bit confusing to read since the comparators are not ordered
as expected

no functional changes

Depends on D8837

Reviewers: cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl_rendering

Differential Revision: https://phab.enlightenment.org/D8838
2019-05-13 11:44:11 -04:00
Carsten Haitzler 22081ada26 much better fix to invalid uv coords with new map render code
this fixes the d81d1337b0 fix to do it
in the inner loop so uu and vv stay valid. still not a great fix but
better than chashes.
2019-05-09 12:30:17 +01:00
Carsten Haitzler d81d1337b0 evas - map render - quick fix for segv in new map renderer
u or v go below 0... sometimes. right now i don't know the full path
to there, bute crashes with flat theme when the busy spinner shows
over an ibar icon when you launch... this at least stops that.

this needs hunting in more detail than i'm going to do on my laptop
on the couch...
2019-05-06 21:31:01 +01:00
Hermet Park 9c66a4751c evas map: move to floating point coordinate system in high-quality drawing.
evas map has used integer coodinate system since it's born,

since object's transition is jiggled, not perfectly smooth.

It's obvious because Positioning must be stepping with integer units
without any subpixel rendering.

Currently, this patch is a sort of preparatory to improve this,
only valid for high-quality evas map (smooth + anti-aliasing)
2019-04-18 19:47:54 +09:00
Hermet Park 77a9093af7 evas common: small optimization.
don't repeat computing every iteration.
2019-04-18 18:51:16 +09:00
Hermet Park f10bd61c9d evas map: shut up annoying compile warnings.
These variables must be logically initialized,
but compiler couldn't catch it, prints warnings.
2019-04-18 15:08:35 +09:00
Carsten Haitzler ae77e58366 evas - fix crash/junk pixel content but with tiled rotate at 270 + neon
@fix
2019-04-12 12:56:40 +01:00
Carsten Haitzler ebf2ca3c5b evas common - tiled rotate - fix signedness of neon intrinsics - warning 2019-04-12 11:24:32 +01:00
Carsten Haitzler eaf78210e8 evas common - convert - rotate tiled - fix const ptr warnings 2019-04-12 11:24:29 +01:00
Carsten Haitzler f43c19ac32 evas map - mark npoints param as unused because it is remove warning 2019-04-12 10:29:42 +01:00
Hermet Park dc1e1a652c evas map: disable anti_aliasing.
We need a proper interface to toggle high-quality mapping,
until that, we disable the anti_aliasing feature.
Since adjecent polygons(such as textpath) shouldn't get this aa feature.
2019-04-08 15:02:47 +09:00
Hermet Park d5551bdda3 evas map: remove redundant code.
Remove old anti-alias code since high quality map is replaced with new one.
New anti-aliasing is logically same but having a regression bug,
it should be stablized.
2019-04-08 14:56:42 +09:00
Hermet Park 84e162b01f canvas map: introduce a new texture mapping for better quality.
Summary:
This new implementation of evas map texture mapping
 is designed for high quality rendering same level to GL.

If you use a high-end device, performance is not too bad, you can turn this on.
You might have practical image quality even in software rendering.

Since this implementation still have a few optimization points (+simd)
and stablizings, it may be useful in somewhat limited envrionments right now.
However the functionality definitely works fine, so please turn this on by
demand (anti_alias + smooth) for a while.

{F3667773} {F3667776} {F3667778}

Reviewers: #committers, devilhorns, raster

Reviewed By: #committers, raster

Subscribers: raster, devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8106
2019-04-08 13:21:08 +09:00
Xavi Artigas 68c530080b docs: Fix common misspellings in H files
Fixed all appearances of words from this list in H files:
https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2019-04-02 13:28:48 +02:00
Carsten Haitzler 4758f06e63 solve neon rotation issue by moving to the tiled rotator
the tiles rotator is faster no matter what. this will fix D8099 by
movoing to tiled rotation and nuking the neon code and we end uop
being faster anyway in all cases.

@fix
2019-03-09 15:21:46 +00:00
Hermet Park 40bc81ae2b evas map: ++safety anti-aliasing processing.
there was a potential case that overflow range.
here it kicks it out.
2019-03-05 17:11:20 +09:00
Hermet Park 057db36423 evas map: fix wrong range in anti-aliasing processing.
alpha value must be in 0 - 255.
2019-03-04 20:35:31 +09:00
Hermet Park edbce35967 evas map: fine-tune a case by anti-aliasing quality. 2019-03-04 19:23:17 +09:00
Christopher Michael be76c3ca47 evas: Remove left over includes from cserve2 removal
NB: No functional changes. These were missed when cserve2 support was
removed
2019-01-28 11:59:47 -05:00
Mike Blumenkrantz 79d15acca0 evas: fix big endian pixman image rendering
as indicated by the accompanying FIXME, the byte ordering is inverted
for big endian so this should be #ifdef-ed

Reviewed-by: Chris Michael <Christopher Michael <cp.michael@samsung.com>>
Differential Revision: https://phab.enlightenment.org/D7592
2019-01-16 15:58:25 -08:00
Carsten Haitzler 3a075988e4 evas cpu - just rely on eina cpu entirely to avboid feature dups
so evas cpu used to be the thing then eina cpu came and did the same
and evas cpu optionalyl could lsit on top... just move it all to eina
cpu so one central place does this and evas_cpu is purely a compat
wrapper.
2018-12-08 04:46:03 +00:00
Carsten Haitzler 01ed58d52d evas - cpu - fix sve check when neon is disabled... 2018-12-06 15:32:17 +00:00
Carsten Haitzler 168fec6995 eina+evas cpu - add theoretical SVE support
SVE is a new-ish ARM vector instruction set like neon... but with
wider vectors (and variable vector sizes). this adds the flags and
hwcaps checks.
2018-12-03 11:04:27 +00:00
Carsten Haitzler ae2d399dd6 build - evas - sse3 optimized code - decouple from eo 2018-11-12 16:42:17 +00:00
Carsten Haitzler d70ee74ded evas - neon blend - warn - color mul, not used in one asm func - mark as such 2018-11-09 11:44:00 +00:00
Carsten Haitzler c1ad0879a1 meson - add checks/options for mmx, sse3, neon, altivec
so we can build our assembly fast-paths again.... - also clean up the
code a bit to match...
2018-11-09 11:43:59 +00:00
Shinwoo Kim f802c8f482 evas_image_main: make the cache->usage count eina_file size
Summary:
The image.data is set to null by evas_common_rgba_image_unload_real.
After this point the cache->usage does not count cache_entry.w and h value when
evas_gl_common_image_free calls evas_cache_image_flush.
So the cache->usage increases just around 300. If the cache->limit is 4194304,
then the cache could have around 1398 items. This would be fine.

But each items hold eina_file, and the cache does not count eina_file size.
If the file size is 326352, then a process could use 456527385 bytes.

So this patch set make the cache->usage count eina_file size.
This would be better option than https://phab.enlightenment.org/D7029

Reviewers: Hermet, jypark, cedric

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7030
2018-10-26 19:16:33 +09:00
Marcel Hollerbach 46d464e5bf here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.

meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.

Further informations can be gathered from the README.meson

Right now, bindings & windows support are missing.

It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
2018-10-02 17:22:50 +02:00
Hermet Park 945eeeab33 evas neon: fix build break.
there is a grammatic error, just fix it.
2018-09-12 13:36:35 +09:00
Wonki Kim 4fb9effee9 evas: replace a current copy color function for neon
Summary:
current copy color function has problem sometime on a arm neon environment.
inline asm code makes crashing problem.

so that this patch replace the asm code with a function which is a part of pixman project.

Reviewers: cedric, Hermet

Subscribers: kimcinoo, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6922
2018-09-10 13:36:10 +09:00
Chris Michael 3862b304b0 evas-common: Remove cserve2 support
ref T7226

Depends on D6934
2018-08-30 13:47:27 +09:00
Mike Blumenkrantz 69fae8c7bf evas: remove render2
Summary:
this is more or less a dead project, having not been actively developed
in over 2 years and instead forcing people to expend more time and energy
to keep it compiling across refactors

fix T7227

Reviewers: stefan_schmidt, Hermet, ManMower, devilhorns

Reviewed By: Hermet, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7227

Differential Revision: https://phab.enlightenment.org/D6878
2018-08-21 10:36:55 -04:00
Hermet Park febeaab9ce evas map: +comment for maintanance. 2018-08-20 14:39:37 +09:00
Mike Blumenkrantz aa9cc3a068 evas: remove ecore init/shutdown calls from everywhere besides evas_main
Summary:
these separate inits and shutdowns make it impossible to effectively control
ecore's lifetime which makes evas_shutdown unreliable as objects may be
destroyed at any point

ref T7052
Depends on D6475

Reviewers: ManMower, devilhorns

Reviewed By: ManMower, devilhorns

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7052

Differential Revision: https://phab.enlightenment.org/D6476
2018-06-28 15:03:15 -05:00
Mike Blumenkrantz bea602f258 evas/thread_render: improve thread safety
this resolves some invalid read/write operations between threads without locking
and also attempts to improve thread-related behavior after fork() calls

ref T7027

Differential Revision: https://phab.enlightenment.org/D6370
2018-06-25 15:17:14 -04:00
Mike Blumenkrantz b60a9999ca evas/cpu: rework SIGILL code for non-x86 (and fix windows build)
Summary:
the previous patch which improved this code for x86 archs broke compiling
for non-x86 and, coincidentally, for windows builds on x86 due to some
unusual #ifdef blocks

this attempts to restore handling on non-x86 and adds additional #ifdefs for
functions which did not build on windows due to removed code

ref 6b1ab3cd9c

Reviewers: ManMower, devilhorns

Reviewed By: ManMower

Subscribers: cedric, #committers

Tags: #efl

Maniphest Tasks: T7062

Differential Revision: https://phab.enlightenment.org/D6368
2018-06-22 14:18:43 -04:00
Hermet Park 013dfe7013 evas map: fix a typo. 2018-06-19 10:50:50 +09:00
Derek Foreman 6b1ab3cd9c evas_cpu: Avoid SIGILL in evas startup on x86
Summary:
To determine if a system supports SIMD instructions, the cpuid facility
should be used.  However, for 15+ years EFL has been trapping SIGILL,
then attempting to execute these intstructions.

Continuing after SIGILL is explicitly undefined behaviour and can never
safely be relied upon - it is possible the CPU will respond to the
unknown instruction in an upredictable way and the program will not
continue correctly.  Even if it hasn't caused problems before, there's
no reason to believe a processor released in the future won't behave
differently.

Lately we've had a couple of bug tickets where SIGILL appears to cause
problems at a system level as well, but there seems little point in
chasing those problems down as we shouldn't even be doing this in the
first place.

ref T6711
ref T6989

We still rely on SIGILL in a few configurations where eina_cpu doesn't
know how to query features properly (powerpc, sparc, and non linux
ARM configurations).  Hopefully someone with expertise on those
platforms can follow up and we can remove this entirely.

Note: MMX2 appears to not really be a thing, and is instead provided by
both 3DNow! and SSE.  We already conflate it with SSE in other parts of
evas, so I've just used SSE here to test for its presence.
Depends on D6313

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Maniphest Tasks: T6989, T6711

Differential Revision: https://phab.enlightenment.org/D6314
2018-06-18 15:12:54 -05:00
Derek Foreman 1d8a93aa78 evas_cpu: Refactor checks that use eina_cpu_features_get
Summary: Minor code simplification.

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6313
2018-06-18 15:12:36 -05:00
Carsten Haitzler 3d6fa02540 evas - loading extension query - fix to not skip small extensions
since this can take an extension as well as a file path (extension
being .gif or .jpeg etc.) it would skip if passed a small extension
only (5 chars or less). fix and this fixes e's thumbnailing too for
some files.

@fix
2018-04-12 20:56:48 +09:00
Youngbok Shin 4c36461233 evas: apply fribidi bracket types to show paired bracket properly
Summary:
The fribidi couldn't reorganize paired brackets (Ex. '(', ')')
when there is RTL + LTR text. According to TR9(http://www.unicode.org/reports/tr9/),
it has to be shown properly without LRM or RLM.

Also, from the fribidi 1.0.0, fribidi_get_par_embedding_levels() was deprecated.
It is replaced with fribidi_get_par_embedding_levels_ex() which is including
paired brankets rules from TR9.

@feature

Test Plan:
1. Create a elm_entry.
2. Set a text by calling text_set.
   elm_entry_entry_set(entry, "مرحبا Hello (40)");
3. Run and see the results.
   - Without this patch or fribidi 1.X.X, it will show text like this...
     "(Hello (40 مرحبا"

   - With this patch and fribidi >= 1.0.0
     "Hello (40) مرحبا"

Reviewers: raster, cedric, herdsman, woohyun

Reviewed By: herdsman

Differential Revision: https://phab.enlightenment.org/D5921
2018-04-12 12:55:26 +03:00
Hermet Park d62ee3bea1 evas: improve evas map anti-alising rendering quality.
Old version algorithm was imperfection a bit, quality was poor at some specific
degrees, specifically, when pixel increment pattern on the diagonal lines is
unstable.

This revised version was better than old one even source code is much cleaner
and simpler.

See belows.

*NonAA vs AA:
https://ibb.co/bCNfMc

*Compare the worst case aa in the old version:
https://ibb.co/bEJsZx

*Test video:
https://youtu.be/Wn20Tym5lfg
2018-04-10 11:19:19 +09:00
Hermet Park 63b6d9c17f evas: fix Evas Map AA changes the alpha flag of an image issue.
Evas map supports anti-alias(aa) rendering on sw backened.
When aa is toggled on, map forcely turns alpha channel on while it draws on the surface.
Actually, it was intended to blend polygon edges with destination,
but it breaks one case if the original source image alpha channel were turned off.

Simply, it fixed the issue, new implmentation removes the alpha channel switching,
instead fill the alpha values with 255 when map + aa + alpha_off is drawing on it.

@fix T1975
2018-04-03 19:23:52 +09:00
Hermet Park cbd9ab686d evas - remove wrong flag.
obviously, this parameter is being used.
2018-04-02 20:25:22 +09:00
Hermet Park f21aedce22 evas - correct evas map anti-alias rendering to perform properly.
Evas map anti-aliasing haven't worked at all if the smooth scaling were disabled.

evas map rendering has a lot of corner-cases, previous call-position was wrong,
(by mistake maybe) shouldn't be in a certian case.

Let aa post-processing function be performed in universally.
2018-04-02 20:23:25 +09:00
Derek Foreman 9111811b83 evas: Check for NEON via eina_cpu_features if possible
On linux we can do this test without firing a SIGILL and trapping it,
if getauxval() is present.

ref T6711
2018-02-28 18:07:53 -06:00
Vincent Torri f5b01ac5ce all: Simplify definition of EAPI
This will help in the transition from Autotools to Meson. This has been
tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-18 18:04:03 +09:00
Carsten Haitzler f32f0d89f4 mmap memory allocation - do not used when under valgrind
we can't sensibly use things like massif to track memory if we bypass
itr with mmaping -1 fd anonymous memory... so if built with valgrind
support and running under valgrind, use malloc/calloc and free so
these tools actually do something useful for these bits of memory.
2018-01-12 03:02:43 +09:00
Jean Guyomarc'h a1e05aa089 evas/elm: fix visibility of some symbols
Public symbols were defined internal to Evas/Elementary on macOS, making
the link of external modules unfeasible.

- EAPI was messed up by an invalid inclusion of evas_text_utils.h, making
  some symbols private instead of public.
- A similar issue was present in evas_font_draw.c, where the symbols
  were directly imported without the proper definition of EAPI.
- Elementary.h did include some eo-generated headers, but for windows
  only. It should not been restricted to windows, as it allows to export
  symbols to external modules.

Fixes T6448.
2017-12-19 15:08:46 +01:00
Jean Guyomarc'h f71444baa8 evas: include missing header
This fixes a compilation warning telling a function was used without
prior declaration.
2017-12-19 14:30:23 +01:00
Jean-Philippe Andre fc82281603 evas: Fix potential crash with draw context
Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).

@fix
2017-12-14 18:03:48 +09:00
Pawel Aksiutowicz a9a31715d9 evas: clean code of evas_common_cpu_can_do() in common/evas_cpu
Reviewers: stanluk, lukasz.stanislawski, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5602
2017-12-11 17:18:55 +09:00
Ross Vandegrift 31ce5250cb evas: Fix sign mismatch in evas between.c and .h definitions
Summary:
Parameters w and h are declared as int for evas_common_rgba_image_from_data
and evas_common_rgba_image_from_copied_data in evas_image_data.c.  This
does not match the prototypes in evas_image_private.h which declares them
unsigned.

Original report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748026

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5540
2017-11-27 17:36:58 +09:00
subhransu mohanty befb7701a7 evas/engine: added new engine api for ector 2017-11-10 11:20:38 +09:00
subhransu mohanty d4a2b2025b evas/common: added a generic cache in evas common. 2017-11-10 11:20:38 +09:00
Cedric BAIL fa3e1dc784 evas: rely on ecore to reset evas rendering thread on fork. 2017-11-07 16:08:39 -08:00
Cedric BAIL d125892601 evas: rely on ecore to reset upscaler thread on fork. 2017-11-07 16:08:39 -08:00
Jean-Philippe Andre 0076f54112 evas: Yet another OSX build fix...
Please tell me this is the last one
2017-11-07 21:53:45 +09:00
Jean-Philippe Andre 12fa8caec5 evas: Another attempt at fixing OSX build
Build failed with LKI not found, as a symbol, but it's a macro.
Copy & pasted from evas_common_private.h
How can this work on one platform and not another? I don't get it...
2017-11-07 20:18:52 +09:00
Jean-Philippe Andre a438e9382c evas: Fix make check
Because of this I couldn't test my previous patches properly and now
realized that I also broke make check... >_<

See D5419
2017-11-07 14:57:14 +09:00
Jean-Philippe Andre d4a3d2f5de evas: Fix invalid header protector
clang is smart enough to warn about this.
I've mentioned it multiple times...
2017-11-07 11:54:08 +09:00
subhransu mohanty b038d7df25 Remove evas internal dependency from the evas_font module
Summary:
dev branch : devs/subhransu/font

The Final goal is to move the evas_font module to ector so that both ector and evas can reuse the code.
make the api simple so that sam eapi can be used by evas_textblock and ector text.

This is the 1st stage to achive that gola, first remove the evas internal dependancy as much as possible before moving to ector library.

Reviewers: jpeg, raster, herdsman, cedric, id213sin

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5419
2017-11-07 11:34:53 +09:00
Youngbok Shin a191a052b8 evas: add a missing description for a newly added parameter
Summary:
A new parameter "width_offset" was added to
evas_common_font_query_last_up_to_pos() internal function.
But, internal documentation was not updated.
So, it adds a simple description for the new parameter.

Test Plan: N/A

Reviewers: jpeg, cedric, herdsman, shilpasingh

Differential Revision: https://phab.enlightenment.org/D5035
2017-10-27 12:12:25 -07:00
Godly T.Alias 3ad9ac8926 evas: buffer is not used in the case where destination and source dimension is different
Summary: Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Reviewers: cedric, raster, rajeshps, prince.dubey

Subscribers: jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 11:58:59 -07:00
Jean-Philippe Andre ca581e00ba evas: Implement support for different H/V font DPI
This is modifying how a rarely used environment variable that sets the
DPI used for font sizing is parsed. The previous form remains valid, of
course. Note that EFL tends to use "scaling" instead of this DPI. The
font DPI is useful for me to open up a terminology window with almost
the same size as my IDE's code viewer.

Use case:

  export EVAS_FONT_DPI=95x94 terminology

Note:
I still don't get a 1:1 match with Qt's rendering, and in fact
94x95 works better than what 95x94 (which is reported by xdpyinfo).
Interesting though :)

@feature
2017-10-12 15:25:05 +09:00
Subodh Kumar a8e7cf74b1 evas: there is no effect of variable assignment while clean up.
Summary:
There is no effect of assingning a variable while clean up.
@fix

Reviewers: raster, cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-09 16:41:23 -07:00
Subodh Kumar 8d880d7f41 evas: there is no effect of variable assignment outside the function.
Summary:
Variable assigned is not used anywhere else, making it unused.
@fix

Test Plan: Na

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-06 09:52:45 -07:00
Cedric BAIL 08deba98f8 evas: make sure we always open the file and look at its header before trying to load data. 2017-10-05 16:02:47 -07:00
Cedric BAIL 7672d1050e evas: remove unused function evas_common_load_image_from_file. 2017-10-05 09:37:07 -07:00
Carsten Haitzler e095562ea1 evas font loading - fix possible divide by 0 when font size is 0
fix coverity CID 1381446
2017-09-28 15:28:00 +09:00
Jean-Philippe Andre 3d2551175d evas: Fix shutdown of async cmd cache
The incomplete reset (array to NULL but max not reset) triggers errors
in evas_thread_queue_append() where eina_inarray_grow() returns NULL.

This shows up in:
   CK_FORK=no elm_suite

@fix
2017-09-26 17:58:07 +09:00
Youngbok Shin 1750410650 evas: Add scale feature for embedded bitmap fonts.
Summary:
When evas selects a strike of embedded bitmap font,
calculate ratio and use it for scaling embedded bitmap.
@feature

Reviewers: jpeg, tasn, woohyun, raster, herdsman

Reviewed By: raster

Subscribers: charlesmilette, Francesco149, cedric

Differential Revision: https://phab.enlightenment.org/D2713
2017-09-26 11:31:31 +09:00
Vincent Torri 0cdd501246 EFL For WIN32: Replace HAVE_EVIL define with _WIN32 2017-09-22 05:06:10 -05:00
Youngbok Shin 7a1075500a evas: don't search other fonts only for INHERITED script unicodes
Summary:
INHERITED script unicodes are only meaningful when it comes
after the previous unicode from same font.
Even if there is no glyph for the INHERTED script unicode from current font,
don't search other font for loading the unicdoe as first unicode
of next item. It will be meaningless.
@fix

Test Plan:
Check the following Emoji sequence with an emoji font
which does not have variation selector glyphs.
{ 0x1F3F3, 0xFE0F, 0x200D, 0x1F308 }

Reviewers: raster, cedric, herdsman, jpeg, woohyun

Reviewed By: herdsman

Differential Revision: https://phab.enlightenment.org/D5156
2017-09-11 08:52:03 +03:00
Jaehyun Cho 618c123341 evas_language_utils: Fix build error without NLS 2017-09-06 11:19:28 +09:00
Marcel Hollerbach e1738c4f1e Revert "evas_thread: only join the thread if the thread is still alive"
This reverts commit e41d46c635.

This seems to be wrong
2017-09-05 14:36:17 +02:00
Marcel Hollerbach e41d46c635 evas_thread: only join the thread if the thread is still alive
otherwise we might join a invalid thread id, that could lead to a
deadlock. Lets not do that.

ref T5245

@fix
2017-09-05 14:15:40 +02:00
Youngbok Shin bf1c0e2657 evas: proceed glyph iterator to handle next index properly
Summary:
When harfbuzz is enabled, _content_create_ot() function will be used
for shaping. If evas_common_font_int_cache_glyph_get() failed in some reason,
it never proceed gl_itr until the end.
It can cause weird rendering result. Because, all of gl_itr after the failure
can't have proper x_bear, y_bear and width.
@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, jpeg

Differential Revision: https://phab.enlightenment.org/D5154
2017-09-04 10:18:05 +03:00
Youngbok Shin 2b9a2692e8 evas font: do floating point division for calculating more accurately
Summary:
Assigning a result of integral division to a double type variable is
not useful for next division calculation. For more accurate calculation,
it needs to be casted to double before doing division.
It does not fix some bugs. It was reported by a code quality advisor.

Test Plan: N/A

Reviewers: raster, cedric, jpeg, herdsman, eunue

Reviewed By: cedric

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-08-30 12:06:01 -07:00
Bryce Harrington c4a5b7b19c evas_rectangle_main: Whitespace cleanup
Summary: Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5100
2017-08-17 10:43:08 -04:00
Stefan Schmidt dbf7057bca Revert "efl: terrible kludge so avoid termination crash on osx"
This reverts commit 9368eedd35.

The release is out so we can revert this bandaid again. In the hope to
find the real culprit and solution before the next release.
2017-08-07 11:53:00 +02:00
Jean Guyomarc'h 9368eedd35 efl: terrible kludge so avoid termination crash on osx
Currently, elementary programs crash on termination on macOS (seems
Sierra-specific). This is very nasty, looks like deep memory corruption...
Without valgrind (or like) support on Sierra, it is difficult to
pinpoint the origin of the problem.

Due to the imminient release, and after discussion with @stefan, this
kludge will allow the release to happen.

This commit MUST be reverted just after the release, so we don't
blindfold ourselves!

Ref T5245
2017-08-03 10:31:26 +02:00
Youngbok Shin cbea6e4386 evas textblock: add align=locale option to respect locale's direction
Summary:
There are many requests to add a new feature for handling horizontal align
according to current locale. For example, in RTL locale setting,
users want to see right aligned text for every list's item.
Even if some of list's items only contain LTR characters!
It is useful for the needs.
@feature

Test Plan: N/A

Reviewers: herdsman, tasn, woohyun, raster, cedric

Reviewed By: herdsman, raster

Subscribers: z-wony, jpeg

Differential Revision: https://phab.enlightenment.org/D4664
2017-06-15 08:59:17 +03:00
Carsten Haitzler aa92cddb8b evas font code - build on older freetypes without new definitions
use the actual #35 as:

in freetype and it cant change without breaking abi...

@fix
2017-04-28 18:41:39 +09:00
Carsten Haitzler b2ca7a96dc thread fence code - move elsewhere in file to avoid conflicts 2017-04-28 18:41:39 +09:00
Derek Foreman 83adbadc89 evas: Add a function to block for render thread completion
This is needed by dmabuf engine fallback when it realizes it locally
allocated a buffer, has been rendering to it, but the compositor can't use
it.

So the engine copies its buffer contents into a new wl_shm buffer and
continues from there - however we need to make sure the async renderer
has finished first, so we don't copy a partial buffer.

This allows us to block for all previously submit actions in the render
queue to complete.
2017-04-26 13:47:46 -05:00
Youngbok Shin caed13d3fc evas: round glyph's advance before adding it to pen_x
Summary:
Rounding the sum of glyph's advance could cause inconsistency of
each glyph's positions. When Evas enables Harfbuzz library,
Each glyph's position has to be handled by only nearby glyphs.
But, currently, totally unrelated glyph's advacne could change
other glyphs positions.

ex) 1. "connect."
    2. "Tap here to connect."

You can see different gap between "c" and "o" of word "connect".
It should be same even if there was a different text before the word "connect".
@fix

Test Plan: N/A

Reviewers: raster, herdsman, jpeg

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4782
2017-04-24 13:32:36 +03:00
Jean-Philippe Andre b6df13b024 evas filters: Move curve to software generic (3/8)
This moves the RGBA premul/unpremul functions to static_libs/draw.
2017-04-14 11:26:42 +09:00
Jean-Philippe Andre 0740010a06 evas filters: Move blend to software_generic (1/8)
This is an attempt at refactoring the filters code so I can
later implement GL support. This patch adds a few extra changes
to remove avoid calling functions of libevas from the software
engine: use the draw functions from static_libs/draw rather
than evas_common APIs.
2017-04-14 11:26:42 +09:00
Stefan Schmidt 9a15eeaced Revert "efl: terrible kludge so avoid termination crash on osx"
The only purpose of this commit was to allow efl 1.19 to be
released on macOS wothout crashing on termination. Time to revert
it and see that we can find a real fix for the next release.

This reverts commit cd5e755951.

ref T5245
2017-04-13 16:11:39 +02:00
Jean-Philippe Andre f3c9500a6d evas filters: Fix a rare crash in text render (SW)
There are reports of crashes when y < 0. This case seems
abnormal in case of filters, as I don't know how to reproduce it,
but it's happened.

Thanks Youngbok Shin for the report.

@fix
2017-04-10 16:56:14 +09:00
Youngbok Shin 1ab87367d8 evas: give width offset when Evas tries to find ellipsis position
Summary:
If the last item before ellipsis item has bigger width than its advance,
evas_common_font_query_last_up_to_pos() function can find wrong ellipsis position.
When Evas finds a position for non last item, Evas must care about additionally
available space for glyph's width of the given x position.

ex) the last item's glyph before ellipsis item has a tail to draw above the ellipsis item.

@fix

Test Plan:
Test case will added as comment.
(Becasue of font license problem.)

Reviewers: herdsman, raster, jpeg, woohyun

Subscribers: cedric, Blackmole

Differential Revision: https://phab.enlightenment.org/D4727
2017-04-10 12:15:20 +09:00
Jean Guyomarc'h cd5e755951 efl: terrible kludge so avoid termination crash on osx
Currently, elementary programs crash on termination on macOS (seems
Sierra-specific). This is very nasty, looks like deep memory corruption...
Without valgrind (or like) support on Sierra, it is difficult to
pinpoint the origin of the problem.

Due to the imminient release, and after discussion with @stefan, this
kludge will allow the release to happen.

This commit MUST be reverted just after the release, so we don't
blindfold ourselves!

Ref T5245
2017-03-31 14:11:01 +02:00
Youngbok Shin f83ce20e1c evas: clean up GL images for emojis when GL context is free'd
If GL context is free'd before processing font shutdown,
textures for emoji glyph's GL images will be free'd without clean
up its GL images. It causes eina mempool infinite loop issue when
emoji's GL images are free'd in shutdown process.

So, the patch will make a list for emoji's GL images in context and
clean up them when the context is free'd. Just like font textures in
context.

@fix

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-03-08 19:35:03 +09:00
Bryce Harrington b0ecb1fc90 evas: Drop duplicate macro definitions SETUP_LINE_*
Summary:
SETUP_LINE_SHALLOW and SETUP_LINE_STEEP are each identically defined
(except whitespace) in evas_line_main.c

Reviewers: cedric, jpeg

Subscribers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D4681
2017-02-28 13:07:13 +09:00