11cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com/* 21cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com * Copyright 2012 The Android Open Source Project 31cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com * 41cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com * Use of this source code is governed by a BSD-style license that can be 51cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com * found in the LICENSE file. 61cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com */ 71cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 81cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 91cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com#ifndef SkMagnifierImageFilter_DEFINED 101cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com#define SkMagnifierImageFilter_DEFINED 111cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 121cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com#include "SkRect.h" 131cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com#include "SkImageFilter.h" 141cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 151cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.comclass SK_API SkMagnifierImageFilter : public SkImageFilter { 161cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.compublic: 171cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com SkMagnifierImageFilter(SkRect srcRect, SkScalar inset); 181cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 19a9759972ed2bd08983fea7b69ec2e791bae59a0csenorblanco@chromium.org#if SK_SUPPORT_GPU 20e84c14ae392a6a2f959a4c376dc783a8f28f42aesenorblanco@chromium.org virtual bool asNewEffect(GrEffectRef** effect, GrTexture* texture, const SkIPoint& offset) const SK_OVERRIDE; 21a9759972ed2bd08983fea7b69ec2e791bae59a0csenorblanco@chromium.org#endif 221cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 231cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter) 241cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 251cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.comprotected: 261cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com explicit SkMagnifierImageFilter(SkFlattenableReadBuffer& buffer); 271cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 281cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 291cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, 301cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com SkBitmap* result, SkIPoint* offset) SK_OVERRIDE; 311cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 321cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.comprivate: 331cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com SkRect fSrcRect; 341cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com SkScalar fInset; 351cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com typedef SkImageFilter INHERITED; 361cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com}; 371cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com 381cc208e532e825b8bb58c0330b88154e9370b50fbsalomon@google.com#endif 39