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

Side by Side Diff: third_party/WebKit/Source/core/style/FilterOperation.h

Issue 2609803002: Use ShadowData in DropShadowFilterOperation (Closed)
Patch Set: Fix blend(...) order Created 3 years, 11 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 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef FilterOperation_h 26 #ifndef FilterOperation_h
27 #define FilterOperation_h 27 #define FilterOperation_h
28 28
29 #include "core/CoreExport.h" 29 #include "core/CoreExport.h"
30 #include "core/style/ShadowData.h"
30 #include "platform/Length.h" 31 #include "platform/Length.h"
31 #include "platform/geometry/FloatRect.h" 32 #include "platform/geometry/FloatRect.h"
32 #include "platform/graphics/BoxReflection.h" 33 #include "platform/graphics/BoxReflection.h"
33 #include "platform/graphics/Color.h" 34 #include "platform/graphics/Color.h"
34 #include "platform/heap/Handle.h" 35 #include "platform/heap/Handle.h"
35 #include "wtf/Noncopyable.h" 36 #include "wtf/Noncopyable.h"
36 #include "wtf/text/WTFString.h" 37 #include "wtf/text/WTFString.h"
37 38
38 namespace blink { 39 namespace blink {
39 40
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 BlurFilterOperation(const Length& stdDeviation) 282 BlurFilterOperation(const Length& stdDeviation)
282 : FilterOperation(BLUR), m_stdDeviation(stdDeviation) {} 283 : FilterOperation(BLUR), m_stdDeviation(stdDeviation) {}
283 284
284 Length m_stdDeviation; 285 Length m_stdDeviation;
285 }; 286 };
286 287
287 DEFINE_FILTER_OPERATION_TYPE_CASTS(BlurFilterOperation, BLUR); 288 DEFINE_FILTER_OPERATION_TYPE_CASTS(BlurFilterOperation, BLUR);
288 289
289 class CORE_EXPORT DropShadowFilterOperation : public FilterOperation { 290 class CORE_EXPORT DropShadowFilterOperation : public FilterOperation {
290 public: 291 public:
291 static DropShadowFilterOperation* create(const IntPoint& location, 292 static DropShadowFilterOperation* create(const ShadowData& shadow) {
292 int stdDeviation, 293 return new DropShadowFilterOperation(shadow);
293 Color color) {
294 return new DropShadowFilterOperation(location, stdDeviation, color);
295 } 294 }
296 295
297 int x() const { return m_location.x(); } 296 const ShadowData& shadow() const { return m_shadow; }
298 int y() const { return m_location.y(); }
299 IntPoint location() const { return m_location; }
300 int stdDeviation() const { return m_stdDeviation; }
301 Color getColor() const { return m_color; }
302 297
303 bool affectsOpacity() const override { return true; } 298 bool affectsOpacity() const override { return true; }
304 bool movesPixels() const override { return true; } 299 bool movesPixels() const override { return true; }
305 FloatRect mapRect(const FloatRect&) const override; 300 FloatRect mapRect(const FloatRect&) const override;
306 301
307 private: 302 private:
308 FilterOperation* blend(const FilterOperation* from, 303 FilterOperation* blend(const FilterOperation* from,
309 double progress) const override; 304 double progress) const override;
310 bool operator==(const FilterOperation& o) const override { 305 bool operator==(const FilterOperation& o) const override {
311 if (!isSameType(o)) 306 if (!isSameType(o))
312 return false; 307 return false;
313 const DropShadowFilterOperation* other = 308 const DropShadowFilterOperation* other =
314 static_cast<const DropShadowFilterOperation*>(&o); 309 static_cast<const DropShadowFilterOperation*>(&o);
315 return m_location == other->m_location && 310 return m_shadow == other->m_shadow;
316 m_stdDeviation == other->m_stdDeviation && m_color == other->m_color;
317 } 311 }
318 312
319 DropShadowFilterOperation(const IntPoint& location, 313 DropShadowFilterOperation(const ShadowData& shadow)
320 int stdDeviation, 314 : FilterOperation(DROP_SHADOW), m_shadow(shadow) {}
321 Color color)
322 : FilterOperation(DROP_SHADOW),
323 m_location(location),
324 m_stdDeviation(stdDeviation),
325 m_color(color) {}
326 315
327 IntPoint m_location; // FIXME: should location be in Lengths? 316 ShadowData m_shadow;
328 int m_stdDeviation;
329 Color m_color;
330 }; 317 };
331 318
332 DEFINE_FILTER_OPERATION_TYPE_CASTS(DropShadowFilterOperation, DROP_SHADOW); 319 DEFINE_FILTER_OPERATION_TYPE_CASTS(DropShadowFilterOperation, DROP_SHADOW);
333 320
334 class CORE_EXPORT BoxReflectFilterOperation : public FilterOperation { 321 class CORE_EXPORT BoxReflectFilterOperation : public FilterOperation {
335 public: 322 public:
336 static BoxReflectFilterOperation* create(const BoxReflection& reflection) { 323 static BoxReflectFilterOperation* create(const BoxReflection& reflection) {
337 return new BoxReflectFilterOperation(reflection); 324 return new BoxReflectFilterOperation(reflection);
338 } 325 }
339 326
(...skipping 11 matching lines...) Expand all
351 BoxReflectFilterOperation(const BoxReflection& reflection) 338 BoxReflectFilterOperation(const BoxReflection& reflection)
352 : FilterOperation(BOX_REFLECT), m_reflection(reflection) {} 339 : FilterOperation(BOX_REFLECT), m_reflection(reflection) {}
353 340
354 BoxReflection m_reflection; 341 BoxReflection m_reflection;
355 }; 342 };
356 DEFINE_FILTER_OPERATION_TYPE_CASTS(BoxReflectFilterOperation, BOX_REFLECT); 343 DEFINE_FILTER_OPERATION_TYPE_CASTS(BoxReflectFilterOperation, BOX_REFLECT);
357 344
358 } // namespace blink 345 } // namespace blink
359 346
360 #endif // FilterOperation_h 347 #endif // FilterOperation_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp ('k') | third_party/WebKit/Source/core/style/FilterOperation.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698