FlattenableFactoryToName.cpp revision f624204300d8cd3b2cdb933b144980ff56852d42
156fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo/* 256fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo * Copyright 2015 Google Inc. 356fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo * 456fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo * Use of this source code is governed by a BSD-style license that can be 556fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo * found in the LICENSE file. 656fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo */ 756fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo 856fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo#include "SkAlphaThresholdFilter.h" 956fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo#include "SkImage.h" 1056fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo#include "Test.h" 1156fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo 1256fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggostatic void test_flattenable(skiatest::Reporter* r, 1356fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo const SkFlattenable* f, 1456fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo const char* desc) { 1556fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo if (f) { 1656fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo SkFlattenable::Factory factory = f->getFactory(); 1756fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo REPORTER_ASSERT(r, factory); 1856fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo if (factory) { 1956fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo if (!SkFlattenable::FactoryToName(factory)) { 2056fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo ERRORF(r, "SkFlattenable::FactoryToName() fails with %s.", desc); 2156fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo } 2256fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo } 2356fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo } 2456fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo} 2556fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo 2656fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggoDEF_TEST(FlattenableFactoryToName, r) { 2756fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo SkIRect rects[2]; 2856fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo rects[0] = SkIRect::MakeXYWH(0, 150, 500, 200); 2956fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo rects[1] = SkIRect::MakeXYWH(150, 0, 200, 500); 3056fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo SkRegion region; 3156fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo region.setRects(rects, 2); 32f624204300d8cd3b2cdb933b144980ff56852d42robertphillips sk_sp<SkImageFilter> filter(SkAlphaThresholdFilter::Make(region, 0.2f, 0.7f, nullptr)); 33f624204300d8cd3b2cdb933b144980ff56852d42robertphillips test_flattenable(r, filter.get(), "SkAlphaThresholdFilter()"); 3456fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo 3556fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo SkBitmap bm; 3656fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo bm.allocN32Pixels(8, 8); 3756fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo bm.eraseColor(SK_ColorCYAN); 389ce9d6772df650ceb0511f275e1a83dffa78ff72reed sk_sp<SkImage> image(SkImage::MakeFromBitmap(bm)); 395671c5b9124f17d33bc14b6d347cdc6fe5d19dc8reed auto shader = image->makeShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode); 405671c5b9124f17d33bc14b6d347cdc6fe5d19dc8reed test_flattenable(r, shader.get(), "SkImage::newShader()"); 4156fbbfe609baf5a6a8e21615b4a78fe6a6e364e0scroggo} 42