1cb93a386Sopenharmony_ci/* 2cb93a386Sopenharmony_ci * Copyright 2015 Google Inc. 3cb93a386Sopenharmony_ci * 4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be 5cb93a386Sopenharmony_ci * found in the LICENSE file. 6cb93a386Sopenharmony_ci */ 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ci#include "include/core/SkBitmap.h" 9cb93a386Sopenharmony_ci#include "include/core/SkImage.h" 10cb93a386Sopenharmony_ci#include "include/core/SkRegion.h" 11cb93a386Sopenharmony_ci#include "include/effects/SkImageFilters.h" 12cb93a386Sopenharmony_ci#include "tests/Test.h" 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cistatic void test_flattenable(skiatest::Reporter* r, 15cb93a386Sopenharmony_ci const SkFlattenable* f, 16cb93a386Sopenharmony_ci const char* desc) { 17cb93a386Sopenharmony_ci if (f) { 18cb93a386Sopenharmony_ci SkFlattenable::Factory factory = f->getFactory(); 19cb93a386Sopenharmony_ci REPORTER_ASSERT(r, factory); 20cb93a386Sopenharmony_ci if (factory) { 21cb93a386Sopenharmony_ci if (!SkFlattenable::FactoryToName(factory)) { 22cb93a386Sopenharmony_ci ERRORF(r, "SkFlattenable::FactoryToName() fails with %s.", desc); 23cb93a386Sopenharmony_ci } 24cb93a386Sopenharmony_ci } 25cb93a386Sopenharmony_ci } 26cb93a386Sopenharmony_ci} 27cb93a386Sopenharmony_ci 28cb93a386Sopenharmony_ciDEF_TEST(FlattenableFactoryToName, r) { 29cb93a386Sopenharmony_ci SkIRect rects[2]; 30cb93a386Sopenharmony_ci rects[0] = SkIRect::MakeXYWH(0, 150, 500, 200); 31cb93a386Sopenharmony_ci rects[1] = SkIRect::MakeXYWH(150, 0, 200, 500); 32cb93a386Sopenharmony_ci SkRegion region; 33cb93a386Sopenharmony_ci region.setRects(rects, 2); 34cb93a386Sopenharmony_ci sk_sp<SkImageFilter> filter(SkImageFilters::AlphaThreshold(region, 0.2f, 0.7f, nullptr)); 35cb93a386Sopenharmony_ci test_flattenable(r, filter.get(), "SkImageFilters::AlphaThreshold()"); 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci SkBitmap bm; 38cb93a386Sopenharmony_ci bm.allocN32Pixels(8, 8); 39cb93a386Sopenharmony_ci bm.eraseColor(SK_ColorCYAN); 40cb93a386Sopenharmony_ci sk_sp<SkImage> image(bm.asImage()); 41cb93a386Sopenharmony_ci test_flattenable(r, image->makeShader(SkSamplingOptions()).get(), "SkImage::newShader()"); 42cb93a386Sopenharmony_ci} 43