Changeset 214763 in webkit
- Timestamp:
- Apr 3, 2017 3:29:39 AM (7 years ago)
- Location:
- releases/WebKitGTK/webkit-2.16/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog
r214761 r214763 1 2017-03-17 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [Cairo] Handle the blend mode in GraphicsContext::drawPattern 4 https://bugs.webkit.org/show_bug.cgi?id=169746 5 6 Reviewed by Žan Doberšek. 7 8 We are not taking into account the blend mode when passing the cairo operator to drawPatternToCairoContext(). 9 This is based on patch by Žan Doberšek, just adding the toCairoOperator changes to make it easier to handle 10 it. Instead of checking everywhere if blend mode is Normal to decide whether to use toCairoOperator with 11 CompositeOperator or BlendMode, there's no a single toCairoOperator that receives both parameters, but BlendMode 12 is optional and defaults to Normal. 13 14 * platform/graphics/cairo/CairoUtilities.cpp: 15 (WebCore::toCairoCompositeOperator): 16 (WebCore::toCairoOperator): 17 * platform/graphics/cairo/CairoUtilities.h: 18 * platform/graphics/cairo/GraphicsContextCairo.cpp: 19 (WebCore::GraphicsContext::setPlatformCompositeOperation): 20 (WebCore::GraphicsContext::drawPattern): 21 1 22 2017-03-16 Simon Fraser <simon.fraser@apple.com> 2 23 -
releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp
r212431 r214763 109 109 } 110 110 111 cairo_operator_t toCairoOperator(CompositeOperator op)111 static cairo_operator_t toCairoCompositeOperator(CompositeOperator op) 112 112 { 113 113 switch (op) { … … 144 144 } 145 145 } 146 cairo_operator_t toCairoOperator(BlendMode blendOp) 146 147 cairo_operator_t toCairoOperator(CompositeOperator op, BlendMode blendOp) 147 148 { 148 149 switch (blendOp) { 149 150 case BlendModeNormal: 150 return CAIRO_OPERATOR_OVER;151 return toCairoCompositeOperator(op); 151 152 case BlendModeMultiply: 152 153 return CAIRO_OPERATOR_MULTIPLY; -
releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/CairoUtilities.h
r200129 r214763 80 80 void appendWebCorePathToCairoContext(cairo_t* context, const Path& path); 81 81 void appendRegionToCairoContext(cairo_t*, const cairo_region_t*); 82 cairo_operator_t toCairoOperator(CompositeOperator op); 83 cairo_operator_t toCairoOperator(BlendMode blendOp); 82 cairo_operator_t toCairoOperator(CompositeOperator, BlendMode = BlendModeNormal); 84 83 void drawPatternToCairoContext(cairo_t* cr, cairo_surface_t* image, const IntSize& imageSize, const FloatRect& tileRect, 85 84 const AffineTransform& patternTransform, const FloatPoint& phase, cairo_operator_t op, const FloatRect& destRect); -
releases/WebKitGTK/webkit-2.16/Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp
r213796 r214763 1037 1037 return; 1038 1038 1039 cairo_operator_t cairo_op; 1040 if (blendOp == BlendModeNormal) 1041 cairo_op = toCairoOperator(op); 1042 else 1043 cairo_op = toCairoOperator(blendOp); 1044 1045 cairo_set_operator(platformContext()->cr(), cairo_op); 1039 cairo_set_operator(platformContext()->cr(), toCairoOperator(op, blendOp)); 1046 1040 } 1047 1041 … … 1184 1178 1185 1179 cairo_t* cr = platformContext()->cr(); 1186 drawPatternToCairoContext(cr, surface.get(), IntSize(image.size()), tileRect, patternTransform, phase, toCairoOperator(op ), destRect);1180 drawPatternToCairoContext(cr, surface.get(), IntSize(image.size()), tileRect, patternTransform, phase, toCairoOperator(op, blendMode), destRect); 1187 1181 } 1188 1182
Note: See TracChangeset
for help on using the changeset viewer.