1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkDrawGradient_DEFINED
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkDrawGradient_DEFINED
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawColor.h"
148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawShader.h"
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkIntArray.h"
168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
1799547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.comclass SkDrawGradient : public SkDrawShader {
1899547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    DECLARE_PRIVATE_MEMBER_INFO(DrawGradient);
1999547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    SkDrawGradient();
2099547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    virtual ~SkDrawGradient();
211d3c411f5e4d2ad31bc92b3a85957004329ac00dtfarina@chromium.org    virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED
238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void dumpRest(SkAnimateMaker*);
24d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com#endif
258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void onEndElement(SkAnimateMaker& );
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkTDScalarArray offsets;
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkString unitMapper;
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkTDColorArray fColors;
308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkTDDrawColorArray fDrawColors;
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    int addPrelude();
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    typedef SkDrawShader INHERITED;
348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
3699547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.comclass SkDrawLinearGradient : public SkDrawGradient {
3799547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    DECLARE_MEMBER_INFO(DrawLinearGradient);
3899547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    SkDrawLinearGradient();
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void onEndElement(SkAnimateMaker& );
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void dump(SkAnimateMaker*);
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual SkShader* getShader();
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkTDScalarArray points;
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
4799547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    typedef SkDrawGradient INHERITED;
488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
5099547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.comclass SkDrawRadialGradient : public SkDrawGradient {
5199547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    DECLARE_MEMBER_INFO(DrawRadialGradient);
5299547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    SkDrawRadialGradient();
538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED
548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void dump(SkAnimateMaker*);
55d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com#endif
568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual SkShader* getShader();
578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkPoint center;
598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkScalar radius;
608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
6199547767e9cdabcdae6a575f0f6bfde01d809865rileya@google.com    typedef SkDrawGradient INHERITED;
628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif // SkDrawGradient_DEFINED
65