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

Unified Diff: android_webview/browser/hardware_renderer.cc

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make CompositorFrameMetadata movable Created 4 years, 6 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/hardware_renderer.cc
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc
index acac292f4be6b8311fa1c56334dccd5710442810..c75ec943e1c58da6c7c687e5a39c440c9872f481 100644
--- a/android_webview/browser/hardware_renderer.cc
+++ b/android_webview/browser/hardware_renderer.cc
@@ -110,7 +110,7 @@ void HardwareRenderer::CommitFrame() {
last_committed_output_surface_id_ = child_frame->output_surface_id;
ReturnResourcesInChildFrame();
child_frame_ = std::move(child_frame);
- DCHECK(child_frame_->frame.get());
+ DCHECK(child_frame_->frame);
DCHECK(!child_frame_->frame->gl_frame_data);
}
@@ -131,7 +131,7 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
// during "kModeSync" stage (which does not allow GL) might result in extra
// kModeProcess. Instead, submit the frame in "kModeDraw" stage to avoid
// unnecessary kModeProcess.
- if (child_frame_.get() && child_frame_->frame.get()) {
+ if (child_frame_.get() && child_frame_->frame) {
if (!compositor_id_.Equals(child_frame_->compositor_id) ||
last_submitted_output_surface_id_ != child_frame_->output_surface_id) {
if (!root_id_.is_null())
@@ -150,8 +150,9 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
new cc::SurfaceFactory(surface_manager_.get(), this));
}
- std::unique_ptr<cc::CompositorFrame> child_compositor_frame =
- std::move(child_frame_->frame);
+ std::unique_ptr<cc::CompositorFrame> child_compositor_frame(
+ new cc::CompositorFrame);
+ *child_compositor_frame = std::move(*child_frame_->frame);
// On Android we put our browser layers in physical pixels and set our
// browser CC device_scale_factor to 1, so suppress the transform between
@@ -218,7 +219,7 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info,
std::unique_ptr<cc::DelegatedFrameData> delegated_frame(
new cc::DelegatedFrameData);
delegated_frame->render_pass_list.push_back(std::move(render_pass));
- std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame);
+ std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame());
frame->delegated_frame_data = std::move(delegated_frame);
if (root_id_.is_null()) {
@@ -253,7 +254,7 @@ void HardwareRenderer::SetBackingFrameBufferObject(
}
void HardwareRenderer::ReturnResourcesInChildFrame() {
- if (child_frame_.get() && child_frame_->frame.get()) {
+ if (child_frame_.get() && child_frame_->frame) {
cc::ReturnedResourceArray resources_to_return;
cc::TransferableResource::ReturnResources(
child_frame_->frame->delegated_frame_data->resource_list,

Powered by Google App Engine
This is Rietveld 408576698