Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(871)

Side by Side Diff: android_webview/browser/browser_view_renderer.cc

Issue 603633003: Android WebView: fix missing an invalidate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | android_webview/browser/hardware_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "android_webview/browser/browser_view_renderer.h" 5 #include "android_webview/browser/browser_view_renderer.h"
6 6
7 #include "android_webview/browser/browser_view_renderer_client.h" 7 #include "android_webview/browser/browser_view_renderer_client.h"
8 #include "android_webview/browser/shared_renderer_state.h" 8 #include "android_webview/browser/shared_renderer_state.h"
9 #include "android_webview/common/aw_switches.h" 9 #include "android_webview/common/aw_switches.h"
10 #include "android_webview/public/browser/draw_gl.h" 10 #include "android_webview/public/browser/draw_gl.h"
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 251
252 bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { 252 bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) {
253 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware"); 253 TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware");
254 if (!compositor_) 254 if (!compositor_)
255 return false; 255 return false;
256 256
257 if (last_on_draw_global_visible_rect_.IsEmpty()) { 257 if (last_on_draw_global_visible_rect_.IsEmpty()) {
258 TRACE_EVENT_INSTANT0("android_webview", 258 TRACE_EVENT_INSTANT0("android_webview",
259 "EarlyOut_EmptyVisibleRect", 259 "EarlyOut_EmptyVisibleRect",
260 TRACE_EVENT_SCOPE_THREAD); 260 TRACE_EVENT_SCOPE_THREAD);
261 shared_renderer_state_->SetForceInvalidateOnNextDrawGL(true);
261 return client_->RequestDrawGL(java_canvas, false); 262 return client_->RequestDrawGL(java_canvas, false);
262 } 263 }
263 264
264 if (!hardware_enabled_) { 265 if (!hardware_enabled_) {
265 hardware_enabled_ = compositor_->InitializeHwDraw(); 266 hardware_enabled_ = compositor_->InitializeHwDraw();
266 if (hardware_enabled_) { 267 if (hardware_enabled_) {
267 tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this); 268 tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this);
268 } 269 }
269 } 270 }
270 if (!hardware_enabled_) 271 if (!hardware_enabled_)
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 320
320 frame->AssignTo(&draw_gl_input->frame); 321 frame->AssignTo(&draw_gl_input->frame);
321 shared_renderer_state_->SetDrawGLInput(draw_gl_input.Pass()); 322 shared_renderer_state_->SetDrawGLInput(draw_gl_input.Pass());
322 DidComposite(); 323 DidComposite();
323 return client_->RequestDrawGL(java_canvas, false); 324 return client_->RequestDrawGL(java_canvas, false);
324 } 325 }
325 326
326 void BrowserViewRenderer::UpdateParentDrawConstraints() { 327 void BrowserViewRenderer::UpdateParentDrawConstraints() {
327 // Post an invalidate if the parent draw constraints are stale and there is 328 // Post an invalidate if the parent draw constraints are stale and there is
328 // no pending invalidate. 329 // no pending invalidate.
329 if (!parent_draw_constraints_.Equals( 330 if (shared_renderer_state_->NeedsForceInvalidateOnNextDrawGL() ||
330 shared_renderer_state_->ParentDrawConstraints())) 331 !parent_draw_constraints_.Equals(
332 shared_renderer_state_->ParentDrawConstraints())) {
333 shared_renderer_state_->SetForceInvalidateOnNextDrawGL(false);
331 EnsureContinuousInvalidation(true); 334 EnsureContinuousInvalidation(true);
335 }
332 } 336 }
333 337
334 void BrowserViewRenderer::ReturnUnusedResource(scoped_ptr<DrawGLInput> input) { 338 void BrowserViewRenderer::ReturnUnusedResource(scoped_ptr<DrawGLInput> input) {
335 if (!input.get()) 339 if (!input.get())
336 return; 340 return;
337 341
338 cc::CompositorFrameAck frame_ack; 342 cc::CompositorFrameAck frame_ack;
339 cc::TransferableResource::ReturnResources( 343 cc::TransferableResource::ReturnResources(
340 input->frame.delegated_frame_data->resource_list, 344 input->frame.delegated_frame_data->resource_list,
341 &frame_ack.resources); 345 &frame_ack.resources);
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 base::StringAppendF(&str, 820 base::StringAppendF(&str,
817 "surface width height: [%d %d] ", 821 "surface width height: [%d %d] ",
818 draw_info->width, 822 draw_info->width,
819 draw_info->height); 823 draw_info->height);
820 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); 824 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer);
821 } 825 }
822 return str; 826 return str;
823 } 827 }
824 828
825 } // namespace android_webview 829 } // namespace android_webview
OLDNEW
« no previous file with comments | « no previous file | android_webview/browser/hardware_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698