aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar krajcevski <krajcevski@google.com>2014-08-07 12:58:38 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-07 12:58:38 -0700
commit95b1b3d82d227141647777d83324aa570b530096 (patch)
treed173f7f26dc3fb685f1a451e212445e7e74daec9 /tests
parent34580f75d8f555b2c15a232fb899704b5dd57f25 (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.cpp5
-rw-r--r--tests/TextureCompressionTest.cpp37
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;
}