/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkRectShaderImageFilter_DEFINED #define SkRectShaderImageFilter_DEFINED #include "SkImageFilter.h" #include "SkRect.h" class SkShader; class SK_API SkRectShaderImageFilter : public SkImageFilter { public: /** * The SkShader object will have its refcnt increased as it becomes a member of the * SkRectShaderImageFilter object returned by this function. It cannot be NULL. * The region parameter is used to specify on which region the shader is applied. */ static SkRectShaderImageFilter* Create(SkShader* s, const SkRect& rect); virtual ~SkRectShaderImageFilter(); SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShaderImageFilter) protected: SkRectShaderImageFilter(SkFlattenableReadBuffer& buffer); virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, SkBitmap* result, SkIPoint* loc) SK_OVERRIDE; private: SkRectShaderImageFilter(SkShader* s, const SkRect& rect); SkShader* fShader; SkRect fRect; typedef SkImageFilter INHERITED; }; #endif