| Index: tests/BitmapTransformerTest.cpp
|
| ===================================================================
|
| --- tests/BitmapTransformerTest.cpp (revision 8815)
|
| +++ tests/BitmapTransformerTest.cpp (working copy)
|
| @@ -1,97 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2012 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -/**
|
| - * Tests for SkBitmapTransformer.h and SkBitmapTransformer.cpp
|
| - */
|
| -
|
| -#include "Test.h"
|
| -#include "SkBitmap.h"
|
| -#include "SkBitmapTransformer.h"
|
| -
|
| -namespace skiatest {
|
| - class BitmapTransformerTestClass : public Test {
|
| - public:
|
| - static Test* Factory(void*) {return SkNEW(BitmapTransformerTestClass); }
|
| - protected:
|
| - virtual void onGetName(SkString* name) { name->set("BitmapTransformer"); }
|
| - virtual void onRun(Reporter* reporter) {
|
| - this->fReporter = reporter;
|
| - RunTest();
|
| - }
|
| - private:
|
| - void RunTest() {
|
| - SkBitmap bitmap;
|
| - SkBitmap::Config supportedConfig = SkBitmap::kARGB_8888_Config;
|
| - SkBitmap::Config unsupportedConfig = SkBitmap::kARGB_4444_Config;
|
| - SkBitmapTransformer::PixelFormat supportedPixelFormat =
|
| - SkBitmapTransformer::kARGB_8888_Premul_PixelFormat;
|
| - const int kWidth = 55;
|
| - const int kHeight = 333;
|
| -
|
| - // Transformations that we know are unsupported:
|
| - {
|
| - bitmap.setConfig(unsupportedConfig, kWidth, kHeight);
|
| - SkBitmapTransformer transformer = SkBitmapTransformer(bitmap, supportedPixelFormat);
|
| - REPORTER_ASSERT(fReporter, !transformer.isValid());
|
| - }
|
| -
|
| - // Valid transformations:
|
| - {
|
| - // Bytes we expect to get:
|
| - const int kWidth = 3;
|
| - const int kHeight = 5;
|
| - const unsigned char comparisonBuffer[] = {
|
| - // kHeight rows, each with kWidth pixels, premultiplied ARGB for each pixel
|
| - 0xff,0xff,0x00,0x00, 0xff,0xff,0x00,0x00, 0xff,0xff,0x00,0x00, // red
|
| - 0xff,0x00,0xff,0x00, 0xff,0x00,0xff,0x00, 0xff,0x00,0xff,0x00, // green
|
| - 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, // blue
|
| - 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, // blue
|
| - 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, 0xff,0x00,0x00,0xff, // blue
|
| - };
|
| -
|
| - // A bitmap that should generate the above bytes:
|
| - bitmap.setConfig(supportedConfig, kWidth, kHeight);
|
| - REPORTER_ASSERT(fReporter, bitmap.allocPixels());
|
| - bitmap.setIsOpaque(true);
|
| - bitmap.eraseColor(SK_ColorBLUE);
|
| - bitmap.lockPixels();
|
| - // Change rows [0,1] from blue to [red,green].
|
| - SkColor oldColor = SK_ColorBLUE;
|
| - SkColor newColors[] = {SK_ColorRED, SK_ColorGREEN};
|
| - for (int y = 0; y <= 1; y++) {
|
| - for (int x = 0; x < kWidth; x++) {
|
| - REPORTER_ASSERT(fReporter, bitmap.getColor(x, y) == oldColor);
|
| - SkPMColor* pixel = static_cast<SkPMColor *>(bitmap.getAddr(x, y));
|
| - *pixel = SkPreMultiplyColor(newColors[y]);
|
| - REPORTER_ASSERT(fReporter, bitmap.getColor(x, y) == newColors[y]);
|
| - }
|
| - }
|
| - bitmap.unlockPixels();
|
| -
|
| - // Transform the bitmap and confirm we got the expected results.
|
| - SkBitmapTransformer transformer = SkBitmapTransformer(bitmap, supportedPixelFormat);
|
| - REPORTER_ASSERT(fReporter, transformer.isValid());
|
| - REPORTER_ASSERT(fReporter, transformer.bytesNeededPerRow() == kWidth * 4);
|
| - REPORTER_ASSERT(fReporter, transformer.bytesNeededTotal() == kWidth * kHeight * 4);
|
| - int bufferSize = transformer.bytesNeededTotal();
|
| - SkAutoMalloc pixelBufferManager(bufferSize);
|
| - char *pixelBuffer = static_cast<char *>(pixelBufferManager.get());
|
| - REPORTER_ASSERT(fReporter,
|
| - transformer.copyBitmapToPixelBuffer(pixelBuffer, bufferSize));
|
| - REPORTER_ASSERT(fReporter, bufferSize == sizeof(comparisonBuffer));
|
| - REPORTER_ASSERT(fReporter, memcmp(pixelBuffer, comparisonBuffer, bufferSize) == 0);
|
| - }
|
| -
|
| - }
|
| -
|
| - Reporter* fReporter;
|
| - };
|
| -
|
| - static TestRegistry gReg(BitmapTransformerTestClass::Factory);
|
| -}
|
|
|