Home | History | Annotate | Download | only in core
      1 /*
      2  * Copyright 2012 Google Inc.
      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 SkFilterShader_DEFINED
      9 #define SkFilterShader_DEFINED
     10 
     11 #include "SkShader.h"
     12 
     13 class SkColorFilter;
     14 
     15 class SkFilterShader : public SkShader {
     16 public:
     17     SkFilterShader(SkShader* shader, SkColorFilter* filter);
     18     virtual ~SkFilterShader();
     19 
     20     virtual uint32_t getFlags() SK_OVERRIDE;
     21     virtual bool setContext(const SkBitmap&, const SkPaint&,
     22                             const SkMatrix&) SK_OVERRIDE;
     23     virtual void endContext() SK_OVERRIDE;
     24     virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
     25     virtual void shadeSpan16(int x, int y, uint16_t[], int count) SK_OVERRIDE;
     26 
     27     SK_DEVELOPER_TO_STRING()
     28     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader)
     29 
     30 protected:
     31     SkFilterShader(SkFlattenableReadBuffer& );
     32     virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
     33 
     34 private:
     35     SkShader*       fShader;
     36     SkColorFilter*  fFilter;
     37 
     38     typedef SkShader INHERITED;
     39 };
     40 
     41 #endif
     42