11c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org/* 21c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org * Copyright 2013 Google Inc. 31c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org * 41c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 51c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org * found in the LICENSE file. 61c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org */ 71c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 81c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org#ifndef SkComposeImageFilter_DEFINED 91c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org#define SkComposeImageFilter_DEFINED 101c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 111c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org#include "SkImageFilter.h" 121c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 131c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.orgclass SK_API SkComposeImageFilter : public SkImageFilter { 141c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.orgpublic: 151c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org virtual ~SkComposeImageFilter(); 161c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 179fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed static SkImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) { 189fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed if (NULL == outer) { 199fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed return SkSafeRef(inner); 209fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed } 219fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed if (NULL == inner) { 229fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed return SkRef(outer); 239fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed } 249ea3d57fde28a5fe4487a111dc3dd49418235e5esenorblanco SkImageFilter* inputs[2] = { outer, inner }; 259ea3d57fde28a5fe4487a111dc3dd49418235e5esenorblanco return SkNEW_ARGS(SkComposeImageFilter, (inputs)); 26cac5fd597f6e2495f50aaa6bcbe3dadc56f0b977commit-bot@chromium.org } 2736352bf5e38f45a70ee4f4fc132a38048d38206dmtklein void computeFastBounds(const SkRect& src, SkRect* dst) const override; 28cac5fd597f6e2495f50aaa6bcbe3dadc56f0b977commit-bot@chromium.org 29f3f5bad7ded35265c0b5d042cc4174386b197a33robertphillips SK_TO_STRING_OVERRIDE() 301c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter) 311c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 321c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.orgprotected: 339fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed explicit SkComposeImageFilter(SkImageFilter* inputs[2]) : INHERITED(2, inputs) { 349fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed SkASSERT(inputs[0]); 359fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed SkASSERT(inputs[1]); 369fa60daad4d5f54c0dbe3dbcc7608a8f6d721187reed } 374cb543d6057b692e1099e9f115155f0bf323a0c8senorblanco@chromium.org virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&, 3836352bf5e38f45a70ee4f4fc132a38048d38206dmtklein SkBitmap* result, SkIPoint* loc) const override; 3936352bf5e38f45a70ee4f4fc132a38048d38206dmtklein bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) const override; 401c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 411c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.orgprivate: 421c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org typedef SkImageFilter INHERITED; 431c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org}; 441c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org 451c4c9ef43747b42d2c31b5f17fe5e054fb3fee64commit-bot@chromium.org#endif 46