diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp')
-rw-r--r-- | src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp index 37f47994c2..7a255d8ab7 100644 --- a/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp +++ b/src/3rdparty/webkit/WebCore/html/CanvasRenderingContext2D.cpp @@ -58,10 +58,10 @@ #include "TextMetrics.h" #include "HTMLVideoElement.h" #include <stdio.h> - #include <wtf/ByteArray.h> #include <wtf/MathExtras.h> #include <wtf/OwnPtr.h> +#include <wtf/UnusedParam.h> using namespace std; @@ -546,6 +546,8 @@ void CanvasRenderingContext2D::lineTo(float x, float y) return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(x, y)); m_path.addLineTo(FloatPoint(x, y)); } @@ -555,6 +557,8 @@ void CanvasRenderingContext2D::quadraticCurveTo(float cpx, float cpy, float x, f return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(cpx, cpy)); m_path.addQuadCurveTo(FloatPoint(cpx, cpy), FloatPoint(x, y)); } @@ -564,6 +568,8 @@ void CanvasRenderingContext2D::bezierCurveTo(float cp1x, float cp1y, float cp2x, return; if (!state().m_invertibleCTM) return; + if (m_path.isEmpty()) + m_path.moveTo(FloatPoint(cp1x, cp1y)); m_path.addBezierCurveTo(FloatPoint(cp1x, cp1y), FloatPoint(cp2x, cp2y), FloatPoint(x, y)); } @@ -1103,7 +1109,7 @@ void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video, const FloatRec c->translate(destRect.x(), destRect.y()); c->scale(FloatSize(destRect.width()/sourceRect.width(), destRect.height()/sourceRect.height())); c->translate(-sourceRect.x(), -sourceRect.y()); - video->paint(c, IntRect(IntPoint(), size(video))); + video->paintCurrentFrameInContext(c, IntRect(IntPoint(), size(video))); c->restore(); } #endif @@ -1158,6 +1164,8 @@ void CanvasRenderingContext2D::prepareGradientForDashboard(CanvasGradient* gradi if (Settings* settings = m_canvas->document()->settings()) if (settings->usesDashboardBackwardCompatibilityMode()) gradient->setDashboardCompatibilityMode(); +#else + UNUSED_PARAM(gradient); #endif } |