11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#include "Test.h" 905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#include "SkBitmap.h" 1005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 1105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenbergerstatic void TestGetColor(skiatest::Reporter* reporter) { 1205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger static const struct Rec { 1305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger SkBitmap::Config fConfig; 1405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger SkColor fInColor; 1505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger SkColor fOutColor; 1605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger } gRec[] = { 1705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger // todo: add some tests that involve alpha, so we exercise the 1805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger // unpremultiply aspect of getColor() 1905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kA8_Config, 0xFF000000, 0xFF000000 }, 2005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kA8_Config, 0, 0 }, 2105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kARGB_4444_Config, 0xFF224466, 0xFF224466 }, 2205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kARGB_4444_Config, 0, 0 }, 2305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kRGB_565_Config, 0xFF00FF00, 0xFF00FF00 }, 2405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kRGB_565_Config, 0xFFFF00FF, 0xFFFF00FF }, 2505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kARGB_8888_Config, 0xFFFFFFFF, 0xFFFFFFFF }, 2605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kARGB_8888_Config, 0, 0 }, 2705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger { SkBitmap::kARGB_8888_Config, 0xFF224466, 0xFF224466 }, 2805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger }; 2905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 3005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { 3105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger SkBitmap bm; 3205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger uint32_t storage[1]; 3305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger bm.setConfig(gRec[i].fConfig, 1, 1); 3405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger bm.setPixels(storage); 3505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger bm.eraseColor(gRec[i].fInColor); 3605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 3705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger SkColor c = bm.getColor(0, 0); 3805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger REPORTER_ASSERT(reporter, c == gRec[i].fOutColor); 3905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger } 4005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger} 4105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 4205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#include "TestClassDef.h" 4305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek SollenbergerDEFINE_TESTCLASS("GetColor", TestGetColorClass, TestGetColor) 44