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

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

Issue 2029323004: Get rid of virtual Display::CreateScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onscreendisplayclient
Patch Set: displaytest: androids Created 4 years, 7 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 5c51d203682cb540dcde74ac4a6107cffcbfee15..a9dd95e5fe0e004bf1fe20df069099478da0e0fb 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -141,8 +141,7 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface,
CompositorImpl* compositor,
scoped_refptr<ContextProviderCommandBuffer> context_provider,
const base::Callback<void(gpu::Capabilities)>&
- populate_gpu_capabilities_callback,
- std::unique_ptr<ExternalBeginFrameSource> begin_frame_source)
+ populate_gpu_capabilities_callback)
: cc::OutputSurface(std::move(context_provider), nullptr, nullptr),
compositor_(compositor),
populate_gpu_capabilities_callback_(populate_gpu_capabilities_callback),
@@ -151,8 +150,7 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface,
base::Unretained(this))),
overlay_candidate_validator_(
new display_compositor::
- CompositorOverlayCandidateValidatorAndroid()),
- begin_frame_source_(std::move(begin_frame_source)) {
+ CompositorOverlayCandidateValidatorAndroid()) {
capabilities_.adjust_deadline_for_parent = false;
capabilities_.max_frames_pending = kMaxDisplaySwapBuffers;
}
@@ -182,16 +180,9 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface,
context_provider_->ContextCapabilities());
compositor_->AddObserver(this);
- client->SetBeginFrameSource(begin_frame_source_.get());
-
return true;
}
- void DetachFromClient() override {
- client_->SetBeginFrameSource(nullptr);
- OutputSurface::DetachFromClient();
- }
-
cc::OverlayCandidateValidator* GetOverlayCandidateValidator() const override {
return overlay_candidate_validator_.get();
}
@@ -228,20 +219,17 @@ class OutputSurfaceWithoutParent : public cc::OutputSurface,
const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac)>
swap_buffers_completion_callback_;
std::unique_ptr<cc::OverlayCandidateValidator> overlay_candidate_validator_;
- std::unique_ptr<ExternalBeginFrameSource> begin_frame_source_;
};
#if defined(ENABLE_VULKAN)
class VulkanOutputSurface : public cc::OutputSurface {
public:
VulkanOutputSurface(
- scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider,
- std::unique_ptr<ExternalBeginFrameSource> begin_frame_source)
+ scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider)
: OutputSurface(nullptr,
nullptr,
std::move(vulkan_context_provider),
- nullptr),
- begin_frame_source_(std::move(begin_frame_source)) {}
+ nullptr) {}
~VulkanOutputSurface() override { Destroy(); }
@@ -261,7 +249,6 @@ class VulkanOutputSurface : public cc::OutputSurface {
bool BindToClient(cc::OutputSurfaceClient* client) override {
if (!OutputSurface::BindToClient(client))
return false;
- client->SetBeginFrameSource(begin_frame_source_.get());
return true;
}
@@ -286,7 +273,6 @@ class VulkanOutputSurface : public cc::OutputSurface {
private:
std::unique_ptr<gpu::VulkanSurface> surface_;
- std::unique_ptr<ExternalBeginFrameSource> begin_frame_source_;
DISALLOW_COPY_AND_ASSIGN(VulkanOutputSurface);
};
@@ -602,9 +588,8 @@ void CompositorImpl::CreateOutputSurface() {
#if defined(ENABLE_VULKAN)
std::unique_ptr<VulkanOutputSurface> vulkan_surface;
if (vulkan_context_provider) {
- vulkan_surface.reset(new VulkanOutputSurface(
- std::move(vulkan_context_provider),
- base::WrapUnique(new ExternalBeginFrameSource(this))));
+ vulkan_surface.reset(
+ new VulkanOutputSurface(std::move(vulkan_context_provider)));
if (!vulkan_surface->Initialize(window_)) {
vulkan_surface->Destroy();
vulkan_surface.reset();
@@ -695,16 +680,18 @@ void CompositorImpl::CreateOutputSurface() {
display_output_surface = base::WrapUnique(new OutputSurfaceWithoutParent(
this, context_provider,
base::Bind(&CompositorImpl::PopulateGpuCapabilities,
- base::Unretained(this)),
- base::WrapUnique(new ExternalBeginFrameSource(this))));
+ base::Unretained(this))));
}
+ begin_frame_source_ = base::MakeUnique<ExternalBeginFrameSource>(this);
+
cc::SurfaceManager* manager = GetSurfaceManager();
display_.reset(new cc::Display(manager, HostSharedBitmapManager::current(),
BrowserGpuMemoryBufferManager::current(),
host_->settings().renderer_settings,
surface_id_allocator_->id_namespace(),
base::ThreadTaskRunnerHandle::Get().get(),
+ begin_frame_source_.get(),
std::move(display_output_surface)));
std::unique_ptr<cc::SurfaceDisplayOutputSurface> delegated_output_surface(

Powered by Google App Engine
This is Rietveld 408576698