Commit Graph

798 Commits

Author SHA1 Message Date
Tom Hacohen 19cde8f194 Evas font: Added support for the freetype spacing tag.
This doesn't work nicely, as for some reason fontconfig doesn't work
nicely with ':spacing=mono' without a font name.
Doesn't work with fc-match either. It does work with fc-list, but that's
not what we'd like to use. It could be just an issue with my local
fontconfig configuration.

This fixes T865 although the problem is now with freetype.
2014-01-29 14:36:22 +00:00
Tom Hacohen 2cb9db171e Evas font: Added support for weight/width/slant font tags.
This let's you set those directly, instead of using the style tag.
2014-01-29 14:10:43 +00:00
Tom Hacohen 22813f5b52 Evas textblock: Fix selection with bidi text.
This is a regression introduced in
548e548632.

This is really bad, and essentially broke selection geometry for bidi
text. Very serious.

The problematic code assumed that the range comparison for the items
assumed the item marked with 1 is always logically before the item marked
with 2, which is just not true.
2014-01-29 13:27:45 +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
Daniel Juyung Seo 4b457c5f2d evas_render: avoid unnecessary assignment. 2014-01-28 01:54:49 +09:00
Carsten Haitzler aa761eaae9 evas - textgrid - clear up unused var warning 2014-01-24 10:01:23 +09:00
Jean-Philippe Andre 345c1ad26d evas: textgrid - fix crash in terminology with rare characters.
So I have a weird crash in terminology.
Reproduction path:
eet -x /path/to/elm/theme/default.edj edje/images/537

Scroll back in the terminal buffer, to show the entire file: CRASH.

Reviewers: cedric, tasn

CC: cedric, raster

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-01-24 09:47:08 +09:00
Jean-Philippe Andre 981bdc16f6 Evas: Fix proxy rendering for animated objects
An invalid optimization was implemented in proxy rendering.
We can't assume a proxy is a smart object.

Refer to 5cefa00d0a.

Fixes T832.

Proxy rendering is still broken when using cserve2... :(
2014-01-22 17:02:27 +09: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
Youngbok Shin a2c4c40474 evas: Fixed to compare current render_op with previous render_op for textblock. If the render_op is changed, call evas_object_render_pre_prev_cur_add.
Summary: This change is related to the commit: cdb86e34bb

Reviewers: woohyun, tasn, Hermet, seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D450
2014-01-18 19:06:16 +09:00
Jean-Philippe Andre 34b8045d90 Evas cserve2: Fix invalid memory access
In case of load error, we free the file entry, but forgot to
reset the pointer to it in the image entry.
2014-01-17 19:00:54 +09:00
Jean-Philippe Andre 908785b60d Textblock: Relayout if needed in line geometry get
evas_object_textblock_line_number_geometry_get() did not trigger
a relayout, so it could end up returning FALSE and invalid values.
2014-01-15 17:55:27 +09:00
Jean-Philippe Andre 9860af0b35 Textblock: Fix padding with styles (part 2)
Summary:
If ONE single item in the whole textblock has a padding of k,
then ALL the lines of the textblock will be padded by k pixels.

Here's a solution to add the padding only to the first line.

Test Plan:
Write any multiline text, without styles, in an entry.
Add some glow to one element. All lines should be spaced by
an extra 2 pixels.

Reviewers: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D442
2014-01-15 17:55:27 +09:00
Jean-Philippe Andre 6970a020c1 Textblock: Fix padding computation (part 1)
Track padding per paragraph, since this is how it is computed.

Problem before this patch:
- If markup text is changed, padding may grow, and the layout is updated (good)
- If the UI itself needs a relayout, the old padding value is NOT reused,
so style paddings will reset the padding to 0.

Test protocol:
- Set some text with style=glow. The whole object should have padding 2,2,2,2
- Relayout the UI, the whole object will have padding 0,0,0,0 (should be 2,2,2,2)
2014-01-15 17:55:27 +09:00
Jean-Philippe Andre d8d5189003 Evas/cserve2: Remove dead code
Fixes CID 1039925.
2014-01-15 11:00:47 +09:00
Jean-Philippe Andre e465e7d58a Evas/cserve2: Stop looking at those dirty pics!
What I mean is erm... images marked as dirty don't have a
cache_key, and that's perfectly fine when the image file
has changed.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 06b53dd09b Evas/cserve2: Keep image_id when reopening a changed file
If a file had changed, a new OPEN message was sent, and the
client image ID was then changed, but the LOAD message was
sent with the previous image ID. So cserve2 would not be
able to honor that request.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 73670beba3 Evas/cserve2: Rename "invalid" field to "changed"
This flag indicates that a file changed, not that the entry
is invalid. There is another "valid" flag already.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 1d99c82381 Evas/cserve2: Improve error messages a bit 2014-01-14 14:23:04 +09:00
Jean-Philippe Andre a0dc5c16ac Evas/cserve2: Add another load error check
This one is very unlikely as it would mean the image is
invalid while being in the hash.
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 35fd233d0c Evas/cserve2: Fix crash on image file change
When an image file is changed, it is discarded from cserve2,
so the references become invalid. In case we were loading a
scaled version of that image, no proper error checking was
done, leading to obvious crashes.
2014-01-14 14:23:04 +09:00
Carsten Haitzler 540d7f789c evas - cserve2 - avoid segv accessing im->cache 2014-01-13 08:50:52 +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 4e52fbdc74 evas gl example - make bg blue to make onefang not freak out. :) 2014-01-11 11:12:16 +09:00
Carsten Haitzler 79e6918f00 formatting - fix 2014-01-10 19:58:21 +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
Jean-Philippe Andre b84787bf57 Evas/cserve2: Fix valgrind warning about uninitialized memory
In cserve2, a shortcut was taken to check if two images were the
same, using memcmp() on the Evas_Image_Load_Opts struct. But it
seems some empty areas in the struct are uninitialized, potentially
making memcmp() fail when the images were actually the same.

