123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #include "include/core/SkBitmap.h"
- #include "include/core/SkCanvas.h"
- #include "include/effects/SkHighContrastFilter.h"
- #include "tests/Test.h"
- DEF_TEST(HighContrastFilter_FilterImage, reporter) {
- SkHighContrastConfig config;
- config.fInvertStyle = SkHighContrastConfig::InvertStyle::kInvertLightness;
- int w = 10, h = 10;
- SkBitmap filterResult, paintResult;
- filterResult.allocN32Pixels(w, h);
- SkCanvas canvasFilter(filterResult);
- canvasFilter.clear(0x00000000);
- paintResult.allocN32Pixels(w, h);
- SkCanvas canvasPaint(paintResult);
- canvasPaint.clear(0x00000000);
- SkPaint paint;
- paint.setColor(SK_ColorBLUE);
- SkRect r = SkRect::MakeLTRB(SkIntToScalar(2), SkIntToScalar(2),
- SkIntToScalar(8), SkIntToScalar(8));
- canvasPaint.drawRect(r, paint);
- paint.setColorFilter(SkHighContrastFilter::Make(config));
- canvasFilter.drawRect(r, paint);
- for (int y = r.top(); y < r.bottom(); ++y) {
- for (int x = r.left(); x < r.right(); ++x) {
- SkColor paintColor = paintResult.getColor(x, y);
- SkColor filterColor = filterResult.getColor(x, y);
- REPORTER_ASSERT(
- reporter, filterColor ==
- paint.getColorFilter()->filterColor(paintColor));
- }
- }
- }
- DEF_TEST(HighContrastFilter_SanityCheck, reporter) {
- SkHighContrastConfig config;
- config.fInvertStyle = SkHighContrastConfig::InvertStyle::kInvertLightness;
- sk_sp<SkColorFilter> filter = SkHighContrastFilter::Make(config);
- SkColor white_inverted = filter->filterColor(SK_ColorWHITE);
- REPORTER_ASSERT(reporter, white_inverted == SK_ColorBLACK);
- SkColor black_inverted = filter->filterColor(SK_ColorBLACK);
- REPORTER_ASSERT(reporter, black_inverted == SK_ColorWHITE);
- }
- DEF_TEST(HighContrastFilter_InvalidInputs, reporter) {
- SkHighContrastConfig config;
- REPORTER_ASSERT(reporter, config.isValid());
- // Valid invert style
- config.fInvertStyle = SkHighContrastConfig::InvertStyle::kInvertBrightness;
- REPORTER_ASSERT(reporter, config.isValid());
- config.fInvertStyle = SkHighContrastConfig::InvertStyle::kInvertLightness;
- REPORTER_ASSERT(reporter, config.isValid());
- sk_sp<SkColorFilter> filter = SkHighContrastFilter::Make(config);
- REPORTER_ASSERT(reporter, filter);
- // Invalid invert style
- config.fInvertStyle = static_cast<SkHighContrastConfig::InvertStyle>(999);
- REPORTER_ASSERT(reporter, !config.isValid());
- filter = SkHighContrastFilter::Make(config);
- REPORTER_ASSERT(reporter, !filter);
- // Valid contrast
- config.fInvertStyle = SkHighContrastConfig::InvertStyle::kInvertBrightness;
- config.fContrast = 0.5f;
- REPORTER_ASSERT(reporter, config.isValid());
- filter = SkHighContrastFilter::Make(config);
- REPORTER_ASSERT(reporter, filter);
- // Invalid contrast
- config.fContrast = 1.1f;
- REPORTER_ASSERT(reporter, !config.isValid());
- filter = SkHighContrastFilter::Make(config);
- REPORTER_ASSERT(reporter, !filter);
- }
|