diff options
author | Nicolas Roard <nicolasroard@google.com> | 2012-04-02 16:16:59 -0700 |
---|---|---|
committer | Nicolas Roard <nicolasroard@google.com> | 2012-04-06 11:05:38 -0700 |
commit | 64e4b265f84573b97d408f7d3e5aa99a647be057 (patch) | |
tree | e349e52565c0cc487526fd68b608f8648678c1c7 /Source/WebCore/platform/android | |
parent | d01f8866730e5ebe8609f82f95cf281432460607 (diff) | |
download | external_webkit-64e4b265f84573b97d408f7d3e5aa99a647be057.zip external_webkit-64e4b265f84573b97d408f7d3e5aa99a647be057.tar.gz external_webkit-64e4b265f84573b97d408f7d3e5aa99a647be057.tar.bz2 |
Implements a recording GraphicsContext
Change-Id: I41feadb23dce25af321331c459eb159c6141831b
Diffstat (limited to 'Source/WebCore/platform/android')
-rw-r--r-- | Source/WebCore/platform/android/RenderThemeAndroid.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Source/WebCore/platform/android/RenderThemeAndroid.cpp b/Source/WebCore/platform/android/RenderThemeAndroid.cpp index ee406c2..173cfea 100644 --- a/Source/WebCore/platform/android/RenderThemeAndroid.cpp +++ b/Source/WebCore/platform/android/RenderThemeAndroid.cpp @@ -88,7 +88,7 @@ const float scaleFactor[RenderSkinAndroid::ResolutionCount] = { static SkCanvas* getCanvasFromInfo(const PaintInfo& info) { - return info.context->platformContext()->mCanvas; + return info.context->platformContext()->getCanvas(); } static android::WebFrame* getWebFrame(const Node* node) @@ -341,6 +341,8 @@ bool RenderThemeAndroid::paintMediaFullscreenButton(RenderObject* o, const Paint bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::FULLSCREEN, translucent); return false; } @@ -350,6 +352,8 @@ bool RenderThemeAndroid::paintMediaMuteButton(RenderObject* o, const PaintInfo& bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::MUTE, translucent); return false; } @@ -360,6 +364,8 @@ bool RenderThemeAndroid::paintMediaPlayButton(RenderObject* o, const PaintInfo& if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; if (MediaControlPlayButtonElement* btn = static_cast<MediaControlPlayButtonElement*>(o->node())) { + if (!getCanvasFromInfo(paintInfo)) + return true; if (btn->displayType() == MediaPlayButton) RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::PLAY, translucent); else @@ -374,6 +380,8 @@ bool RenderThemeAndroid::paintMediaSeekBackButton(RenderObject* o, const PaintIn bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::REWIND, translucent); return false; } @@ -383,6 +391,8 @@ bool RenderThemeAndroid::paintMediaSeekForwardButton(RenderObject* o, const Pain bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::FORWARD, translucent); return false; } @@ -392,6 +402,8 @@ bool RenderThemeAndroid::paintMediaControlsBackground(RenderObject* o, const Pai bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::BACKGROUND_SLIDER, translucent, 0, false); @@ -403,6 +415,8 @@ bool RenderThemeAndroid::paintMediaSliderTrack(RenderObject* o, const PaintInfo& bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::SLIDER_TRACK, translucent, o); return false; @@ -413,6 +427,8 @@ bool RenderThemeAndroid::paintMediaSliderThumb(RenderObject* o, const PaintInfo& bool translucent = false; if (o && toParentMediaElement(o) && toParentMediaElement(o)->hasTagName(HTMLNames::videoTag)) translucent = true; + if (!getCanvasFromInfo(paintInfo)) + return true; RenderSkinMediaButton::Draw(getCanvasFromInfo(paintInfo), rect, RenderSkinMediaButton::SLIDER_THUMB, translucent, 0, false); |