Home | History | Annotate | Download | only in core
      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