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