| OLD | NEW |
| 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 } | 261 } |
| 262 | 262 |
| 263 bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { | 263 bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
| 264 if (!compositor_) | 264 if (!compositor_) |
| 265 return false; | 265 return false; |
| 266 | 266 |
| 267 if (!hardware_enabled_) { | 267 if (!hardware_enabled_) { |
| 268 hardware_enabled_ = compositor_->InitializeHwDraw(); | 268 hardware_enabled_ = compositor_->InitializeHwDraw(); |
| 269 if (hardware_enabled_) { | 269 if (hardware_enabled_) { |
| 270 tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this); | 270 tile_manager_key_ = GlobalTileManager::GetInstance()->PushBack(this); |
| 271 gpu::GLInProcessContext* share_context = compositor_->GetShareContext(); | |
| 272 DCHECK(share_context); | |
| 273 shared_renderer_state_->SetSharedContext(share_context); | |
| 274 } | 271 } |
| 275 } | 272 } |
| 276 if (!hardware_enabled_) | 273 if (!hardware_enabled_) |
| 277 return false; | 274 return false; |
| 278 | 275 |
| 279 ReturnResourceFromParent(); | 276 ReturnResourceFromParent(); |
| 280 SynchronousCompositorMemoryPolicy new_policy = CalculateDesiredMemoryPolicy(); | 277 SynchronousCompositorMemoryPolicy new_policy = CalculateDesiredMemoryPolicy(); |
| 281 RequestMemoryPolicy(new_policy); | 278 RequestMemoryPolicy(new_policy); |
| 282 compositor_->SetMemoryPolicy(memory_policy_); | 279 compositor_->SetMemoryPolicy(memory_policy_); |
| 283 | 280 |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 DCHECK(!hardware_enabled_); | 466 DCHECK(!hardware_enabled_); |
| 470 } | 467 } |
| 471 | 468 |
| 472 void BrowserViewRenderer::ReleaseHardware() { | 469 void BrowserViewRenderer::ReleaseHardware() { |
| 473 DCHECK(hardware_enabled_); | 470 DCHECK(hardware_enabled_); |
| 474 ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput()); | 471 ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput()); |
| 475 ReturnResourceFromParent(); | 472 ReturnResourceFromParent(); |
| 476 DCHECK(shared_renderer_state_->ReturnedResourcesEmpty()); | 473 DCHECK(shared_renderer_state_->ReturnedResourcesEmpty()); |
| 477 | 474 |
| 478 compositor_->ReleaseHwDraw(); | 475 compositor_->ReleaseHwDraw(); |
| 479 shared_renderer_state_->SetSharedContext(NULL); | |
| 480 hardware_enabled_ = false; | 476 hardware_enabled_ = false; |
| 481 | 477 |
| 482 SynchronousCompositorMemoryPolicy zero_policy; | 478 SynchronousCompositorMemoryPolicy zero_policy; |
| 483 RequestMemoryPolicy(zero_policy); | 479 RequestMemoryPolicy(zero_policy); |
| 484 GlobalTileManager::GetInstance()->Remove(tile_manager_key_); | 480 GlobalTileManager::GetInstance()->Remove(tile_manager_key_); |
| 485 } | 481 } |
| 486 | 482 |
| 487 bool BrowserViewRenderer::IsVisible() const { | 483 bool BrowserViewRenderer::IsVisible() const { |
| 488 // Ignore |window_visible_| if |attached_to_window_| is false. | 484 // Ignore |window_visible_| if |attached_to_window_| is false. |
| 489 return view_visible_ && (!attached_to_window_ || window_visible_); | 485 return view_visible_ && (!attached_to_window_ || window_visible_); |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 815 base::StringAppendF(&str, | 811 base::StringAppendF(&str, |
| 816 "surface width height: [%d %d] ", | 812 "surface width height: [%d %d] ", |
| 817 draw_info->width, | 813 draw_info->width, |
| 818 draw_info->height); | 814 draw_info->height); |
| 819 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); | 815 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); |
| 820 } | 816 } |
| 821 return str; | 817 return str; |
| 822 } | 818 } |
| 823 | 819 |
| 824 } // namespace android_webview | 820 } // namespace android_webview |
| OLD | NEW |