Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: Source/platform/graphics/Gradient.h

Issue 201503002: Simplify Gradient by holding a Color instead of four floats. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: use SkColorSetARGB Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/svg/SVGGradientElement.cpp ('k') | Source/platform/graphics/Gradient.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2008 Torch Mobile, Inc. 4 * Copyright (C) 2008 Torch Mobile, Inc.
5 * Copyright (C) 2013 Google Inc. All rights reserved. 5 * Copyright (C) 2013 Google Inc. All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 13 matching lines...) Expand all
24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #ifndef Gradient_h 29 #ifndef Gradient_h
30 #define Gradient_h 30 #define Gradient_h
31 31
32 #include "platform/PlatformExport.h" 32 #include "platform/PlatformExport.h"
33 #include "platform/geometry/FloatPoint.h" 33 #include "platform/geometry/FloatPoint.h"
34 #include "platform/graphics/Color.h"
34 #include "platform/graphics/GraphicsTypes.h" 35 #include "platform/graphics/GraphicsTypes.h"
35 #include "platform/transforms/AffineTransform.h" 36 #include "platform/transforms/AffineTransform.h"
36 #include "wtf/PassRefPtr.h" 37 #include "wtf/PassRefPtr.h"
37 #include "wtf/RefCounted.h" 38 #include "wtf/RefCounted.h"
38 #include "wtf/RefPtr.h" 39 #include "wtf/RefPtr.h"
39 #include "wtf/Vector.h" 40 #include "wtf/Vector.h"
40 41
41 class SkShader; 42 class SkShader;
42 43
43 namespace WebCore { 44 namespace WebCore {
44 45
45 class Color;
46 class FloatRect; 46 class FloatRect;
47 class IntSize; 47 class IntSize;
48 48
49 class PLATFORM_EXPORT Gradient : public RefCounted<Gradient> { 49 class PLATFORM_EXPORT Gradient : public RefCounted<Gradient> {
50 public: 50 public:
51 static PassRefPtr<Gradient> create(const FloatPoint& p0, const FloatPoint& p 1) 51 static PassRefPtr<Gradient> create(const FloatPoint& p0, const FloatPoint& p 1)
52 { 52 {
53 return adoptRef(new Gradient(p0, p1)); 53 return adoptRef(new Gradient(p0, p1));
54 } 54 }
55 static PassRefPtr<Gradient> create(const FloatPoint& p0, float r0, const Flo atPoint& p1, float r1, float aspectRatio = 1) 55 static PassRefPtr<Gradient> create(const FloatPoint& p0, float r0, const Flo atPoint& p1, float r1, float aspectRatio = 1)
56 { 56 {
57 return adoptRef(new Gradient(p0, r0, p1, r1, aspectRatio)); 57 return adoptRef(new Gradient(p0, r0, p1, r1, aspectRatio));
58 } 58 }
59 ~Gradient(); 59 ~Gradient();
60 60
61 struct ColorStop { 61 struct ColorStop {
62 float stop; 62 float stop;
63 float red; 63 Color color;
64 float green;
65 float blue;
66 float alpha;
67 64
68 ColorStop() : stop(0), red(0), green(0), blue(0), alpha(0) { } 65 ColorStop(float s, const Color& c) : stop(s), color(c) { }
69 ColorStop(float s, float r, float g, float b, float a) : stop(s), red(r) , green(g), blue(b), alpha(a) { }
70 }; 66 };
71 void addColorStop(const ColorStop&); 67 void addColorStop(const ColorStop&);
72 void addColorStop(float, const Color&); 68 void addColorStop(float, const Color&);
73 69
74 bool hasAlpha() const; 70 bool hasAlpha() const;
75 bool shaderChanged() const { return !m_gradient; } 71 bool shaderChanged() const { return !m_gradient; }
76 72
77 bool isRadial() const { return m_radial; } 73 bool isRadial() const { return m_radial; }
78 bool isZeroSize() const { return m_p0.x() == m_p1.x() && m_p0.y() == m_p1.y( ) && (!m_radial || m_r0 == m_r1); } 74 bool isZeroSize() const { return m_p0.x() == m_p1.x() && m_p0.y() == m_p1.y( ) && (!m_radial || m_r0 == m_r1); }
79 75
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 GradientSpreadMethod m_spreadMethod; 144 GradientSpreadMethod m_spreadMethod;
149 AffineTransform m_gradientSpaceTransformation; 145 AffineTransform m_gradientSpaceTransformation;
150 146
151 147
152 RefPtr<SkShader> m_gradient; 148 RefPtr<SkShader> m_gradient;
153 }; 149 };
154 150
155 } // namespace WebCore 151 } // namespace WebCore
156 152
157 #endif 153 #endif
OLDNEW
« no previous file with comments | « Source/core/svg/SVGGradientElement.cpp ('k') | Source/platform/graphics/Gradient.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698