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 13 class SK_API SkTransparentShader : public SkShader { 14 public: 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_DEVELOPER_TO_STRING() 25 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTransparentShader) 26 27 private: 28 // these are a cache from the call to setContext() 29 const SkBitmap* fDevice; 30 uint8_t fAlpha; 31 32 SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} 33 34 typedef SkShader INHERITED; 35 }; 36 37 #endif 38