diff options
author | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 23:07:56 +0000 |
---|---|---|
committer | boliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 23:07:56 +0000 |
commit | 7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4 (patch) | |
tree | 57785e2315c36146a7c16251d7f5f2afe6b313b5 /android_webview/browser/browser_view_renderer.cc | |
parent | a2d2f42ca69bd4cd09a2ad873befaff0f9da8e55 (diff) | |
download | chromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.zip chromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.tar.gz chromium_src-7d5076ccec7ea4dd83b5aeed0469d7ba0dc013a4.tar.bz2 |
Block SetContinuousInvalidate during BeginImplFrame
This is moving some of BrowserViewRenderer::block_invalidate_
logic into content SynchronousCompositor. In short, during
DemandDraw, SynchronousCompositor will only call
SetContinuousInvalidate once at the very end of the draw, to
prevent the unnecessary state flip leads to an unwanted
invalidate.
This logic originally lives in BrowserViewRenderer. Moving it
to SynchronousCompositor will allow HardwareRenderer to be
refactored out of BrowserViewRenderer
BUG=344087
Review URL: https://codereview.chromium.org/182493002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253965 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/browser/browser_view_renderer.cc')
-rw-r--r-- | android_webview/browser/browser_view_renderer.cc | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc index 4f5669e..1750b44 100644 --- a/android_webview/browser/browser_view_renderer.cc +++ b/android_webview/browser/browser_view_renderer.cc @@ -109,10 +109,7 @@ void BrowserViewRenderer::DrawGL(AwDrawGLInfo* draw_info) { hardware_renderer_.reset(new HardwareRenderer(shared_renderer_state_)); } - { - base::AutoReset<bool> auto_reset(&block_invalidates_, true); - hardware_renderer_->DrawGL(draw_info); - } + hardware_renderer_->DrawGL(draw_info); const DrawGLResult result = shared_renderer_state_->GetDrawGLResult(); if (result.frame_id == draw_gl_input_.frame_id) { @@ -173,7 +170,6 @@ skia::RefPtr<SkPicture> BrowserViewRenderer::CapturePicture(int width, void BrowserViewRenderer::EnableOnNewPicture(bool enabled) { on_new_picture_enable_ = enabled; - EnsureContinuousInvalidation(false); } void BrowserViewRenderer::ClearView() { @@ -338,7 +334,6 @@ void BrowserViewRenderer::DidUpdateContent() { "BrowserViewRenderer::DidUpdateContent", TRACE_EVENT_SCOPE_THREAD); clear_view_ = false; - EnsureContinuousInvalidation(false); if (on_new_picture_enable_) client_->OnNewPicture(); } @@ -490,9 +485,8 @@ void BrowserViewRenderer::ForceFakeCompositeSW() { bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) { DCHECK(has_compositor_); - fallback_tick_.Cancel(); - block_invalidates_ = true; bool result = shared_renderer_state_->CompositorDemandDrawSw(canvas); + fallback_tick_.Cancel(); block_invalidates_ = false; EnsureContinuousInvalidation(false); return result; |