1f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 2f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger/* 3f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Copyright 2006 The Android Open Source Project 4f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * 5f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 6f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * found in the LICENSE file. 7f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger */ 8f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 9f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 10f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#ifndef SkDrawGradient_DEFINED 11f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#define SkDrawGradient_DEFINED 12f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 13f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#include "SkDrawColor.h" 14f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#include "SkDrawShader.h" 15f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#include "SkIntArray.h" 16f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 17f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkUnitMapper; 18f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 19f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkGradient : public SkDrawShader { 20f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger DECLARE_PRIVATE_MEMBER_INFO(Gradient); 21f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkGradient(); 22f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual ~SkGradient(); 23f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual bool add(SkAnimateMaker& , SkDisplayable* child); 24f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#ifdef SK_DUMP_ENABLED 25f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual void dumpRest(SkAnimateMaker*); 26f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#endif 27f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual void onEndElement(SkAnimateMaker& ); 28f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprotected: 29f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTDScalarArray offsets; 30f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkString unitMapper; 31f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTDColorArray fColors; 32f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTDDrawColorArray fDrawColors; 33f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkUnitMapper* fUnitMapper; 34f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger int addPrelude(); 35f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprivate: 36f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger typedef SkDrawShader INHERITED; 37f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger}; 38f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 39f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkLinearGradient : public SkGradient { 40f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger DECLARE_MEMBER_INFO(LinearGradient); 41f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkLinearGradient(); 42f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual void onEndElement(SkAnimateMaker& ); 43f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#ifdef SK_DUMP_ENABLED 44f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual void dump(SkAnimateMaker*); 45f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#endif 46f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual SkShader* getShader(); 47f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprotected: 48f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkTDScalarArray points; 49f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprivate: 50f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger typedef SkGradient INHERITED; 51f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger}; 52f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 53f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerclass SkRadialGradient : public SkGradient { 54f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger DECLARE_MEMBER_INFO(RadialGradient); 55f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkRadialGradient(); 56f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#ifdef SK_DUMP_ENABLED 57f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual void dump(SkAnimateMaker*); 58f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#endif 59f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger virtual SkShader* getShader(); 60f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprotected: 61f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkPoint center; 62f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SkScalar radius; 63f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergerprivate: 64f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger typedef SkGradient INHERITED; 65f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger}; 66f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 67f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#endif // SkDrawGradient_DEFINED 68f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 69