Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: tests/BitmapTransformerTest.cpp

Issue 14267031: ARGB image encoder for checksums. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Something which can actually be checked in. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/ARGBImageEncoderTest.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
-}
« no previous file with comments | « tests/ARGBImageEncoderTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698