blob: 251e9756719bdedd5747ee632fbfe3dec76447e8 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkDrawGradient_DEFINED
11#define SkDrawGradient_DEFINED
12
13#include "SkDrawColor.h"
14#include "SkDrawShader.h"
15#include "SkIntArray.h"
16
17class SkUnitMapper;
18
19class SkGradient : public SkDrawShader {
20 DECLARE_PRIVATE_MEMBER_INFO(Gradient);
21 SkGradient();
22 virtual ~SkGradient();
23 virtual bool add(SkAnimateMaker& , SkDisplayable* child);
24#ifdef SK_DUMP_ENABLED
25 virtual void dumpRest(SkAnimateMaker*);
26#endif
27 virtual void onEndElement(SkAnimateMaker& );
28protected:
29 SkTDScalarArray offsets;
30 SkString unitMapper;
31 SkTDColorArray fColors;
32 SkTDDrawColorArray fDrawColors;
33 SkUnitMapper* fUnitMapper;
34 int addPrelude();
35private:
36 typedef SkDrawShader INHERITED;
37};
38
39class SkLinearGradient : public SkGradient {
40 DECLARE_MEMBER_INFO(LinearGradient);
41 SkLinearGradient();
42 virtual void onEndElement(SkAnimateMaker& );
43#ifdef SK_DUMP_ENABLED
44 virtual void dump(SkAnimateMaker*);
45#endif
46 virtual SkShader* getShader();
47protected:
48 SkTDScalarArray points;
49private:
50 typedef SkGradient INHERITED;
51};
52
53class SkRadialGradient : public SkGradient {
54 DECLARE_MEMBER_INFO(RadialGradient);
55 SkRadialGradient();
56#ifdef SK_DUMP_ENABLED
57 virtual void dump(SkAnimateMaker*);
58#endif
59 virtual SkShader* getShader();
60protected:
61 SkPoint center;
62 SkScalar radius;
63private:
64 typedef SkGradient INHERITED;
65};
66
67#endif // SkDrawGradient_DEFINED
68