OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 void DrawLooper::addUnmodifiedContent() | 46 void DrawLooper::addUnmodifiedContent() |
47 { | 47 { |
48 SkLayerDrawLooper::LayerInfo info; | 48 SkLayerDrawLooper::LayerInfo info; |
49 m_skDrawLooper->addLayerOnTop(info); | 49 m_skDrawLooper->addLayerOnTop(info); |
50 } | 50 } |
51 | 51 |
52 void DrawLooper::addShadow(const FloatSize& offset, float blur, const Color& col
or, | 52 void DrawLooper::addShadow(const FloatSize& offset, float blur, const Color& col
or, |
53 ShadowTransformMode shadowTransformMode, ShadowAlphaMode shadowAlphaMode) | 53 ShadowTransformMode shadowTransformMode, ShadowAlphaMode shadowAlphaMode) |
54 { | 54 { |
55 // Detect when there's no effective shadow. | 55 // Detect when there's no effective shadow. |
56 if (!color.isValid() || !color.alpha()) | 56 if (!color.alpha()) |
57 return; | 57 return; |
58 | 58 |
59 SkColor skColor; | 59 SkColor skColor = color.rgb(); |
60 if (color.isValid()) | |
61 skColor = color.rgb(); | |
62 else | |
63 skColor = SkColorSetARGB(0xFF / 3, 0, 0, 0); // "std" apple shadow color
. | |
64 | 60 |
65 SkLayerDrawLooper::LayerInfo info; | 61 SkLayerDrawLooper::LayerInfo info; |
66 | 62 |
67 switch (shadowAlphaMode) { | 63 switch (shadowAlphaMode) { |
68 case ShadowRespectsAlpha: | 64 case ShadowRespectsAlpha: |
69 info.fColorMode = SkXfermode::kDst_Mode; | 65 info.fColorMode = SkXfermode::kDst_Mode; |
70 break; | 66 break; |
71 case ShadowIgnoresAlpha: | 67 case ShadowIgnoresAlpha: |
72 info.fColorMode = SkXfermode::kSrc_Mode; | 68 info.fColorMode = SkXfermode::kSrc_Mode; |
73 break; | 69 break; |
(...skipping 16 matching lines...) Expand all Loading... |
90 SkMaskFilter* mf = SkBlurMaskFilter::Create((double)blur / 2.0, | 86 SkMaskFilter* mf = SkBlurMaskFilter::Create((double)blur / 2.0, |
91 SkBlurMaskFilter::kNormal_BlurStyle, mfFlags); | 87 SkBlurMaskFilter::kNormal_BlurStyle, mfFlags); |
92 SkSafeUnref(paint->setMaskFilter(mf)); | 88 SkSafeUnref(paint->setMaskFilter(mf)); |
93 } | 89 } |
94 | 90 |
95 SkColorFilter* cf = SkColorFilter::CreateModeFilter(skColor, SkXfermode::kSr
cIn_Mode); | 91 SkColorFilter* cf = SkColorFilter::CreateModeFilter(skColor, SkXfermode::kSr
cIn_Mode); |
96 SkSafeUnref(paint->setColorFilter(cf)); | 92 SkSafeUnref(paint->setColorFilter(cf)); |
97 } | 93 } |
98 | 94 |
99 } // namespace WebCore | 95 } // namespace WebCore |
OLD | NEW |