blob: 87df37624c8356ac6e461500ae24c60e2c30c986 [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();
mtklein36352bf2015-03-25 18:17:31 -070021 bool addChild(SkAnimateMaker& , SkDisplayable* child) 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
mtklein36352bf2015-03-25 18:17:31 -070025 void onEndElement(SkAnimateMaker& ) 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();
mtklein36352bf2015-03-25 18:17:31 -070039 void onEndElement(SkAnimateMaker& ) override;
reed@android.com8a1c16f2008-12-17 15:59:43 +000040#ifdef SK_DUMP_ENABLED
mtklein36352bf2015-03-25 18:17:31 -070041 void dump(SkAnimateMaker*) override;
reed@android.com8a1c16f2008-12-17 15:59:43 +000042#endif
mtklein36352bf2015-03-25 18:17:31 -070043 SkShader* getShader() 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
mtklein36352bf2015-03-25 18:17:31 -070054 void dump(SkAnimateMaker*) override;
rmistry@google.comd6176b02012-08-23 18:14:13 +000055#endif
mtklein36352bf2015-03-25 18:17:31 -070056 SkShader* getShader() 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