• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
SkTransparentShader()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 
SkTransparentShader(SkFlattenableReadBuffer & buffer)35     SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
36 
Create(SkFlattenableReadBuffer & buffer)37     static SkFlattenable* Create(SkFlattenableReadBuffer& buffer) {
38         return SkNEW_ARGS(SkTransparentShader, (buffer));
39     }
40 
41     typedef SkShader INHERITED;
42 };
43 
44 #endif
45 
46