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

Unified Diff: content/browser/renderer_host/compositor_impl_android.cc

Issue 2402173002: cc: Get rid of PostSwapBuffersComplete. (Closed)
Patch Set: postswap: . Created 4 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: content/browser/renderer_host/compositor_impl_android.cc
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
index 544849c7a630f63c1efff8dd45ddb03f056b99df..42a9a85ad69b2afb84f1f189a734626127c00e63 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -311,8 +311,11 @@ class AndroidOutputSurface : public cc::OutputSurface {
class VulkanOutputSurface : public cc::OutputSurface {
public:
explicit VulkanOutputSurface(
- scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider)
- : OutputSurface(std::move(vulkan_context_provider)) {}
+ scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider,
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner)
+ : OutputSurface(std::move(vulkan_context_provider)),
+ task_runner_(std::move(task_runner)),
+ weak_ptr_factory_(this) {}
~VulkanOutputSurface() override { Destroy(); }
@@ -337,7 +340,9 @@ class VulkanOutputSurface : public cc::OutputSurface {
void SwapBuffers(cc::CompositorFrame frame) override {
surface_->SwapBuffers();
- PostSwapBuffersComplete();
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(&VulkanOutputSurface::SwapBuffersCallback,
+ weak_ptr_factory_.GetWeakPtr()));
}
void Destroy() {
@@ -347,14 +352,14 @@ class VulkanOutputSurface : public cc::OutputSurface {
}
}
- void OnSwapBuffersCompleted(const std::vector<ui::LatencyInfo>& latency_info,
- gfx::SwapResult result) {
- RenderWidgetHostImpl::CompositorFrameDrawn(latency_info);
- OutputSurface::OnSwapBuffersComplete();
+ private:
+ void OutputSurface::SwapBuffersCallback() {
+ client_->DidSwapBuffersComplete();
}
- private:
std::unique_ptr<gpu::VulkanSurface> surface_;
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ base::WeakPtrFactory<VulkanOutputSurface> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(VulkanOutputSurface);
};
@@ -641,8 +646,8 @@ void CompositorImpl::CreateVulkanOutputSurface() {
if (!vulkan_context_provider)
return;
- auto vulkan_surface =
- base::MakeUnique<VulkanOutputSurface>(vulkan_context_provider);
+ auto vulkan_surface = base::MakeUnique<VulkanOutputSurface>(
+ vulkan_context_provider, base::ThreadTaskRunnerHandle::Get());
if (!vulkan_surface->Initialize(window_))
return;

Powered by Google App Engine
This is Rietveld 408576698