• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /*
3  * Copyright 2011 Google Inc.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 
9 
10 
11 #ifndef SkEmptyShader_DEFINED
12 #define SkEmptyShader_DEFINED
13 
14 #include "SkShader.h"
15 
16 /**
17  *  \class SkEmptyShader
18  *  A Shader that always draws nothing. Its setContext always returns false,
19  *  so it never expects that its shadeSpan() methods will get called.
20  */
21 class SK_API SkEmptyShader : public SkShader {
22 public:
SkEmptyShader()23     SkEmptyShader() {}
24 
25     virtual uint32_t getFlags() SK_OVERRIDE;
26     virtual uint8_t getSpan16Alpha() const SK_OVERRIDE;
27     virtual bool setContext(const SkBitmap&, const SkPaint&,
28                             const SkMatrix&) SK_OVERRIDE;
29     virtual void shadeSpan(int x, int y, SkPMColor span[], int count) SK_OVERRIDE;
30     virtual void shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE;
31     virtual void shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) SK_OVERRIDE;
32 
33 protected:
34     SkEmptyShader(SkFlattenableReadBuffer&);
35 
36     virtual Factory getFactory() SK_OVERRIDE;
37     virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
38 
39 private:
40     typedef SkShader INHERITED;
41 };
42 
43 #endif
44