11a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org/* 21a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org * Copyright 2013 Google Inc. 31a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org * 41a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 51a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org * found in the LICENSE file. 61a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org */ 71a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 81a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org#ifndef SkTileImageFilter_DEFINED 91a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org#define SkTileImageFilter_DEFINED 101a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 111a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org#include "SkImageFilter.h" 121a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 1355f5682523f66c7a0d9696ff9f7c50cc8a6d6b45sugoi@google.comclass SK_API SkTileImageFilter : public SkImageFilter { 141a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.orgpublic: 15cac5fd597f6e2495f50aaa6bcbe3dadc56f0b977commit-bot@chromium.org /** Create a tile image filter 165ea95df02de9cd774d0b84d1341599bbd9c0d8dbreed @param src Defines the pixels to tile 175ea95df02de9cd774d0b84d1341599bbd9c0d8dbreed @param dst Defines the pixels where tiles are drawn 181a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org @param input Input from which the subregion defined by srcRect will be tiled 191a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org */ 20534c270465a9824893d5c9d6c5bacef7726cc389robertphillips static sk_sp<SkImageFilter> Make(const SkRect& src, 21534c270465a9824893d5c9d6c5bacef7726cc389robertphillips const SkRect& dst, 22534c270465a9824893d5c9d6c5bacef7726cc389robertphillips sk_sp<SkImageFilter> input); 231a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 24e5e79840ef38ab1d3f03abcf1b2df66fb9940018senorblanco SkIRect onFilterBounds(const SkIRect& src, const SkMatrix&, MapDirection) const override; 25e5e79840ef38ab1d3f03abcf1b2df66fb9940018senorblanco SkIRect onFilterNodeBounds(const SkIRect&, const SkMatrix&, MapDirection) const override; 26e5e79840ef38ab1d3f03abcf1b2df66fb9940018senorblanco SkRect computeFastBounds(const SkRect& src) const override; 271a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 28f3f5bad7ded35265c0b5d042cc4174386b197a33robertphillips SK_TO_STRING_OVERRIDE() 291a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter) 301a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 311a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.orgprotected: 3295376a0dde3cdf414eb97a20cef3af19ed7e0151schenney void flatten(SkWriteBuffer& buffer) const override; 3395376a0dde3cdf414eb97a20cef3af19ed7e0151schenney 34c14b978613c663b97ff0b08e0013dc72bb66d46drobertphillips sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&, 35c14b978613c663b97ff0b08e0013dc72bb66d46drobertphillips SkIPoint* offset) const override; 366d72ed918d8763e65899183c2d12b06958c791f4Matt Sarett sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override; 37c14b978613c663b97ff0b08e0013dc72bb66d46drobertphillips 3895376a0dde3cdf414eb97a20cef3af19ed7e0151schenneyprivate: 39534c270465a9824893d5c9d6c5bacef7726cc389robertphillips SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, sk_sp<SkImageFilter> input) 40534c270465a9824893d5c9d6c5bacef7726cc389robertphillips : INHERITED(&input, 1, nullptr), fSrcRect(srcRect), fDstRect(dstRect) {} 415ea95df02de9cd774d0b84d1341599bbd9c0d8dbreed 421a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org SkRect fSrcRect; 431a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org SkRect fDstRect; 44c14b978613c663b97ff0b08e0013dc72bb66d46drobertphillips 45c14b978613c663b97ff0b08e0013dc72bb66d46drobertphillips typedef SkImageFilter INHERITED; 461a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org}; 471a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org 481a4fb70c8a04db2d92ec821555f91218a989031dcommit-bot@chromium.org#endif 49