SkTransparentShader.h revision 0f10f7bf1fb43ca6346dc220a076773b1f19a367
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_TO_STRING_OVERRIDE()
25    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTransparentShader)
26
27private:
28    // these are a cache from the call to setContext()
29    const SkBitmap* fDevice;
30    uint8_t         fAlpha;
31
32    SkTransparentShader(SkReadBuffer& buffer) : INHERITED(buffer) {}
33
34    typedef SkShader INHERITED;
35};
36
37#endif
38