michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkDrawGradient_DEFINED michael@0: #define SkDrawGradient_DEFINED michael@0: michael@0: #include "SkDrawColor.h" michael@0: #include "SkDrawShader.h" michael@0: #include "SkIntArray.h" michael@0: michael@0: class SkUnitMapper; michael@0: michael@0: class SkDrawGradient : public SkDrawShader { michael@0: DECLARE_PRIVATE_MEMBER_INFO(DrawGradient); michael@0: SkDrawGradient(); michael@0: virtual ~SkDrawGradient(); michael@0: virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE; michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dumpRest(SkAnimateMaker*); michael@0: #endif michael@0: virtual void onEndElement(SkAnimateMaker& ); michael@0: protected: michael@0: SkTDScalarArray offsets; michael@0: SkString unitMapper; michael@0: SkTDColorArray fColors; michael@0: SkTDDrawColorArray fDrawColors; michael@0: SkUnitMapper* fUnitMapper; michael@0: int addPrelude(); michael@0: private: michael@0: typedef SkDrawShader INHERITED; michael@0: }; michael@0: michael@0: class SkDrawLinearGradient : public SkDrawGradient { michael@0: DECLARE_MEMBER_INFO(DrawLinearGradient); michael@0: SkDrawLinearGradient(); michael@0: virtual void onEndElement(SkAnimateMaker& ); michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dump(SkAnimateMaker*); michael@0: #endif michael@0: virtual SkShader* getShader(); michael@0: protected: michael@0: SkTDScalarArray points; michael@0: private: michael@0: typedef SkDrawGradient INHERITED; michael@0: }; michael@0: michael@0: class SkDrawRadialGradient : public SkDrawGradient { michael@0: DECLARE_MEMBER_INFO(DrawRadialGradient); michael@0: SkDrawRadialGradient(); michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dump(SkAnimateMaker*); michael@0: #endif michael@0: virtual SkShader* getShader(); michael@0: protected: michael@0: SkPoint center; michael@0: SkScalar radius; michael@0: private: michael@0: typedef SkDrawGradient INHERITED; michael@0: }; michael@0: michael@0: #endif // SkDrawGradient_DEFINED