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