11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 The Android Open Source Project 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#ifndef SkBlurImageFilter_DEFINED 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define SkBlurImageFilter_DEFINED 111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkImageFilter.h" 131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerclass SK_API SkBlurImageFilter : public SkImageFilter { 151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerpublic: 161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkBlurImageFilter(SkScalar sigmaX, SkScalar sigmaY); 171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual bool asABlur(SkSize* sigma) const SK_OVERRIDE; 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { 211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger return SkNEW_ARGS(SkBlurImageFilter, (buffer)); 221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SK_DECLARE_FLATTENABLE_REGISTRAR() 251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprotected: 271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger explicit SkBlurImageFilter(SkFlattenableReadBuffer& buffer); 281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, 301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkBitmap* result, SkIPoint* offset) SK_OVERRIDE; 311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE; 321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprivate: 351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger SkSize fSigma; 361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger typedef SkImageFilter INHERITED; 371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger}; 381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif 401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 41