Commit Graph

44 Commits

Author SHA1 Message Date
Marcel Hollerbach e43f090265 cmake: remove!
This build was never complete and also was not maintained probebly.

It is also dropped in favour of meson which is cool, merged, works & is fast.

Differential Revision: https://phab.enlightenment.org/D7010
2018-12-20 20:07:26 +01:00
Marcel Hollerbach 500a36ba3d meson: add inital support for windows compilation
Differential Revision: https://phab.enlightenment.org/D7416
2018-12-07 13:05:31 +01: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
Gustavo Sverzut Barbieri 525d1e0629 cmake: add EFL_SUPPORT_LIB() and simplify/speedup its usage.
generate a static library for src/static_libs and use that as
LIBRARIES for the actual library, for those such as rg_etc that are
used multiple times will even speed up the final build by compiling
only once.

Although not used, they can be made into shared libraries that would
go inside /usr/lib/efl/support/v-1.19/libname.so
2017-01-27 12:52:14 -02:00
Jean Guyomarc'h 147ef32b2b efl: fix misleading indentation
GCC's -Wmisleading-indentation is complaining...
It is a warning flag introduced in GCC 6.x, and
is enabled by -Wall.
2016-05-18 21:57:02 +02:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07: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
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
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
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
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