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

Unified Diff: android_webview/browser/browser_view_renderer.cc

Issue 1769913003: sync compositor: Add output_surface_id (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix nit in test Created 4 years, 9 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
« no previous file with comments | « no previous file | android_webview/browser/browser_view_renderer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9cc3669ba5266da28d0de80f70917c578bf1d6f7..cf6b4b4f6fc9262776adad9e860cc7dbf020bb83 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -250,23 +250,24 @@ bool BrowserViewRenderer::OnDrawHardware() {
viewport_rect_for_tile_priority = last_on_draw_global_visible_rect_;
}
- scoped_ptr<cc::CompositorFrame> frame =
+ content::SynchronousCompositor::Frame frame =
compositor_->DemandDrawHw(surface_size,
gfx::Transform(),
viewport,
clip,
viewport_rect_for_tile_priority,
transform_for_tile_priority);
- if (!frame.get()) {
+ if (!frame.frame.get()) {
TRACE_EVENT_INSTANT0("android_webview", "NoNewFrame",
TRACE_EVENT_SCOPE_THREAD);
return shared_renderer_state_.HasFrameOnUI();
}
scoped_ptr<ChildFrame> child_frame = make_scoped_ptr(new ChildFrame(
- std::move(frame), GetCompositorID(compositor_),
- viewport_rect_for_tile_priority.IsEmpty(), transform_for_tile_priority,
- offscreen_pre_raster_, parent_draw_constraints.is_layer));
+ frame.output_surface_id, std::move(frame.frame),
+ GetCompositorID(compositor_), viewport_rect_for_tile_priority.IsEmpty(),
+ transform_for_tile_priority, offscreen_pre_raster_,
+ parent_draw_constraints.is_layer));
ReturnUnusedResource(shared_renderer_state_.PassUncommittedFrameOnUI());
shared_renderer_state_.SetCompositorFrameOnUI(std::move(child_frame));
@@ -292,21 +293,23 @@ void BrowserViewRenderer::ReturnUnusedResource(
content::SynchronousCompositor* compositor =
compositor_map_[child_frame->compositor_id];
if (compositor && !frame_ack.resources.empty())
- compositor->ReturnResources(frame_ack);
+ compositor->ReturnResources(child_frame->output_surface_id, frame_ack);
}
void BrowserViewRenderer::ReturnResourceFromParent() {
- std::map<uint32_t, cc::ReturnedResourceArray> returned_resource_map;
+ SharedRendererState::ReturnedResourcesMap returned_resource_map;
shared_renderer_state_.SwapReturnedResourcesOnUI(&returned_resource_map);
for (auto iterator = returned_resource_map.begin();
iterator != returned_resource_map.end(); iterator++) {
uint32_t compositor_id = iterator->first;
content::SynchronousCompositor* compositor = compositor_map_[compositor_id];
cc::CompositorFrameAck frame_ack;
- frame_ack.resources.swap(iterator->second);
+ frame_ack.resources.swap(iterator->second.resources);
- if (compositor && !frame_ack.resources.empty())
- compositor->ReturnResources(frame_ack);
+ if (compositor && !frame_ack.resources.empty()) {
+ compositor->ReturnResources(iterator->second.output_surface_id,
+ frame_ack);
+ }
}
}
« no previous file with comments | « no previous file | android_webview/browser/browser_view_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698