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 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 return; | 719 return; |
720 | 720 |
721 realizeSaves(); | 721 realizeSaves(); |
722 | 722 |
723 if (!newTransform.isInvertible()) { | 723 if (!newTransform.isInvertible()) { |
724 modifiableState().m_invertibleCTM = false; | 724 modifiableState().m_invertibleCTM = false; |
725 return; | 725 return; |
726 } | 726 } |
727 | 727 |
728 modifiableState().m_transform = newTransform; | 728 modifiableState().m_transform = newTransform; |
729 c->scale(FloatSize(sx, sy)); | 729 c->scale(sx, sy); |
730 m_path.transform(AffineTransform().scaleNonUniform(1.0 / sx, 1.0 / sy)); | 730 m_path.transform(AffineTransform().scaleNonUniform(1.0 / sx, 1.0 / sy)); |
731 } | 731 } |
732 | 732 |
733 void CanvasRenderingContext2D::rotate(float angleInRadians) | 733 void CanvasRenderingContext2D::rotate(float angleInRadians) |
734 { | 734 { |
735 GraphicsContext* c = drawingContext(); | 735 GraphicsContext* c = drawingContext(); |
736 if (!c) | 736 if (!c) |
737 return; | 737 return; |
738 if (!state().m_invertibleCTM) | 738 if (!state().m_invertibleCTM) |
739 return; | 739 return; |
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1532 | 1532 |
1533 didDraw(dirtyRect); | 1533 didDraw(dirtyRect); |
1534 } | 1534 } |
1535 | 1535 |
1536 void CanvasRenderingContext2D::drawVideo(HTMLVideoElement* video, FloatRect srcR
ect, FloatRect dstRect) | 1536 void CanvasRenderingContext2D::drawVideo(HTMLVideoElement* video, FloatRect srcR
ect, FloatRect dstRect) |
1537 { | 1537 { |
1538 GraphicsContext* c = drawingContext(); | 1538 GraphicsContext* c = drawingContext(); |
1539 GraphicsContextStateSaver stateSaver(*c); | 1539 GraphicsContextStateSaver stateSaver(*c); |
1540 c->clip(dstRect); | 1540 c->clip(dstRect); |
1541 c->translate(dstRect.x(), dstRect.y()); | 1541 c->translate(dstRect.x(), dstRect.y()); |
1542 c->scale(FloatSize(dstRect.width() / srcRect.width(), dstRect.height() / src
Rect.height())); | 1542 c->scale(dstRect.width() / srcRect.width(), dstRect.height() / srcRect.heigh
t()); |
1543 c->translate(-srcRect.x(), -srcRect.y()); | 1543 c->translate(-srcRect.x(), -srcRect.y()); |
1544 video->paintCurrentFrameInContext(c, IntRect(IntPoint(), IntSize(video->vide
oWidth(), video->videoHeight()))); | 1544 video->paintCurrentFrameInContext(c, IntRect(IntPoint(), IntSize(video->vide
oWidth(), video->videoHeight()))); |
1545 stateSaver.restore(); | 1545 stateSaver.restore(); |
1546 validateStateStack(); | 1546 validateStateStack(); |
1547 } | 1547 } |
1548 | 1548 |
1549 void CanvasRenderingContext2D::drawImageFromRect(HTMLImageElement* image, | 1549 void CanvasRenderingContext2D::drawImageFromRect(HTMLImageElement* image, |
1550 float sx, float sy, float sw, float sh, | 1550 float sx, float sy, float sw, float sh, |
1551 float dx, float dy, float dw, float dh, | 1551 float dx, float dy, float dw, float dh, |
1552 const String& compositeOperation) | 1552 const String& compositeOperation) |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2180 fontMetrics.lineSpacing()); | 2180 fontMetrics.lineSpacing()); |
2181 if (!fill) | 2181 if (!fill) |
2182 inflateStrokeRect(textRunPaintInfo.bounds); | 2182 inflateStrokeRect(textRunPaintInfo.bounds); |
2183 | 2183 |
2184 c->setTextDrawingMode(fill ? TextModeFill : TextModeStroke); | 2184 c->setTextDrawingMode(fill ? TextModeFill : TextModeStroke); |
2185 | 2185 |
2186 GraphicsContextStateSaver stateSaver(*c); | 2186 GraphicsContextStateSaver stateSaver(*c); |
2187 if (useMaxWidth) { | 2187 if (useMaxWidth) { |
2188 c->translate(location.x(), location.y()); | 2188 c->translate(location.x(), location.y()); |
2189 // We draw when fontWidth is 0 so compositing operations (eg, a "copy" o
p) still work. | 2189 // We draw when fontWidth is 0 so compositing operations (eg, a "copy" o
p) still work. |
2190 c->scale(FloatSize((fontWidth > 0 ? (width / fontWidth) : 0), 1)); | 2190 c->scale((fontWidth > 0 ? (width / fontWidth) : 0), 1); |
2191 location = FloatPoint(); | 2191 location = FloatPoint(); |
2192 } | 2192 } |
2193 | 2193 |
2194 FloatRect clipBounds; | 2194 FloatRect clipBounds; |
2195 if (!c->getTransformedClipBounds(&clipBounds)) { | 2195 if (!c->getTransformedClipBounds(&clipBounds)) { |
2196 return; | 2196 return; |
2197 } | 2197 } |
2198 | 2198 |
2199 if (isFullCanvasCompositeMode(state().m_globalComposite)) { | 2199 if (isFullCanvasCompositeMode(state().m_globalComposite)) { |
2200 c->beginLayer(1, state().m_globalComposite); | 2200 c->beginLayer(1, state().m_globalComposite); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2350 c->setAlphaAsFloat(1.0); | 2350 c->setAlphaAsFloat(1.0); |
2351 c->clearShadow(); | 2351 c->clearShadow(); |
2352 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); | 2352 c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); |
2353 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); | 2353 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); |
2354 c->restore(); | 2354 c->restore(); |
2355 validateStateStack(); | 2355 validateStateStack(); |
2356 didDraw(dirtyRect); | 2356 didDraw(dirtyRect); |
2357 } | 2357 } |
2358 | 2358 |
2359 } // namespace WebCore | 2359 } // namespace WebCore |
OLD | NEW |