Home | History | Annotate | Download | only in core
      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:
     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     SK_DEVELOPER_TO_STRING()
     34     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmptyShader)
     35 
     36 protected:
     37     SkEmptyShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
     38 
     39 private:
     40     typedef SkShader INHERITED;
     41 };
     42 
     43 #endif
     44