SkTileImageFilter.h revision 4cb543d6057b692e1099e9f115155f0bf323a0c8
16f56ab789cb470620554d624c37f488285b3b04eDan Albert/* 26f56ab789cb470620554d624c37f488285b3b04eDan Albert * Copyright 2013 Google Inc. 36f56ab789cb470620554d624c37f488285b3b04eDan Albert * 46f56ab789cb470620554d624c37f488285b3b04eDan Albert * Use of this source code is governed by a BSD-style license that can be 56f56ab789cb470620554d624c37f488285b3b04eDan Albert * found in the LICENSE file. 66f56ab789cb470620554d624c37f488285b3b04eDan Albert */ 76f56ab789cb470620554d624c37f488285b3b04eDan Albert 86f56ab789cb470620554d624c37f488285b3b04eDan Albert#ifndef SkTileImageFilter_DEFINED 96f56ab789cb470620554d624c37f488285b3b04eDan Albert#define SkTileImageFilter_DEFINED 106f56ab789cb470620554d624c37f488285b3b04eDan Albert 116f56ab789cb470620554d624c37f488285b3b04eDan Albert#include "SkImageFilter.h" 126f56ab789cb470620554d624c37f488285b3b04eDan Albert 136f56ab789cb470620554d624c37f488285b3b04eDan Albertclass SK_API SkTileImageFilter : public SkImageFilter { 146f56ab789cb470620554d624c37f488285b3b04eDan Albert typedef SkImageFilter INHERITED; 156f56ab789cb470620554d624c37f488285b3b04eDan Albert 166f56ab789cb470620554d624c37f488285b3b04eDan Albertpublic: 176f56ab789cb470620554d624c37f488285b3b04eDan Albert /** Create a tile image filter 186f56ab789cb470620554d624c37f488285b3b04eDan Albert @param srcRect Defines the pixels to tile 196f56ab789cb470620554d624c37f488285b3b04eDan Albert @param dstRect Defines the pixels where tiles are drawn 206f56ab789cb470620554d624c37f488285b3b04eDan Albert @param input Input from which the subregion defined by srcRect will be tiled 216f56ab789cb470620554d624c37f488285b3b04eDan Albert */ 226f56ab789cb470620554d624c37f488285b3b04eDan Albert static SkTileImageFilter* Create(const SkRect& srcRect, const SkRect& dstRect, 236f56ab789cb470620554d624c37f488285b3b04eDan Albert SkImageFilter* input) { 246f56ab789cb470620554d624c37f488285b3b04eDan Albert return SkNEW_ARGS(SkTileImageFilter, (srcRect, dstRect, input)); 256f56ab789cb470620554d624c37f488285b3b04eDan Albert } 266f56ab789cb470620554d624c37f488285b3b04eDan Albert 276f56ab789cb470620554d624c37f488285b3b04eDan Albert virtual bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx, 286f56ab789cb470620554d624c37f488285b3b04eDan Albert SkBitmap* dst, SkIPoint* offset) const SK_OVERRIDE; 296f56ab789cb470620554d624c37f488285b3b04eDan Albert 306f56ab789cb470620554d624c37f488285b3b04eDan Albert SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter) 316f56ab789cb470620554d624c37f488285b3b04eDan Albert 326f56ab789cb470620554d624c37f488285b3b04eDan Albertprotected: 336f56ab789cb470620554d624c37f488285b3b04eDan Albert explicit SkTileImageFilter(SkReadBuffer& buffer); 346f56ab789cb470620554d624c37f488285b3b04eDan Albert 356f56ab789cb470620554d624c37f488285b3b04eDan Albert virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE; 366f56ab789cb470620554d624c37f488285b3b04eDan Albert 376f56ab789cb470620554d624c37f488285b3b04eDan Albert#ifdef SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS 386f56ab789cb470620554d624c37f488285b3b04eDan Albertpublic: 396f56ab789cb470620554d624c37f488285b3b04eDan Albert#endif 406f56ab789cb470620554d624c37f488285b3b04eDan Albert SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, SkImageFilter* input) 416f56ab789cb470620554d624c37f488285b3b04eDan Albert : INHERITED(input), fSrcRect(srcRect), fDstRect(dstRect) {} 426f56ab789cb470620554d624c37f488285b3b04eDan Albert 436f56ab789cb470620554d624c37f488285b3b04eDan Albertprivate: 446f56ab789cb470620554d624c37f488285b3b04eDan Albert SkRect fSrcRect; 456f56ab789cb470620554d624c37f488285b3b04eDan Albert SkRect fDstRect; 466f56ab789cb470620554d624c37f488285b3b04eDan Albert}; 476f56ab789cb470620554d624c37f488285b3b04eDan Albert 486f56ab789cb470620554d624c37f488285b3b04eDan Albert#endif 496f56ab789cb470620554d624c37f488285b3b04eDan Albert