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

Side by Side Diff: Source/core/platform/graphics/GraphicsContextState.h

Issue 15137009: Refactor shadow rendering logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: merge upstream changes Created 7 years, 7 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
OLDNEW
1 // Copyright (C) 2013 Google Inc. All rights reserved. 1 // Copyright (C) 2013 Google Inc. All rights reserved.
2 // 2 //
3 // Redistribution and use in source and binary forms, with or without 3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are 4 // modification, are permitted provided that the following conditions are
5 // met: 5 // met:
6 // 6 //
7 // * Redistributions of source code must retain the above copyright 7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer. 8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above 9 // * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following disclaimer 10 // copyright notice, this list of conditions and the following disclaimer
(...skipping 18 matching lines...) Expand all
29 #ifndef GraphicsContextState_h 29 #ifndef GraphicsContextState_h
30 #define GraphicsContextState_h 30 #define GraphicsContextState_h
31 31
32 #include "core/platform/graphics/ColorSpace.h" 32 #include "core/platform/graphics/ColorSpace.h"
33 #include "core/platform/graphics/Gradient.h" 33 #include "core/platform/graphics/Gradient.h"
34 #include "core/platform/graphics/GraphicsTypes.h" 34 #include "core/platform/graphics/GraphicsTypes.h"
35 #include "core/platform/graphics/Path.h" 35 #include "core/platform/graphics/Path.h"
36 #include "core/platform/graphics/Pattern.h" 36 #include "core/platform/graphics/Pattern.h"
37 37
38 #include "third_party/skia/include/core/SkColorPriv.h" 38 #include "third_party/skia/include/core/SkColorPriv.h"
39 #include "third_party/skia/include/core/SkDrawLooper.h"
39 #include "third_party/skia/include/effects/SkDashPathEffect.h" 40 #include "third_party/skia/include/effects/SkDashPathEffect.h"
40 41
41 #include "wtf/PassOwnPtr.h" 42 #include "wtf/PassOwnPtr.h"
42 43
43 namespace WebCore { 44 namespace WebCore {
44 45
45 // Encapsulates the state information we store for each pushed graphics state. 46 // Encapsulates the state information we store for each pushed graphics state.
46 // Only GraphicsContext can use this class. 47 // Only GraphicsContext can use this class.
47 class GraphicsContextState { 48 class GraphicsContextState {
48 public: 49 public:
(...skipping 14 matching lines...) Expand all
63 , m_strokeColorSpace(ColorSpaceDeviceRGB) 64 , m_strokeColorSpace(ColorSpaceDeviceRGB)
64 , m_dashRatio(3) 65 , m_dashRatio(3)
65 , m_miterLimit(4) 66 , m_miterLimit(4)
66 , m_lineCap(SkPaint::kDefault_Cap) 67 , m_lineCap(SkPaint::kDefault_Cap)
67 , m_lineJoin(SkPaint::kDefault_Join) 68 , m_lineJoin(SkPaint::kDefault_Join)
68 , m_dash(0) 69 , m_dash(0)
69 , m_fillColor(Color::black) 70 , m_fillColor(Color::black)
70 , m_fillColorPacked(0xFF000000) 71 , m_fillColorPacked(0xFF000000)
71 , m_fillColorSpace(ColorSpaceDeviceRGB) 72 , m_fillColorSpace(ColorSpaceDeviceRGB)
72 , m_fillRule(RULE_NONZERO) 73 , m_fillRule(RULE_NONZERO)
73 , m_shadowBlur(0) 74 , m_looper(0)
74 , m_shadowColorSpace(ColorSpaceDeviceRGB)
75 , m_textDrawingMode(TextModeFill) 75 , m_textDrawingMode(TextModeFill)
76 , m_alpha(1) 76 , m_alpha(1)
77 , m_xferMode(SkXfermode::kSrcOver_Mode) 77 , m_xferMode(SkXfermode::kSrcOver_Mode)
78 , m_looper(0)
79 , m_compositeOperator(CompositeSourceOver) 78 , m_compositeOperator(CompositeSourceOver)
80 , m_blendMode(BlendModeNormal) 79 , m_blendMode(BlendModeNormal)
81 , m_clip(SkRect::MakeEmpty()) 80 , m_clip(SkRect::MakeEmpty())
82 #if USE(LOW_QUALITY_IMAGE_INTERPOLATION) 81 #if USE(LOW_QUALITY_IMAGE_INTERPOLATION)
83 , m_interpolationQuality(InterpolationLow) 82 , m_interpolationQuality(InterpolationLow)
84 #else 83 #else
85 , m_interpolationQuality(InterpolationHigh) 84 , m_interpolationQuality(InterpolationHigh)
86 #endif 85 #endif
87 , m_shouldAntialias(true) 86 , m_shouldAntialias(true)
88 , m_shouldSmoothFonts(true) 87 , m_shouldSmoothFonts(true)
(...skipping 13 matching lines...) Expand all
102 , m_miterLimit(other.m_miterLimit) 101 , m_miterLimit(other.m_miterLimit)
103 , m_lineCap(other.m_lineCap) 102 , m_lineCap(other.m_lineCap)
104 , m_lineJoin(other.m_lineJoin) 103 , m_lineJoin(other.m_lineJoin)
105 , m_dash(other.m_dash) 104 , m_dash(other.m_dash)
106 , m_fillColor(other.m_fillColor) 105 , m_fillColor(other.m_fillColor)
107 , m_fillColorPacked(other.m_fillColorPacked) 106 , m_fillColorPacked(other.m_fillColorPacked)
108 , m_fillColorSpace(other.m_fillColorSpace) 107 , m_fillColorSpace(other.m_fillColorSpace)
109 , m_fillRule(other.m_fillRule) 108 , m_fillRule(other.m_fillRule)
110 , m_fillGradient(other.m_fillGradient) 109 , m_fillGradient(other.m_fillGradient)
111 , m_fillPattern(other.m_fillPattern) 110 , m_fillPattern(other.m_fillPattern)
112 , m_shadowBlur(other.m_shadowBlur) 111 , m_looper(other.m_looper)
113 , m_shadowColor(other.m_shadowColor)
114 , m_shadowOffset(other.m_shadowOffset)
115 , m_shadowColorSpace(other.m_shadowColorSpace)
116 , m_textDrawingMode(other.m_textDrawingMode) 112 , m_textDrawingMode(other.m_textDrawingMode)
117 , m_alpha(other.m_alpha) 113 , m_alpha(other.m_alpha)
118 , m_xferMode(other.m_xferMode) 114 , m_xferMode(other.m_xferMode)
119 , m_looper(other.m_looper)
120 , m_compositeOperator(other.m_compositeOperator) 115 , m_compositeOperator(other.m_compositeOperator)
121 , m_blendMode(other.m_blendMode) 116 , m_blendMode(other.m_blendMode)
122 , m_imageBufferClip(other.m_imageBufferClip) 117 , m_imageBufferClip(other.m_imageBufferClip)
123 , m_clip(other.m_clip) 118 , m_clip(other.m_clip)
124 , m_interpolationQuality(other.m_interpolationQuality) 119 , m_interpolationQuality(other.m_interpolationQuality)
125 , m_shouldAntialias(other.m_shouldAntialias) 120 , m_shouldAntialias(other.m_shouldAntialias)
126 , m_shouldSmoothFonts(other.m_shouldSmoothFonts) 121 , m_shouldSmoothFonts(other.m_shouldSmoothFonts)
127 , m_shadowsIgnoreTransforms(other.m_shadowsIgnoreTransforms) 122 , m_shadowsIgnoreTransforms(other.m_shadowsIgnoreTransforms)
128 { 123 {
129 // Up the ref count of these. SkSafeRef does nothing if its argument is 0. 124 // Up the ref count of these. SkSafeRef does nothing if its argument is 0.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 SkDashPathEffect* m_dash; 165 SkDashPathEffect* m_dash;
171 166
172 // Fill. 167 // Fill.
173 Color m_fillColor; 168 Color m_fillColor;
174 SkColor m_fillColorPacked; 169 SkColor m_fillColorPacked;
175 ColorSpace m_fillColorSpace; 170 ColorSpace m_fillColorSpace;
176 WindRule m_fillRule; 171 WindRule m_fillRule;
177 RefPtr<Gradient> m_fillGradient; 172 RefPtr<Gradient> m_fillGradient;
178 RefPtr<Pattern> m_fillPattern; 173 RefPtr<Pattern> m_fillPattern;
179 174
180 // Shadow. 175 // Shadow. (This will need tweaking if we use draw loopers for other things. )
181 float m_shadowBlur; 176 SkDrawLooper* m_looper;
182 Color m_shadowColor;
183 FloatSize m_shadowOffset;
184 ColorSpace m_shadowColorSpace;
185 177
186 // Text. (See TextModeFill & friends.) 178 // Text. (See TextModeFill & friends.)
187 TextDrawingModeFlags m_textDrawingMode; 179 TextDrawingModeFlags m_textDrawingMode;
188 180
189 // Common shader state. 181 // Common shader state.
190 float m_alpha; 182 float m_alpha;
191 SkXfermode::Mode m_xferMode; 183 SkXfermode::Mode m_xferMode;
192 SkDrawLooper* m_looper;
193 184
194 // Compositing control, for the CSS and Canvas compositing spec. 185 // Compositing control, for the CSS and Canvas compositing spec.
195 CompositeOperator m_compositeOperator; 186 CompositeOperator m_compositeOperator;
196 BlendMode m_blendMode; 187 BlendMode m_blendMode;
197 188
198 // If non-empty, the current State is clipped to this image. 189 // If non-empty, the current State is clipped to this image.
199 SkBitmap m_imageBufferClip; 190 SkBitmap m_imageBufferClip;
200 191
201 // If m_imageBufferClip is non-empty, this is the region the image is clippe d to. 192 // If m_imageBufferClip is non-empty, this is the region the image is clippe d to.
202 SkRect m_clip; 193 SkRect m_clip;
203 194
204 // Image interpolation control. 195 // Image interpolation control.
205 InterpolationQuality m_interpolationQuality; 196 InterpolationQuality m_interpolationQuality;
206 197
207 bool m_shouldAntialias : 1; 198 bool m_shouldAntialias : 1;
208 bool m_shouldSmoothFonts : 1; 199 bool m_shouldSmoothFonts : 1;
209 bool m_shadowsIgnoreTransforms : 1; 200 bool m_shadowsIgnoreTransforms : 1;
210 }; 201 };
211 202
212 } // namespace WebCore 203 } // namespace WebCore
213 204
214 #endif // GraphicsContextState_h 205 #endif // GraphicsContextState_h
215 206
OLDNEW
« no previous file with comments | « Source/core/platform/graphics/GraphicsContext.cpp ('k') | Source/core/rendering/EllipsisBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698