blob: f6375847182da1d5ed022ff913e3c695bf9f127d [file] [log] [blame]
reed@google.com02f65f22012-08-06 21:20:05 +00001/*
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 // override
21 virtual uint32_t getFlags();
22 virtual bool setContext(const SkBitmap& device, const SkPaint& paint,
23 const SkMatrix& matrix);
24 virtual void shadeSpan(int x, int y, SkPMColor result[], int count);
25 virtual void shadeSpan16(int x, int y, uint16_t result[], int count);
26 virtual void beginSession();
27 virtual void endSession();
28
29 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader)
30
31protected:
32 SkFilterShader(SkFlattenableReadBuffer& );
33 virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
34
35private:
36 SkShader* fShader;
37 SkColorFilter* fFilter;
38
39 typedef SkShader INHERITED;
40};
41
42#endif