diff options
author | krajcevski <krajcevski@google.com> | 2014-08-07 11:18:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-07 11:18:09 -0700 |
commit | 2fc05823fed4b9649338f3029cd1ba05ef49a02f (patch) | |
tree | d0faea7d24de0e9a9a3dbc1be94ff80742c25238 /tests | |
parent | b99c4a7bf2ff8d34b6adc053071a8bafdc868c73 (diff) |
- Add astcbitmap to gm slides
- Add additional ASTC formats
- Add astc image decoder files
R=reed@google.com, robertphillips@google.com, halcanary@google.com
Author: krajcevski@google.com
Review URL: https://codereview.chromium.org/444093002
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ImageDecodingTest.cpp | 5 | ||||
-rw-r--r-- | tests/TextureCompressionTest.cpp | 37 |
2 files changed, 36 insertions, 6 deletions
diff --git a/tests/ImageDecodingTest.cpp b/tests/ImageDecodingTest.cpp index 5e63611348..8838e75566 100644 --- a/tests/ImageDecodingTest.cpp +++ b/tests/ImageDecodingTest.cpp @@ -55,9 +55,10 @@ static bool skip_image_format(SkImageDecoder::Format format) { // decoders do not, so skip them as well. case SkImageDecoder::kICO_Format: case SkImageDecoder::kBMP_Format: - // KTX is a Texture format so it's not particularly clear how to - // decode the alpha from it. + // KTX and ASTC are texture formats so it's not particularly clear how to + // decode the alpha from them. case SkImageDecoder::kKTX_Format: + case SkImageDecoder::kASTC_Format: // The rest of these are opaque. case SkImageDecoder::kPKM_Format: case SkImageDecoder::kWBMP_Format: diff --git a/tests/TextureCompressionTest.cpp b/tests/TextureCompressionTest.cpp index 8694389fe7..da7a87bd41 100644 --- a/tests/TextureCompressionTest.cpp +++ b/tests/TextureCompressionTest.cpp @@ -12,6 +12,32 @@ #include "SkTextureCompressor.h" #include "Test.h" +// TODO: Create separate tests for RGB and RGBA data once +// ASTC and ETC1 decompression is implemented. + +static bool decompresses_a8(SkTextureCompressor::Format fmt) { + switch (fmt) { + case SkTextureCompressor::kLATC_Format: + case SkTextureCompressor::kR11_EAC_Format: + return true; + + default: + return false; + } +} + +static bool compresses_a8(SkTextureCompressor::Format fmt) { + switch (fmt) { + case SkTextureCompressor::kLATC_Format: + case SkTextureCompressor::kR11_EAC_Format: + case SkTextureCompressor::kASTC_12x12_Format: + return true; + + default: + return false; + } +} + /** * Make sure that we properly fail when we don't have multiple of four image dimensions. */ @@ -38,6 +64,9 @@ DEF_TEST(CompressAlphaFailDimensions, reporter) { for (int i = 0; i < SkTextureCompressor::kFormatCnt; ++i) { const SkTextureCompressor::Format fmt = static_cast<SkTextureCompressor::Format>(i); + if (!compresses_a8(fmt)) { + continue; + } SkAutoDataUnref data(SkTextureCompressor::CompressBitmapToFormat(bitmap, fmt)); REPORTER_ASSERT(reporter, NULL == data); } @@ -69,6 +98,9 @@ DEF_TEST(CompressAlphaFailColorType, reporter) { for (int i = 0; i < SkTextureCompressor::kFormatCnt; ++i) { const SkTextureCompressor::Format fmt = static_cast<SkTextureCompressor::Format>(i); + if (!compresses_a8(fmt)) { + continue; + } SkAutoDataUnref data(SkTextureCompressor::CompressBitmapToFormat(bitmap, fmt)); REPORTER_ASSERT(reporter, NULL == data); } @@ -134,10 +166,7 @@ DEF_TEST(CompressCheckerboard, reporter) { // Ignore formats for RGBA data, since the decompressed buffer // won't match the size and contents of the original. - // TODO: Create separate tests for RGB and RGBA data once - // ASTC and ETC1 decompression is implemented. - if (SkTextureCompressor::kASTC_12x12_Format == fmt || - SkTextureCompressor::kETC1_Format == fmt) { + if (!decompresses_a8(fmt) || !compresses_a8(fmt)) { continue; } |