blob: fa46a9e629882f4507ff245fc5042aaa1d04bad7 [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
rileya@google.com99547762012-07-26 21:25:09 +000017class SkDrawGradient : public SkDrawShader {
18 DECLARE_PRIVATE_MEMBER_INFO(DrawGradient);
19 SkDrawGradient();
20 virtual ~SkDrawGradient();
tfarina@chromium.org1d3c4112012-12-03 14:38:08 +000021 virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000022#ifdef SK_DUMP_ENABLED
23 virtual void dumpRest(SkAnimateMaker*);
rmistry@google.comd6176b02012-08-23 18:14:13 +000024#endif
reed@android.com8a1c16f2008-12-17 15:59:43 +000025 virtual void onEndElement(SkAnimateMaker& );
26protected:
27 SkTDScalarArray offsets;
28 SkString unitMapper;
29 SkTDColorArray fColors;
30 SkTDDrawColorArray fDrawColors;
reed@android.com8a1c16f2008-12-17 15:59:43 +000031 int addPrelude();
32private:
33 typedef SkDrawShader INHERITED;
34};
35
rileya@google.com99547762012-07-26 21:25:09 +000036class SkDrawLinearGradient : public SkDrawGradient {
37 DECLARE_MEMBER_INFO(DrawLinearGradient);
38 SkDrawLinearGradient();
reed@android.com8a1c16f2008-12-17 15:59:43 +000039 virtual void onEndElement(SkAnimateMaker& );
40#ifdef SK_DUMP_ENABLED
41 virtual void dump(SkAnimateMaker*);
42#endif
43 virtual SkShader* getShader();
44protected:
45 SkTDScalarArray points;
46private:
rileya@google.com99547762012-07-26 21:25:09 +000047 typedef SkDrawGradient INHERITED;
reed@android.com8a1c16f2008-12-17 15:59:43 +000048};
49
rileya@google.com99547762012-07-26 21:25:09 +000050class SkDrawRadialGradient : public SkDrawGradient {
51 DECLARE_MEMBER_INFO(DrawRadialGradient);
52 SkDrawRadialGradient();
reed@android.com8a1c16f2008-12-17 15:59:43 +000053#ifdef SK_DUMP_ENABLED
54 virtual void dump(SkAnimateMaker*);
rmistry@google.comd6176b02012-08-23 18:14:13 +000055#endif
reed@android.com8a1c16f2008-12-17 15:59:43 +000056 virtual SkShader* getShader();
57protected:
58 SkPoint center;
59 SkScalar radius;
60private:
rileya@google.com99547762012-07-26 21:25:09 +000061 typedef SkDrawGradient INHERITED;
reed@android.com8a1c16f2008-12-17 15:59:43 +000062};
63
64#endif // SkDrawGradient_DEFINED