aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2016-11-15 16:44:34 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-16 15:38:11 +0000
commitd47067392848ba132d4e86ffbeebe2dcacda9534 (patch)
tree456bd4182524d55f19117d8e726bacca50059fa8 /tests
parent988283c89458442f65d961f2746a9f271a39c31e (diff)
make SkXfermode.h go away
This is step one: - make SkXfermode useless to public clients - everything they should need is in SkBlendMode.h Step two: - remove SkXfermode.h entirely (since skia core will already be using SkXfermodePriv.h) BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4534 Change-Id: If2cea9f71df92430ed6644edb98dd306c5572cbc Reviewed-on: https://skia-review.googlesource.com/4534 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/BlendTest.cpp33
-rw-r--r--tests/RecordingXfermodeTest.cpp3
-rw-r--r--tests/SkColor4fTest.cpp51
-rw-r--r--tests/XfermodeTest.cpp55
4 files changed, 2 insertions, 140 deletions
diff --git a/tests/BlendTest.cpp b/tests/BlendTest.cpp
index ca9e46efd3..cd5e8efba7 100644
--- a/tests/BlendTest.cpp
+++ b/tests/BlendTest.cpp
@@ -67,36 +67,3 @@ DEF_TEST(Blend_byte_multiply, r) {
};
for (auto multiply : perfect) { REPORTER_ASSERT(r, test(multiply).diffs == 0); }
}
-
-DEF_TEST(Blend_premul_begets_premul, r) {
- // This test is quite slow, even if you have enough cores to run each mode in parallel.
- if (!r->allowExtendedTest()) {
- return;
- }
-
- // No matter what xfermode we use, premul inputs should create premul outputs.
- auto test_mode = [&](int m) {
- SkXfermode::Mode mode = (SkXfermode::Mode)m;
- if (mode == SkXfermode::kSrcOver_Mode) {
- return; // TODO: can't create a SrcOver xfermode.
- }
- auto xfermode(SkXfermode::Make(mode));
- SkASSERT(xfermode);
- // We'll test all alphas and legal color values, assuming all colors work the same.
- // This is not true for non-separable blend modes, but this test still can't hurt.
- for (int sa = 0; sa <= 255; sa++) {
- for (int da = 0; da <= 255; da++) {
- for (int s = 0; s <= sa; s++) {
- for (int d = 0; d <= da; d++) {
- SkPMColor src = SkPackARGB32(sa, s, s, s),
- dst = SkPackARGB32(da, d, d, d);
- xfermode->xfer32(&dst, &src, 1, nullptr); // To keep it simple, no AA.
- if (!SkPMColorValid(dst)) {
- ERRORF(r, "%08x is not premul using %s", dst, SkXfermode::ModeName(mode));
- }
- }}}}
- };
-
- // Parallelism helps speed things up on my desktop from ~725s to ~50s.
- SkTaskGroup().batch(SkXfermode::kLastMode, test_mode);
-}
diff --git a/tests/RecordingXfermodeTest.cpp b/tests/RecordingXfermodeTest.cpp
index 32aec36f9f..db4262c7e9 100644
--- a/tests/RecordingXfermodeTest.cpp
+++ b/tests/RecordingXfermodeTest.cpp
@@ -12,6 +12,7 @@
#include "../include/core/SkStream.h"
#include "../include/core/SkString.h"
#include "../include/core/SkPictureRecorder.h"
+#include "../src/core/SkBlendModePriv.h"
#include <cstring>
// Verify that replay of a recording into a clipped canvas
@@ -160,7 +161,7 @@ DEF_TEST(SkRecordingAccuracyXfermode, reporter) {
if (memcmp(goldenBM.getPixels(), pictureBM.getPixels(), pixelsSize)) {
numErrors++;
errors.appendf("For SkXfermode %d %s: SkPictureRecorder bitmap is wrong\n",
- iMode, SkXfermode::ModeName(mode));
+ iMode, SkBlendMode_Name(mode));
}
#endif
}
diff --git a/tests/SkColor4fTest.cpp b/tests/SkColor4fTest.cpp
index 028b99f413..f268e5f42d 100644
--- a/tests/SkColor4fTest.cpp
+++ b/tests/SkColor4fTest.cpp
@@ -23,15 +23,6 @@ static bool nearly_equal(float a, float b, float tol = kTolerance) {
return fabsf(a - b) <= tol;
}
-static bool nearly_equal(const SkPM4f a, const SkPM4f& b, float tol = kTolerance) {
- for (int i = 0; i < 4; ++i) {
- if (!nearly_equal(a.fVec[i], b.fVec[i], tol)) {
- return false;
- }
- }
- return true;
-}
-
DEF_TEST(SkColor4f_FromColor, reporter) {
const struct {
SkColor fC;
@@ -75,45 +66,3 @@ DEF_TEST(Color4f_premul, reporter) {
REPORTER_ASSERT(reporter, nearly_equal(pm4.b(), c4.fA * c4.fB));
}
}
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
-
-static bool compare_procs(SkXfermodeProc proc32, SkXfermodeProc4f proc4f) {
- const float kTolerance = 1.0f / 255;
-
- const SkColor colors[] = {
- 0, 0xFF000000, 0xFFFFFFFF, 0x80FF0000
- };
-
- for (auto s32 : colors) {
- SkPMColor s_pm32 = SkPreMultiplyColor(s32);
- SkPM4f s_pm4f = SkColor4f::FromColor(s32).premul();
- for (auto d32 : colors) {
- SkPMColor d_pm32 = SkPreMultiplyColor(d32);
- SkPM4f d_pm4f = SkColor4f::FromColor(d32).premul();
-
- SkPMColor r32 = proc32(s_pm32, d_pm32);
- SkPM4f r4f = proc4f(s_pm4f, d_pm4f);
-
- SkPM4f r32_4f = SkPM4f::FromPMColor(r32);
- if (!nearly_equal(r4f, r32_4f, kTolerance)) {
- return false;
- }
- }
- }
- return true;
-}
-
-// Check that our Proc and Proc4f return (nearly) the same results
-//
-DEF_TEST(Color4f_xfermode_proc4f, reporter) {
- // TODO: extend xfermodes so that all cases can be tested.
- //
- for (int mode = (int)SkBlendMode::kClear; mode <= (int)SkBlendMode::kScreen; ++mode) {
- SkXfermodeProc proc32 = SkXfermode::GetProc((SkBlendMode)mode);
- SkXfermodeProc4f proc4f = SkXfermode::GetProc4f((SkBlendMode)mode);
- REPORTER_ASSERT(reporter, compare_procs(proc32, proc4f));
- }
-}
diff --git a/tests/XfermodeTest.cpp b/tests/XfermodeTest.cpp
deleted file mode 100644
index c3a4d96785..0000000000
--- a/tests/XfermodeTest.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkColor.h"
-#include "SkXfermode.h"
-#include "Test.h"
-
-#define ILLEGAL_MODE ((SkXfermode::Mode)-1)
-
-static void test_asMode(skiatest::Reporter* reporter) {
- for (int mode = 0; mode <= SkXfermode::kLastMode; mode++) {
- auto xfer = SkXfermode::Make((SkXfermode::Mode) mode);
-
- SkXfermode::Mode reportedMode = ILLEGAL_MODE;
- REPORTER_ASSERT(reporter, reportedMode != mode);
-
- // test IsMode
- REPORTER_ASSERT(reporter, SkXfermode::AsMode(xfer, &reportedMode));
- REPORTER_ASSERT(reporter, reportedMode == mode);
-
- // repeat that test, but with asMode instead
- if (xfer) {
- reportedMode = (SkXfermode::Mode) -1;
- REPORTER_ASSERT(reporter, xfer->asMode(&reportedMode));
- REPORTER_ASSERT(reporter, reportedMode == mode);
- } else {
- REPORTER_ASSERT(reporter, SkXfermode::kSrcOver_Mode == mode);
- }
- }
-}
-
-static void test_IsMode(skiatest::Reporter* reporter) {
- REPORTER_ASSERT(reporter, SkXfermode::IsMode(nullptr,
- SkXfermode::kSrcOver_Mode));
-
- for (int i = 0; i <= SkXfermode::kLastMode; ++i) {
- SkXfermode::Mode mode = (SkXfermode::Mode)i;
-
- auto xfer = SkXfermode::Make(mode);
- REPORTER_ASSERT(reporter, SkXfermode::IsMode(xfer, mode));
-
- if (SkXfermode::kSrcOver_Mode != mode) {
- REPORTER_ASSERT(reporter, !SkXfermode::IsMode(nullptr, mode));
- }
- }
-}
-
-DEF_TEST(Xfermode, reporter) {
- test_asMode(reporter);
- test_IsMode(reporter);
-}