blob: d01ee7097ef24b72a3cb7ccc9e6a4e97a15fd0c9 [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
rileya@google.com99547762012-07-26 21:25:09 +000019class SkDrawGradient : public SkDrawShader {
20 DECLARE_PRIVATE_MEMBER_INFO(DrawGradient);
21 SkDrawGradient();
22 virtual ~SkDrawGradient();
reed@android.com8a1c16f2008-12-17 15:59:43 +000023 virtual bool add(SkAnimateMaker& , SkDisplayable* child);
24#ifdef SK_DUMP_ENABLED
25 virtual void dumpRest(SkAnimateMaker*);
rmistry@google.comd6176b02012-08-23 18:14:13 +000026#endif
reed@android.com8a1c16f2008-12-17 15:59:43 +000027 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
rileya@google.com99547762012-07-26 21:25:09 +000039class SkDrawLinearGradient : public SkDrawGradient {
40 DECLARE_MEMBER_INFO(DrawLinearGradient);
41 SkDrawLinearGradient();
reed@android.com8a1c16f2008-12-17 15:59:43 +000042 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:
rileya@google.com99547762012-07-26 21:25:09 +000050 typedef SkDrawGradient INHERITED;
reed@android.com8a1c16f2008-12-17 15:59:43 +000051};
52
rileya@google.com99547762012-07-26 21:25:09 +000053class SkDrawRadialGradient : public SkDrawGradient {
54 DECLARE_MEMBER_INFO(DrawRadialGradient);
55 SkDrawRadialGradient();
reed@android.com8a1c16f2008-12-17 15:59:43 +000056#ifdef SK_DUMP_ENABLED
57 virtual void dump(SkAnimateMaker*);
rmistry@google.comd6176b02012-08-23 18:14:13 +000058#endif
reed@android.com8a1c16f2008-12-17 15:59:43 +000059 virtual SkShader* getShader();
60protected:
61 SkPoint center;
62 SkScalar radius;
63private:
rileya@google.com99547762012-07-26 21:25:09 +000064 typedef SkDrawGradient INHERITED;
reed@android.com8a1c16f2008-12-17 15:59:43 +000065};
66
67#endif // SkDrawGradient_DEFINED
68