Index: content/browser/compositor/vulkan_browser_compositor_output_surface.cc |
diff --git a/content/browser/compositor/vulkan_browser_compositor_output_surface.cc b/content/browser/compositor/vulkan_browser_compositor_output_surface.cc |
index 31ef0b7808f61cf3e192adbe76f8e8d197b18621..da97d27459160e3b82ac538da777df23ccde225f 100644 |
--- a/content/browser/compositor/vulkan_browser_compositor_output_surface.cc |
+++ b/content/browser/compositor/vulkan_browser_compositor_output_surface.cc |
@@ -11,12 +11,13 @@ |
namespace content { |
VulkanBrowserCompositorOutputSurface::VulkanBrowserCompositorOutputSurface( |
- const scoped_refptr<cc::VulkanContextProvider>& context, |
- const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager, |
+ scoped_refptr<cc::VulkanContextProvider> context, |
+ scoped_refptr<ui::CompositorVSyncManager> vsync_manager, |
cc::SyntheticBeginFrameSource* begin_frame_source) |
- : BrowserCompositorOutputSurface(context, |
- vsync_manager, |
- begin_frame_source) {} |
+ : BrowserCompositorOutputSurface(std::move(context), |
+ std::move(vsync_manager), |
+ begin_frame_source), |
+ weak_ptr_factory_(this) {} |
VulkanBrowserCompositorOutputSurface::~VulkanBrowserCompositorOutputSurface() { |
Destroy(); |
@@ -43,17 +44,67 @@ void VulkanBrowserCompositorOutputSurface::Destroy() { |
} |
} |
-void VulkanBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted( |
- const std::vector<ui::LatencyInfo>& latency_info, |
- gfx::SwapResult result, |
- const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) { |
- RenderWidgetHostImpl::CompositorFrameDrawn(latency_info); |
- client_->DidReceiveSwapBuffersAck(); |
+void VulkanBrowserCompositorOutputSurface::BindToClient( |
+ cc::OutputSurfaceClient* client) { |
+ DCHECK(client); |
+ DCHECK(!client_); |
+ client_ = client; |
+} |
+ |
+void VulkanBrowserCompositorOutputSurface::EnsureBackbuffer() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void VulkanBrowserCompositorOutputSurface::DiscardBackbuffer() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void VulkanBrowserCompositorOutputSurface::BindFramebuffer() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+bool VulkanBrowserCompositorOutputSurface::IsDisplayedAsOverlayPlane() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+unsigned VulkanBrowserCompositorOutputSurface::GetOverlayTextureId() const { |
+ NOTIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+bool VulkanBrowserCompositorOutputSurface::SurfaceIsSuspendForRecycle() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+void VulkanBrowserCompositorOutputSurface::Reshape( |
+ const gfx::Size& size, |
+ float device_scale_factor, |
+ const gfx::ColorSpace& color_space, |
+ bool has_alpha) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+uint32_t |
+VulkanBrowserCompositorOutputSurface::GetFramebufferCopyTextureFormat() { |
+ NOTIMPLEMENTED(); |
+ return 0; |
} |
void VulkanBrowserCompositorOutputSurface::SwapBuffers( |
- cc::CompositorFrame* frame) { |
+ cc::OutputSurfaceFrame frame) { |
surface_->SwapBuffers(); |
+ |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&VulkanBrowserCompositorOutputSurface::SwapBuffersAck, |
+ weak_ptr_factory_.GetWeakPtr())); |
+} |
+ |
+void VulkanBrowserCompositorOutputSurface::SwapBuffersAck() { |
+ DCHECK(client_); |
+ client_->DidReceiveSwapBuffersAck(); |
} |
} // namespace content |