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