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