Index: android_webview/browser/hardware_renderer.cc |
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc |
index b951f94e0891262c2406aff2bbbf3d3cef6bceaf..56b9e008b26eee3dd6dc7baad8b2117f24b12de6 100644 |
--- a/android_webview/browser/hardware_renderer.cc |
+++ b/android_webview/browser/hardware_renderer.cc |
@@ -13,6 +13,7 @@ |
#include "android_webview/browser/render_thread_manager.h" |
#include "android_webview/browser/surfaces_instance.h" |
#include "android_webview/public/browser/draw_gl.h" |
+#include "base/memory/ptr_util.h" |
#include "base/trace_event/trace_event.h" |
#include "cc/output/compositor_frame.h" |
#include "cc/surfaces/surface_factory.h" |
@@ -27,15 +28,15 @@ HardwareRenderer::HardwareRenderer(RenderThreadManager* state) |
: render_thread_manager_(state), |
last_egl_context_(eglGetCurrentContext()), |
surfaces_(SurfacesInstance::GetOrCreateInstance()), |
+ frame_sink_id_(surfaces_->AllocateFrameSinkId()), |
surface_id_allocator_( |
- new cc::SurfaceIdAllocator(surfaces_->AllocateFrameSinkId())), |
+ base::MakeUnique<cc::SurfaceIdAllocator>(frame_sink_id_)), |
last_committed_compositor_frame_sink_id_(0u), |
last_submitted_compositor_frame_sink_id_(0u) { |
DCHECK(last_egl_context_); |
- surfaces_->GetSurfaceManager()->RegisterFrameSinkId( |
- surface_id_allocator_->frame_sink_id()); |
- surfaces_->GetSurfaceManager()->RegisterSurfaceFactoryClient( |
- surface_id_allocator_->frame_sink_id(), this); |
+ surfaces_->GetSurfaceManager()->RegisterFrameSinkId(frame_sink_id_); |
+ surfaces_->GetSurfaceManager()->RegisterSurfaceFactoryClient(frame_sink_id_, |
+ this); |
} |
HardwareRenderer::~HardwareRenderer() { |
@@ -45,9 +46,8 @@ HardwareRenderer::~HardwareRenderer() { |
DestroySurface(); |
surface_factory_.reset(); |
surfaces_->GetSurfaceManager()->UnregisterSurfaceFactoryClient( |
- surface_id_allocator_->frame_sink_id()); |
- surfaces_->GetSurfaceManager()->InvalidateFrameSinkId( |
- surface_id_allocator_->frame_sink_id()); |
+ frame_sink_id_); |
+ surfaces_->GetSurfaceManager()->InvalidateFrameSinkId(frame_sink_id_); |
// Reset draw constraints. |
render_thread_manager_->PostExternalDrawConstraintsToChildCompositorOnRT( |
@@ -99,8 +99,8 @@ void HardwareRenderer::DrawGL(AwDrawGLInfo* draw_info) { |
compositor_id_ = child_frame_->compositor_id; |
last_submitted_compositor_frame_sink_id_ = |
child_frame_->compositor_frame_sink_id; |
- surface_factory_.reset( |
- new cc::SurfaceFactory(surfaces_->GetSurfaceManager(), this)); |
+ surface_factory_.reset(new cc::SurfaceFactory( |
+ frame_sink_id_, surfaces_->GetSurfaceManager(), this)); |
} |
std::unique_ptr<cc::CompositorFrame> child_compositor_frame = |