This is a minor issue since this function is called only when
bypassing the socket wait.

Also, memset load_opts to 0 and copy all the fields to avoid
the same warning in socket send().

I'm just wondering about the performance impact vs. memcpy/memcmp.
2014-01-09 17:35:35 +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
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
2014-01-08 19:46:23 +09:00
Jean-Philippe Andre 5f601cd753 Evas: Fix some clang warnings in evas_cs2_client.c
- Invalid alloc size (typo)
- Initialized value never read (set twice)
- Potential memleak (call free(msg) in case of send error)
- Null pointer dereference (check nullity)

There are still other warnings, but I believe these are false
positives.
2014-01-07 15:51:56 +09:00
Jihoon Kim cb9dedd44d fix typos in EFL documents 2014-01-07 14:28:45 +09:00
Jihoon Kim 946a797e0d fix warning related to argument in generating doxygen 2014-01-07 11:27:15 +09:00
Jihoon Kim 8fcedfc017 fix 'found unknown command' warning in generating doxygen 2014-01-06 14:01:15 +09:00
ChunEon Park a76e751eb4 evas - fixed side effect caused by f4d24e962d
since the map_changed is reset right after the map is updated,
it could not decide to redraw the map surface properly.

now map_update() returns the value to redraw the map surface properly.
2014-01-06 13:54:58 +09:00
Cedric BAIL a2d55c2b82 evas: fix build on windows. 2014-01-06 10:39:34 +09:00
Jihoon Kim d022ce1f67 evas: fix doxygen warning 2014-01-06 09:25:15 +09:00
Cedric Bail 8c094d1b2d evas: let's use HUGETLB when it makes sense. 2014-01-05 22:44:50 +09:00
Jihoon Kim 3ebc18731f Use key instead of keyname for considering setxkbmap 2014-01-04 13:25:21 +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 0c1d42bb68 fix map-across-mark patch from sergey in december 2013
stable release - cherry-pick me!

of course! eina_hash_direct_add() for the object pointer is using the
poitner to the stack value, not the value itself it points to... this
was bad and just by luck out value was on the stack that grows but
never shrinks and thus never crashes, BUT... it will just break in all
sorts of fun ways. basically it makes the hash useless as the keys in
it are effectively all the SAME value as they point to the same
storage.. but it changes whenever that stack mem gets changed.
2014-01-02 09:39:33 +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