blob: 545179b5a9fbcceb8bb021b43c7c50ff40cd87ab [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
tfarinaaa458fb2015-01-05 17:18:51 -080025 virtual void onEndElement(SkAnimateMaker& ) SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000026protected:
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();
tfarina752e7eb2014-12-20 06:53:43 -080039 virtual void onEndElement(SkAnimateMaker& ) SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000040#ifdef SK_DUMP_ENABLED
tfarina752e7eb2014-12-20 06:53:43 -080041 virtual void dump(SkAnimateMaker*) SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000042#endif
tfarina752e7eb2014-12-20 06:53:43 -080043 virtual SkShader* getShader() SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000044protected:
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
tfarina752e7eb2014-12-20 06:53:43 -080054 virtual void dump(SkAnimateMaker*) SK_OVERRIDE;
rmistry@google.comd6176b02012-08-23 18:14:13 +000055#endif
tfarinaaa458fb2015-01-05 17:18:51 -080056 virtual SkShader* getShader() SK_OVERRIDE;
reed@android.com8a1c16f2008-12-17 15:59:43 +000057protected:
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