Commit Graph

164 Commits

Author SHA1 Message Date
Jean-Philippe Andre ecc7da9cba Evas filters: Use Efl.Gfx.Render_Op
Some filters are now broken. Yay for refactoring! Will be fixed
in the following commit.
2015-12-04 16:09:53 +09:00
Jean-Philippe Andre 9457411861 Draw: Add new mask functions
Copy & blend to uint32 with a uint8 mask + color.
2015-12-04 16:09:47 +09:00
Jean-Philippe Andre c09199f0e0 Ector: use uint32_t instead of uint
This fixes the build for Windows. Thanks @vtorri for the report.

I'm not using "unsigned int" as uint was mostly used like DATA32,
ie. color data (one pixel color or a pixel buffer).
2015-12-03 20:28:27 +09:00
Jean-Philippe Andre dc621e2316 Ector: Kill compilation warnings
Remove unimplemented function (no test case yet).
Convert #warning into comments.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre b5500a8644 Evas: Move alpha functions to static_libs/draw
This is a pretty simple code refactor, moving pixel handling
to the new draw lib.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 615b2442b7 Ector: Move drawhelper to static_libs
Rename a few things:
 - draw helper -> efl_draw
 - Ector_Rop -> Efl.Gfx.Render_Op
 - ECTOR_ bla bla -> DRAW_ bla bla (base pixel ops)
 - ector_memfill -> draw_memset32 (and invert arg order to match memset)

The main rasterizer file is now draw.h in static_libs/draw
This is a non functional change, simple code refactor.
2015-12-03 18:42:50 +09:00
Stefan Schmidt 7b86b1c374 rg_etc: use void to force empty function parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
2015-11-26 17:27:01 +01:00
Subhransu Mohanty 1aa1bbc131 ector: cleanup freetype raster
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 16:04:45 -08:00
Subhransu Mohanty da47b4df13 ector: updated the freetype raster with faster line renderer.
Merged from freetype repo with 'smooth', faster, alternative line renderer.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 14:44:22 -08:00
Srivardhan Hebbar 4f24deac44 ecore_con: Moving dns.c and dns.h to static_libs.
Summary:
Took the license file from https://github.com/wahern/dns
The dns.c and dns.h are taken from here.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3314
2015-11-10 14:10:02 -08:00
Srivardhan Hebbar e5a9c7844f ecore_con: add http_parser static lib.
Summary:
This lib would be used in efl_network_websocket.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:52:15 -08:00
Cedric BAIL 599141a96b ector: move freetype rasterizer library to itw own directory. 2015-11-09 10:42:35 -08:00
Stefan Schmidt d1b414a6ec rg_etc: Correct ifdef to keep function available for debug build
In the nightly builds we have debug enabled and this spotted the case where
rg_etc1_solution_coordinates_block_colors_get is actually still used:

