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

Unified Diff: android_webview/browser/browser_view_renderer.cc

Issue 653173004: Part 2: WIP Refactor Webview graphics related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rewrite rebase, without renames 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 side-by-side diff with in-line comments
Download patch
Index: android_webview/browser/browser_view_renderer.cc
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index f897b0ce0642732e3a7549b2d5924830ab153523..6342c72e6a2fe0557f7c944ebd8975a8b543bb7d 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -306,18 +306,6 @@ void BrowserViewRenderer::UpdateParentDrawConstraints() {
}
}
-void BrowserViewRenderer::ReturnUnusedResource(
- scoped_ptr<cc::CompositorFrame> frame) {
- if (!frame.get())
- return;
-
- cc::CompositorFrameAck frame_ack;
- cc::TransferableResource::ReturnResources(
- frame->delegated_frame_data->resource_list, &frame_ack.resources);
- if (compositor_ && !frame_ack.resources.empty())
- compositor_->ReturnResources(frame_ack);
-}
-
void BrowserViewRenderer::ReturnResourceFromParent() {
cc::CompositorFrameAck frame_ack;
shared_renderer_state_.SwapReturnedResourcesOnUI(&frame_ack.resources);
@@ -453,11 +441,8 @@ void BrowserViewRenderer::OnDetachedFromWindow() {
void BrowserViewRenderer::ReleaseHardware() {
DCHECK(hardware_enabled_);
- // TODO(hush): do this in somewhere else. Either in hardware render or in
- // shared renderer state.
- ReturnUnusedResource(shared_renderer_state_.PassCompositorFrame());
ReturnResourceFromParent();
- DCHECK(shared_renderer_state_.ReturnedResourcesEmpty());
+ DCHECK(shared_renderer_state_.ReturnedResourcesEmptyOnUI());
if (compositor_) {
compositor_->ReleaseHwDraw();
@@ -469,6 +454,10 @@ void BrowserViewRenderer::ReleaseHardware() {
GlobalTileManager::GetInstance()->Remove(tile_manager_key_);
}
+void BrowserViewRenderer::InvalidateOnFunctorDestroy() {
+ client_->InvalidateOnFunctorDestroy();
+}
+
bool BrowserViewRenderer::IsVisible() const {
// Ignore |window_visible_| if |attached_to_window_| is false.
return view_visible_ && (!attached_to_window_ || window_visible_);
@@ -754,9 +743,9 @@ void BrowserViewRenderer::FallbackTickFired() {
if (compositor_needs_continuous_invalidate_ && compositor_) {
if (hardware_enabled_) {
ReturnResourceFromParent();
- ReturnUnusedResource(shared_renderer_state_.PassCompositorFrame());
boliu 2014/10/28 19:49:43 This isn't quite the same anymore. This used to r
hush (inactive) 2014/10/29 19:57:04 The resources in SRS::returned_resources_ will be
scoped_ptr<cc::CompositorFrame> frame = CompositeHw();
if (frame.get()) {
+ // Unused resource will be returned in SetCompositorFrameOnUI.
shared_renderer_state_.SetCompositorFrameOnUI(frame.Pass(), true);
}
} else {

Powered by Google App Engine
This is Rietveld 408576698