11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */
80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkTransparentShader_DEFINED
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkTransparentShader_DEFINED
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkShader.h"
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkTransparentShader : public SkShader {
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic:
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkTransparentShader() {}
181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual uint32_t getFlags() SK_OVERRIDE;
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual bool    setContext( const SkBitmap& device,
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project                                const SkPaint& paint,
221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                                const SkMatrix& matrix) SK_OVERRIDE;
231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual void    shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual void    shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE;
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    // overrides for SkFlattenable
271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual Factory getFactory() SK_OVERRIDE;
281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate:
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    // these are a cache from the call to setContext()
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    const SkBitmap* fDevice;
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    uint8_t         fAlpha;
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
3735e2e62b55598210f6999fc2ea26ff8f41446ffeDerek Sollenberger    static SkFlattenable* Create(SkFlattenableReadBuffer& buffer) {
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        return SkNEW_ARGS(SkTransparentShader, (buffer));
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    }
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    typedef SkShader INHERITED;
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
46