path: root/src/static_libs/rg_etc (follow)
AgeCommit message (Collapse)Author
2020-05-27refactor buildMarcel Hollerbach
libraries are split into deps, external deps, and pub deps. Evas engines are refactored to use the predefined engine deps. this is preparation work for efl-one. Reviewed-by: Stefan Schmidt <> Differential Revision:
2020-05-07Use __func__ C99 identifier instead of __FUNCTION__ compiler extensionVincent Torri
Summary: see section page 52 Test Plan: compilation Reviewers: raster, devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2018-12-20cmake: remove!Marcel Hollerbach
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:
2018-12-07meson: add inital support for windows compilationMarcel Hollerbach
Differential Revision:
2018-10-02here comes mesonMarcel Hollerbach
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 <> Differential Revision: Depends on D7011
2017-01-27cmake: add EFL_SUPPORT_LIB() and simplify/speedup its usage.Gustavo Sverzut Barbieri
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/
2016-05-18efl: fix misleading indentationJean Guyomarc'h
GCC's -Wmisleading-indentation is complaining... It is a warning flag introduced in GCC 6.x, and is enabled by -Wall.
2016-05-09efl: everyone should now rely on Eina MIN/MAX redefinition.Cedric BAIL
2015-11-26rg_etc: use void to force empty function parametersStefan Schmidt
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-05-11rg_etc: Correct ifdef to keep function available for debug buildStefan Schmidt
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/ undefined reference to `rg_etc1_solution_coordinates_block_colors_get' Showed only after we switched back from release to dev mode. @fix
2015-04-21ETC1: Fix more clang warningsJean-Philippe Andre
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-21ETC1/2: Fix clang warningsJean-Philippe Andre
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.
2014-09-23fix config.h inclusion across the treeMike Blumenkrantz
2014-06-23Evas ETC2: Remove some useless operationsJean-Philippe Andre
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-22Evas ETC2: Remove some C99/GCC extensions codeJean-Philippe ANDRE
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-22Evas ETC2: Fix horrible warnings in etc2_encoderJean-Philippe ANDRE
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-13Evas: Fix ETC2 encoding with RGB images (no alpha)Jean-Philippe Andre
2014-06-12Evas ETC2: Fix etc2 function declarationJean-Philippe Andre
2014-06-10Evas ETC2: Clean up debug codeJean-Philippe Andre
Disable flag and disable unused function if DEBUG is not set.
2014-06-10Evas ETC2: Fix alpha encoding with high qualityJean-Philippe Andre
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-10Evas ETC2: Implement Planar modeJean-Philippe Andre
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-10Evas ETC2: Implement H mode encodingJean-Philippe Andre
And we gain some more decibels of PSNR :) @feature
2014-06-10Evas ETC2: Implement T mode encodingJean-Philippe Andre
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-10Evas ETC2: Add ETC2 encoder skelettonJean-Philippe Andre
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-05-28Evas rg_etc2: Fix Windows buildJean-Philippe Andre
Use unsigned char/int instead of stdint in the header file.
2014-05-28Evas rg_etc1: Fix build break (with DEBUG)Jean-Philippe Andre
Ooops, bad code merge here. This breaks the nightly builds.
2014-05-27Evas rg_etc: Show in the doc that we use BGRA nowJean-Philippe Andre
2014-05-27Evas rg_etc2: Small performance fixJean-Philippe Andre
Alpha is always 255 otherwise we need to loop around and clamp the values to 255 anyways.
2014-05-27Evas rg_etc1: Also decode RGBA8 from the TGV loaderJean-Philippe Andre
2014-05-27Evas rg_etc2: Complete support for ETC2 with RGBA8_EACJean-Philippe Andre
Add support for alpha in the ETC2 decoder.
2014-05-27Evas rg_etc2: Add ETC2 decoding routinesJean-Philippe Andre
Simple implementation of the OpenGL ES 3.0 specification, annex C.1.
2014-05-27Evas rg_etc1: Unroll the decoding loop for performanceMatvey Konovalov
Measurements have shown a 40% perf increase with these changes. Patch by Matvey Konovalov. Signed-off-by: Jean-Philippe Andre <>
2014-05-07rg_etc: Add a README for the Zlib licenseJean-Philippe Andre
2014-04-22rg_etc1: Fix RGBA vs BGRA mishandling of the ETC1 codecJean-Philippe Andre
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-22rg_etc1: Disable code producing artifactsJean-Philippe Andre
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-18rg_etc1: Fix rare artifacts + add commentsJean-Philippe Andre
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-18rg_etc1: Fix encoding of solid color blocksJean-Philippe Andre
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-17rg_etc: check against meaningful size (pointer size is not)Cedric Bail
CID 1195440.
2014-04-08rg_etc: Fix local shadow problemsStefan Schmidt
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-08rg_etc: Really fix debug build.Stefan Schmidt
Finally finishing what 2e8c7cad3a89dfce5b9bf95f42a91da625036ea5 tried to fix.
2014-04-04rg_etc: Fix debug buildStefan Schmidt
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-02rg_etc: fix typo in debug code.Cedric BAIL
2014-04-01rg_etc: fix warning and remove assert.Cedric BAIL
2014-04-01rg_etc: convert code to C to fit in EFL tree.Mythri Venugopal
2014-04-01rg_etc: convert to Unix file format.Cedric BAIL
2014-04-01rg_etc: add original code from rg-etc1 project.Rich Geldreich
Code come from and is under Zlib license. The content of this directory will remain under that said license.