OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) |
4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> | 4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> |
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> | 6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> |
7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved. | 8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved. |
9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
10 * | 10 * |
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
981 return; | 981 return; |
982 } | 982 } |
983 GraphicsContext* c = drawingContext(); | 983 GraphicsContext* c = drawingContext(); |
984 if (!c) { | 984 if (!c) { |
985 return; | 985 return; |
986 } | 986 } |
987 if (!state().m_invertibleCTM) { | 987 if (!state().m_invertibleCTM) { |
988 return; | 988 return; |
989 } | 989 } |
990 FloatRect clipBounds; | 990 FloatRect clipBounds; |
991 if (!drawingContext()->getTransformedClipBounds(&clipBounds)) { | 991 if (!c->getTransformedClipBounds(&clipBounds)) { |
992 return; | 992 return; |
993 } | 993 } |
994 | 994 |
995 // If gradient size is zero, then paint nothing. | 995 // If gradient size is zero, then paint nothing. |
996 Gradient* gradient = c->fillGradient(); | 996 Gradient* gradient = c->fillGradient(); |
997 if (gradient && gradient->isZeroSize()) { | 997 if (gradient && gradient->isZeroSize()) { |
998 return; | 998 return; |
999 } | 999 } |
1000 | 1000 |
1001 WindRule windRule = c->fillRule(); | 1001 WindRule windRule = c->fillRule(); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 { | 1263 { |
1264 if (!validateRectForCanvas(x, y, width, height)) | 1264 if (!validateRectForCanvas(x, y, width, height)) |
1265 return; | 1265 return; |
1266 | 1266 |
1267 GraphicsContext* c = drawingContext(); | 1267 GraphicsContext* c = drawingContext(); |
1268 if (!c) | 1268 if (!c) |
1269 return; | 1269 return; |
1270 if (!state().m_invertibleCTM) | 1270 if (!state().m_invertibleCTM) |
1271 return; | 1271 return; |
1272 FloatRect clipBounds; | 1272 FloatRect clipBounds; |
1273 if (!drawingContext()->getTransformedClipBounds(&clipBounds)) | 1273 if (!c->getTransformedClipBounds(&clipBounds)) |
1274 return; | 1274 return; |
1275 | 1275 |
1276 // from the HTML5 Canvas spec: | 1276 // from the HTML5 Canvas spec: |
1277 // If x0 = x1 and y0 = y1, then the linear gradient must paint nothing | 1277 // If x0 = x1 and y0 = y1, then the linear gradient must paint nothing |
1278 // If x0 = x1 and y0 = y1 and r0 = r1, then the radial gradient must paint n
othing | 1278 // If x0 = x1 and y0 = y1 and r0 = r1, then the radial gradient must paint n
othing |
1279 Gradient* gradient = c->fillGradient(); | 1279 Gradient* gradient = c->fillGradient(); |
1280 if (gradient && gradient->isZeroSize()) | 1280 if (gradient && gradient->isZeroSize()) |
1281 return; | 1281 return; |
1282 | 1282 |
1283 FloatRect rect(x, y, width, height); | 1283 FloatRect rect(x, y, width, height); |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1600 | 1600 |
1601 static void drawImageToContext(Image* image, GraphicsContext* context, const Flo
atRect& dest, const FloatRect& src, CompositeOperator op) | 1601 static void drawImageToContext(Image* image, GraphicsContext* context, const Flo
atRect& dest, const FloatRect& src, CompositeOperator op) |
1602 { | 1602 { |
1603 context->drawImage(image, dest, src, op); | 1603 context->drawImage(image, dest, src, op); |
1604 } | 1604 } |
1605 | 1605 |
1606 template<class T> void CanvasRenderingContext2D::fullCanvasCompositedDrawImage(
T* image, const FloatRect& dest, const FloatRect& src, CompositeOperator op) | 1606 template<class T> void CanvasRenderingContext2D::fullCanvasCompositedDrawImage(
T* image, const FloatRect& dest, const FloatRect& src, CompositeOperator op) |
1607 { | 1607 { |
1608 ASSERT(isFullCanvasCompositeMode(op)); | 1608 ASSERT(isFullCanvasCompositeMode(op)); |
1609 | 1609 |
1610 drawingContext()->beginLayer(1, op); | 1610 GraphicsContext* c = drawingContext(); |
1611 drawImageToContext(image, drawingContext(), dest, src, CompositeSourceOver); | 1611 c->beginLayer(1, op); |
1612 drawingContext()->endLayer(); | 1612 drawImageToContext(image, c, dest, src, CompositeSourceOver); |
| 1613 c->endLayer(); |
1613 } | 1614 } |
1614 | 1615 |
1615 static void fillPrimitive(const FloatRect& rect, GraphicsContext* context) | 1616 static void fillPrimitive(const FloatRect& rect, GraphicsContext* context) |
1616 { | 1617 { |
1617 context->fillRect(rect); | 1618 context->fillRect(rect); |
1618 } | 1619 } |
1619 | 1620 |
1620 static void fillPrimitive(const Path& path, GraphicsContext* context) | 1621 static void fillPrimitive(const Path& path, GraphicsContext* context) |
1621 { | 1622 { |
1622 context->fillPath(path); | 1623 context->fillPath(path); |
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2421 c->setAlphaAsFloat(1.0); | 2422 c->setAlphaAsFloat(1.0); |
2422 c->clearShadow(); | 2423 c->clearShadow(); |
2423 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); | 2424 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); |
2424 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); | 2425 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); |
2425 c->restore(); | 2426 c->restore(); |
2426 | 2427 |
2427 didDraw(dirtyRect); | 2428 didDraw(dirtyRect); |
2428 } | 2429 } |
2429 | 2430 |
2430 } // namespace WebCore | 2431 } // namespace WebCore |
OLD | NEW |