SkFilterShader.h revision 1adcf8859cc9414591038e440e3f22382c8e4aa0
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 13class SkColorFilter; 14 15class SkFilterShader : public SkShader { 16public: 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_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader) 28 29protected: 30 SkFilterShader(SkFlattenableReadBuffer& ); 31 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 32 33private: 34 SkShader* fShader; 35 SkColorFilter* fFilter; 36 37 typedef SkShader INHERITED; 38}; 39 40#endif 41