SkTransparentShader.h revision 6806fe87e0b39e283291c1a1c7d1d864230aa2aa
1/*
2 * Copyright 2006 The Android Open Source Project
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 SkTransparentShader_DEFINED
9#define SkTransparentShader_DEFINED
10
11#include "SkShader.h"
12
13class SK_API SkTransparentShader : public SkShader {
14public:
15    SkTransparentShader() {}
16
17    virtual uint32_t getFlags() SK_OVERRIDE;
18    virtual bool    setContext(const SkBitmap& device,
19                               const SkPaint& paint,
20                               const SkMatrix& matrix) SK_OVERRIDE;
21    virtual void    shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
22    virtual void    shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE;
23
24    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTransparentShader)
25
26private:
27    // these are a cache from the call to setContext()
28    const SkBitmap* fDevice;
29    uint8_t         fAlpha;
30
31    SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
32
33    typedef SkShader INHERITED;
34};
35
36#endif
37