1231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*
2231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Copyright (C) 2009 Torch Mobile, Inc. All rights reserved.
3231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
4231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  This library is free software; you can redistribute it and/or
5231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  modify it under the terms of the GNU Library General Public
6231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  License as published by the Free Software Foundation; either
7231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  version 2 of the License, or (at your option) any later version.
8231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
9231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  This library is distributed in the hope that it will be useful,
10231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  Library General Public License for more details.
13231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
14231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  You should have received a copy of the GNU Library General Public License
15231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  along with this library; see the file COPYING.LIB.  If not, write to
16231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *  Boston, MA 02110-1301, USA.
18231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block */
19231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
20231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "config.h"
22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "Gradient.h"
23231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
24231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "GraphicsContext.h"
25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocknamespace WebCore {
27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid Gradient::platformDestroy()
29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
31231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
32231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockstatic inline bool compareStops(const Gradient::ColorStop& a, const Gradient::ColorStop& b)
33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
34231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    return a.stop < b.stop;
35231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
3768513a70bcd92384395513322f1b801e7bf9c729Steve Blockconst Vector<Gradient::ColorStop, 2>& Gradient::getStops() const
38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    if (!m_stopsSorted) {
40231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        if (m_stops.size())
41231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block            std::stable_sort(m_stops.begin(), m_stops.end(), compareStops);
42231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        m_stopsSorted = true;
43231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    }
44231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    return m_stops;
45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
46231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
47231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid Gradient::fill(GraphicsContext* c, const FloatRect& r)
48231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    c->fillRect(r, this);
50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
5268513a70bcd92384395513322f1b801e7bf9c729Steve Block} // namespace WebCore
53