blob: abb516557889bb8a713ae1990ecdf39ae976a545 [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
reed@google.coma641f3f2012-12-13 22:16:30 +000020 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;
reed@google.com02f65f22012-08-06 21:20:05 +000026
robertphillips@google.com76f9e932013-01-15 20:17:47 +000027 SK_DEVELOPER_TO_STRING()
reed@google.com02f65f22012-08-06 21:20:05 +000028 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader)
29
30protected:
commit-bot@chromium.org8b0e8ac2014-01-30 18:58:24 +000031 SkFilterShader(SkReadBuffer& );
32 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
reed@google.com02f65f22012-08-06 21:20:05 +000033
34private:
35 SkShader* fShader;
36 SkColorFilter* fFilter;
37
38 typedef SkShader INHERITED;
39};
40
41#endif