lib/eet/.libs/libeet.so: undefined reference to `rg_etc1_solution_coordinates_block_colors_get'

Showed only after we switched back from release to dev mode.

@fix
2015-05-11 15:00:12 +02:00
Tom Hacohen 7a49d23f90 Static deps unibreak: update to what will soon be version 3.
Version 3 is not yet released, but this is on track to become it.
This is based on commit: a815e11f7ebf35b59278f783227a829ee4692760.

@feature.
2015-05-07 10:54:26 +01:00
Tom Hacohen ba77a837a3 Revert "Static deps: Move unibreak to be an external dep."
Apparently the Debian package, while up to date, for some reason does
not ship the .pc file (according to q66).
According to Stefan, Fedora doesn't even have libunibreak, but only the
previous naming and old version.

Will have to wait a few years more. :(

This reverts commit a2a9f33802.
2015-05-07 10:54:26 +01:00
Stefan Schmidt 4314257d8c lz4: Update our internal copy to release r128
Looking through the git log it is unclear which release we used before as nobody
stated it there. :/ We updated after the security issues last year so my best
guess is that we have something like r119.

To see what changed I now included the NEWS file and also the LICENSE file from
upstream. Upstream in now hosted here: https://github.com/Cyan4973/lz4 and
http://www.lz4.info

I recommend STRONGLY that you check if your distro ships liblz4 as an up to
date library package and use the --enable-liblz4 configure option to use the
system version. I consider making the system version default for upcoming
releases and only carry the internal one as fallback for systems that do not
provide it.

Fix T2374
2015-05-07 11:15:13 +02:00
Tom Hacohen a2a9f33802 Static deps: Move unibreak to be an external dep.
We need any version of libunibreak. The first one has been released in mid 2012.
Even slow distros like ubuntu already have an LTS out with a good enough
version, so I consider this enough to remove the maintenance cost.
This has been discussed on IRC.

@feature
2015-05-07 10:03:26 +01:00
Jean-Philippe Andre 97fd661451 ETC1: Fix more clang warnings
Some of these are a bit pointless (eg. init with {0})
but at least this silences clang and helps reveal more
potentially useful warnings.
2015-04-21 20:11:02 +09:00
Jean-Philippe Andre 565a4da138 ETC1/2: Fix clang warnings
Unused functions.
I keep them around for reference, for whoever wants to work on
improving the encoder.

There are still some warnings. Clang is just crazy.
2015-04-21 20:11:02 +09:00
Mike Blumenkrantz 5375e154fe fix config.h inclusion across the tree 2014-09-23 15:56:46 -04:00
Cedric BAIL 4f45be13cf lz4: fix another security issue on ARM 32bits. 2014-07-14 15:59:06 +02:00
Boris Faure 3d36d65dd8 lz4: fix shadow issue
@fix
2014-06-29 23:11:56 +02:00
Cedric BAIL 2c97212736 lz4: fix possible security issue.
See :
- http://fastcompression.blogspot.fr/2014/06/lets-move-on.html
- http://www.openwall.com/lists/oss-security/2014/06/26/25

@fix
2014-06-29 12:56:56 +02:00
Jean-Philippe Andre 37431fb1a1 Evas ETC2: Remove some useless operations
No need to write out alpha in a RGBA color when only
the RGB values are used by the distance op.

Also, add a comment on the byte order. Maybe I'm wrong
but I believe the operations are fine wrt. byte order :)
2014-06-23 11:20:13 +09:00
Jean-Philippe ANDRE 60895e1a14 Evas ETC2: Remove some C99/GCC extensions code
There is still some C99 code in the file in the form of
  for (int k = 0; ...)

If there's a strong requirement not to use this form, I'll
change it, otherwise I find this specific code style more
readable (k is local to this iteration).

This patch and the previous one even give a ~10% speedup
on the encoding time. Sweet :)
2014-06-22 18:59:52 +09:00
Jean-Philippe ANDRE 4d35471e8e Evas ETC2: Fix horrible warnings in etc2_encoder
So I guess always compiling with debug flags and no
optimizations isn't the best idea as some really bad warnings
can be hidden. Thanks raster for the notice.
2014-06-22 18:57:41 +09:00
Jean-Philippe Andre c79a8b43b6 Evas: Fix ETC2 encoding with RGB images (no alpha) 2014-06-13 15:59:23 +09:00
Jean-Philippe Andre 29770922cf Evas ETC2: Fix etc2 function declaration 2014-06-12 16:53:53 +09:00
Jean-Philippe Andre d6e6d001a3 Evas ETC2: Clean up debug code
Disable flag and disable unused function if DEBUG is not set.
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 878641f6dc Evas ETC2: Fix alpha encoding with high quality
Use an exhaustive search when encoding alpha at high quality.
This can be very slow if we don't have a perfect solution.
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 90f58b2a57 Evas ETC2: Implement Planar mode
And this completes the first version of this ETC2 encoder.
It's pretty slow and not exhaustive.

Color selection for T and H modes could probably be optimized
for both performance and quality. As for the planar mode, there
is no selection to speak of, as we just take the values of the
pixels directly (no scan, very fast)

On a sample image with lots of blue, white and noisy gradients,
T+H+Planar mode boost the PNSR from 41.22dB to 42.01dB.
Without planar mode, the PSNR was 41.94dB.

@feature
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 173b6bebf9 Evas ETC2: Implement H mode encoding
And we gain some more decibels of PSNR :)

@feature
2014-06-10 14:58:28 +09:00
Jean-Philippe Andre 22c5632256 Evas ETC2: Implement T mode encoding
In this mode, two colors are encoded in RGB444, a multiplier and
distance (index) are selected. Two extra colors are extrapolated
from the main base color. As in ETC1 we have 4 base colors to paint
our block.

@feature
2014-06-10 14:58:27 +09:00
Jean-Philippe Andre 6fc4c1da74 Evas ETC2: Add ETC2 encoder skeletton
Implement Alpha encoding, brute force way, but doesn't scan
all possibilities either (only based on average alpha).

RGB encoding is still entirely left to the rg-etc1 encoder.
T, H and Planar mode will come in the next commits.

@feature: Implement an ETC2 encoder from scratch for RGB8 and RGBA8
2014-06-10 14:58:27 +09:00
Jean-Philippe Andre 69cbfc7530 Evas rg_etc2: Fix Windows build
Use unsigned char/int instead of stdint in the header file.
2014-05-28 12:11:05 +09:00
Jean-Philippe Andre b8f7431b74 Evas rg_etc1: Fix build break (with DEBUG)
Ooops, bad code merge here.
This breaks the nightly builds.
2014-05-28 08:13:30 +09:00
Jean-Philippe Andre 1aa3510666 Evas rg_etc: Show in the doc that we use BGRA now 2014-05-27 12:21:43 +09:00
Jean-Philippe Andre 939b5e47a0 Evas rg_etc2: Small performance fix
Alpha is always 255 otherwise we need to loop around and
clamp the values to 255 anyways.
2014-05-27 12:21:43 +09:00
Jean-Philippe Andre 525bc4117a Evas rg_etc1: Also decode RGBA8 from the TGV loader 2014-05-27 12:21:37 +09:00
Jean-Philippe Andre 03505d1f81 Evas rg_etc2: Complete support for ETC2 with RGBA8_EAC
Add support for alpha in the ETC2 decoder.
2014-05-27 12:21:37 +09:00
Jean-Philippe Andre 5582ee016e Evas rg_etc2: Add ETC2 decoding routines
Simple implementation of the OpenGL ES 3.0 specification, annex C.1.
2014-05-27 12:21:30 +09:00
Matvey Konovalov 9550b65348 Evas rg_etc1: Unroll the decoding loop for performance
Measurements have shown a 40% perf increase with these changes.
Patch by Matvey Konovalov.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2014-05-27 12:21:26 +09:00
Savio Sena 72ee78b929 efl: remove some warnings.
Summary:
Mainly from the examples but also from libunibreak and tests/eet.

I'm not sure if it's really worth to remove warnings from the examples
-- because it adds pedantic-ness to something supposed to be didatic,
but I leave for you guys to judge.

Reviewers: tasn, cedric

CC: felipealmeida, raster, smohanty, cedric

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

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-05-24 02:27:15 +02:00
Jean-Philippe Andre 12cdc7c25c rg_etc: Add a README for the Zlib license 2014-05-07 19:59:01 +09:00
Jean-Philippe Andre 59b660aae9 rg_etc1: Fix RGBA vs BGRA mishandling of the ETC1 codec
Evas uses BGRA data while rg_etc1 uses RGBA data, so there
were incompatibilities between the two.

Now, rg_etc1 will take BGRA data as input and output.
2014-04-22 18:30:26 +09:00
Jean-Philippe Andre 3ccd966ffe rg_etc1: Disable code producing artifacts
So I must have been a bit tired last Friday when "fixing" some
code producing artifacts, as I was just basically disabling part
of the code without realizing it :)
Let's just disable it then.
2014-04-22 11:59:54 +09:00
Jean-Philippe Andre e120d42742 rg_etc1: Fix rare artifacts + add comments
Add some comments as I'm reading and understanding the code.
Fix some rare artifacts happening mostly with medium quality
encoding, where a few pixels (2x2, 2x4 or 4x2) will have a
horrible contrast with their surroundings (eg. pink over black).
2014-04-18 18:46:55 +09:00
Jean-Philippe Andre ca0c608b66 rg_etc1: Fix encoding of solid color blocks
The ETC1 encoder is expected to write all 8 bytes of the
output data. But in case of a solid color block, it was writing
only 1 of the first 3 bytes (R, G, B). So lots of solid blocks
were containing invalid data (for instance: R + dR < 0 or > 255).
2014-04-18 15:43:07 +09:00
Cedric Bail b5c276a659 rg_etc: check against meaningful size (pointer size is not)
CID 1195440.
2014-04-17 21:26:57 +02:00
Stefan Schmidt e004338cce rg_etc: Fix local shadow problems
Make it clear which local variable we really want to use by changing
the names. All of these seem to be fine but this can really bite us
so have better clarity here.
2014-04-08 16:22:59 +02:00
Stefan Schmidt 8ebc1309ac rg_etc: Really fix debug build.
Finally finishing what 2e8c7cad3a tried to fix.
2014-04-08 10:46:41 +02:00
Stefan Schmidt 2e8c7cad3a rg_etc: Fix debug build
In 4053911e we tried to fix the debug build and failed. The function API
actually asks for coords as first parameter. Our nightly builds expose
this debug build and have been failing due to this.

It also makes clear that the debug part of this code was never really
used upstream...
2014-04-04 09:39:28 +02:00
Cedric BAIL 4053911ef3 rg_etc: fix typo in debug code. 2014-04-02 10:31:06 +09:00
Cedric BAIL 4eb983614c rg_etc: fix warning and remove assert. 2014-04-01 22:00:13 +09:00
Mythri Venugopal ebd3187923 rg_etc: convert code to C to fit in EFL tree. 2014-04-01 22:00:13 +09:00
Cedric BAIL 2cac84f567 rg_etc: convert to Unix file format. 2014-04-01 22:00:13 +09:00
Rich Geldreich 03b29127f1 rg_etc: add original code from rg-etc1 project.
Code come from https://code.google.com/p/rg-etc1/ and is under Zlib license.
The content of this directory will remain under that said license.
2014-04-01 22:00:13 +09:00
Tom Hacohen cff1a9a59f Synced libunibreak local copy with upstream.
This fixes T805.
2014-01-21 16:41:06 +00:00
Tom Hacohen 4185694ecb Synced libunibreak local copy with upstream. 2013-08-07 11:57:09 +01:00
Tom Hacohen 88ab486e63 Efl static_libs: Updated liblinebreak -> libunibreak.
SVN revision: 82652
2013-01-11 18:16:09 +00:00
Gustavo Sverzut Barbieri 2b29626d8d efl: fix make dist.
Carefully compared 'svn export' and 'make dist' results and couple of
files were missing.

Changes:

 * Makefile.am: removed all .pc from EXTRA_DIST, we shouldn't
   distribute them here as they will contain ./configure data such as
   install location.
 * src/Makefile.am: moved all if-endif to files, otherwise EXTRA_DIST
   won't work properly. We must EXTRA_DIST outside of the if-endif
   block.
 * static_libs/liblinebreak: removed couple of unused files.




SVN revision: 82241
2013-01-04 20:55:12 +00:00
Vincent Torri 6f5a4a9a7c Eet: update lz4 code. Fix especially compilation bug on OpenBSD
see lz4 homepage for a full description of the fixes


SVN revision: 79975
2012-12-02 08:15:06 +00:00
Vincent Torri c15e9c6575 merge: and now Evas
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
2012-11-04 11:51:42 +00:00
Vincent Torri 109efca5cb merge: move lz4 to src/static_libs/lz4 (same will hold for evas' linebreak), ignore++--
SVN revision: 78807
2012-11-01 16:58:56 +00:00