Home | History | Annotate | Download | only in effects
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      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 #ifndef SkTransparentShader_DEFINED
     11 #define SkTransparentShader_DEFINED
     12 
     13 #include "SkShader.h"
     14 
     15 class SkTransparentShader : public SkShader {
     16 public:
     17     SkTransparentShader() {}
     18 
     19     virtual uint32_t getFlags() SK_OVERRIDE;
     20     virtual bool    setContext( const SkBitmap& device,
     21                                 const SkPaint& paint,
     22                                 const SkMatrix& matrix) SK_OVERRIDE;
     23     virtual void    shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
     24     virtual void    shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE;
     25 
     26     // overrides for SkFlattenable
     27     virtual Factory getFactory() SK_OVERRIDE;
     28     virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
     29 
     30 private:
     31     // these are a cache from the call to setContext()
     32     const SkBitmap* fDevice;
     33     uint8_t         fAlpha;
     34 
     35     SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
     36 
     37     static SkFlattenable* Create(SkFlattenableReadBuffer& buffer) {
     38         return SkNEW_ARGS(SkTransparentShader, (buffer));
     39     }
     40 
     41     typedef SkShader INHERITED;
     42 };
     43 
     44 #endif
     45 
     46