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