1 /* 2 * Copyright 2012 The Android Open Source Project 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkDeviceImageFilterProxy_DEFINED 9 #define SkDeviceImageFilterProxy_DEFINED 10 11 #include "SkImageFilter.h" 12 13 class SkDeviceImageFilterProxy : public SkImageFilter::Proxy { 14 public: 15 SkDeviceImageFilterProxy(SkBaseDevice* device) : fDevice(device) {} 16 17 virtual SkBaseDevice* createDevice(int w, int h) SK_OVERRIDE { 18 return fDevice->createCompatibleDeviceForImageFilter(SkImageInfo::MakeN32Premul(w, h)); 19 } 20 virtual bool canHandleImageFilter(const SkImageFilter* filter) SK_OVERRIDE { 21 return fDevice->canHandleImageFilter(filter); 22 } 23 virtual bool filterImage(const SkImageFilter* filter, const SkBitmap& src, 24 const SkImageFilter::Context& ctx, 25 SkBitmap* result, SkIPoint* offset) SK_OVERRIDE { 26 return fDevice->filterImage(filter, src, ctx, result, offset); 27 } 28 29 private: 30 SkBaseDevice* fDevice; 31 }; 32 33 #endif 34