|author||Jeff McGlynn <email@example.com>||Wed Jun 20 11:34:20 2018 -0700|
|committer||Jeff McGlynn <firstname.lastname@example.org>||Wed Jun 20 11:50:22 2018 -0700|
Initial version of astc-codec for open source release Contains an implementation of an ASTC decoder that is able to pass the dEQP ASTC LDR tests. astc-codec has no external dependencies for the main library, only for test code, and is licensed under the Apache license. Components: include/ - Public API that can decode ASTC LDR data into a RGBA UNORM8 buffer. src/base/ - Base library with common functionality not directly related to ASTC decoding. Contains a uint128 implementation, BitStream for reading/writing bits with a primitive (or uint128 type), Optional implementation (to not take a dependency on C++17), and more. src/decoder/ - Internal implementation of the ASTC decoder. src/base/test/, src/decoder/test/ - Unit tests (and a fuzzing test) for the astc decoder. src/decoder/testdata/ - Sample ASTC images and golden image results for testing. src/decoder/tools/ - A tool to inspect contents of an ASTC file. third_party/ - Third party libraries, only used for tests. Change-Id: Ia98e5a7dc847daa3d3a48c5e62d94b8fb1cb98bd
astc-codec is a software ASTC decoder implementation, which supports the ASTC LDR profile.
#include <astc-codec/astc-codec.h> // ... std::vector<uint8_t> astc = LoadMyASTCData(); const size_t width = 640; const size_t height = 480; std::vector<uint8_t> result; result.resize(width * height * 4); bool result = astc_codec::ASTCDecompressToRGBA( astc.data(), astc.size(), width, height, astc_codec::FootprintType::k4x4, result.data(), result.size(), /* stride */ width * 4);
Install Bazel, and then run:
bazel build :astc_codec -c opt
astc-codec has been tested on Mac and Linux.
bazel test //...
See CONTRIBUTING.md for important contributing requirements.
astc-codec project is licensed under the Apache License Version 2.0. You can find a copy of it in LICENSE.
This is not an officially supported Google product.