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

Unified Diff: content/browser/compositor/gpu_process_transport_factory.cc

Issue 2337913003: Fork cc::OutputSurface into cc::CompositorFrameSink. (Closed)
Patch Set: cfsfork: rebase Created 4 years, 3 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/compositor/gpu_process_transport_factory.cc
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc
index 643824fec22648fe1d31573619fa07816cc7bb0d..0f81a2d79205d9a9b207a358dfa6ca34ae3fee51 100644
--- a/content/browser/compositor/gpu_process_transport_factory.cc
+++ b/content/browser/compositor/gpu_process_transport_factory.cc
@@ -18,17 +18,15 @@
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "cc/base/histograms.h"
-#include "cc/output/compositor_frame.h"
-#include "cc/output/output_surface.h"
#include "cc/output/texture_mailbox_deleter.h"
#include "cc/output/vulkan_in_process_context_provider.h"
#include "cc/raster/single_thread_task_graph_runner.h"
#include "cc/raster/task_graph_runner.h"
#include "cc/scheduler/begin_frame_source.h"
#include "cc/scheduler/delay_based_time_source.h"
+#include "cc/surfaces/direct_compositor_frame_sink.h"
#include "cc/surfaces/display.h"
#include "cc/surfaces/display_scheduler.h"
-#include "cc/surfaces/surface_display_output_surface.h"
#include "cc/surfaces/surface_manager.h"
#include "components/display_compositor/compositor_overlay_candidate_validator.h"
#include "components/display_compositor/gl_helper.h"
@@ -262,7 +260,7 @@ CreateOverlayCandidateValidator(gfx::AcceleratedWidget widget) {
return validator;
}
-static bool ShouldCreateGpuOutputSurface(ui::Compositor* compositor) {
+static bool ShouldCreateGpuCompositorFrameSink(ui::Compositor* compositor) {
#if defined(OS_CHROMEOS)
// Software fallback does not happen on Chrome OS.
return true;
@@ -279,7 +277,7 @@ static bool ShouldCreateGpuOutputSurface(ui::Compositor* compositor) {
return GpuDataManagerImpl::GetInstance()->CanUseGpuBrowserCompositor();
}
-void GpuProcessTransportFactory::CreateOutputSurface(
+void GpuProcessTransportFactory::CreateCompositorFrameSink(
base::WeakPtr<ui::Compositor> compositor) {
DCHECK(!!compositor);
PerCompositorData* data = per_compositor_data_[compositor.get()].get();
@@ -287,7 +285,7 @@ void GpuProcessTransportFactory::CreateOutputSurface(
data = CreatePerCompositorData(compositor.get());
} else {
// TODO(danakj): We can destroy the |data->display| here when the compositor
- // destroys its OutputSurface before calling back here.
+ // destroys its CompositorFrameSink before calling back here.
data->display_output_surface = nullptr;
data->begin_frame_source = nullptr;
}
@@ -299,7 +297,7 @@ void GpuProcessTransportFactory::CreateOutputSurface(
const bool use_vulkan = static_cast<bool>(SharedVulkanContextProvider());
const bool create_gpu_output_surface =
- ShouldCreateGpuOutputSurface(compositor.get());
+ ShouldCreateGpuCompositorFrameSink(compositor.get());
if (create_gpu_output_surface && !use_vulkan) {
gpu::GpuChannelEstablishedCallback callback(
base::Bind(&GpuProcessTransportFactory::EstablishedGpuChannel,
@@ -553,21 +551,21 @@ void GpuProcessTransportFactory::EstablishedGpuChannel(
// The |delegated_output_surface| is given back to the compositor, it
// delegates to the Display as its root surface. Importantly, it shares the
// same ContextProvider as the Display's output surface.
- std::unique_ptr<cc::SurfaceDisplayOutputSurface> delegated_output_surface(
+ auto compositor_frame_sink =
vulkan_context_provider
- ? new cc::SurfaceDisplayOutputSurface(
+ ? base::MakeUnique<cc::DirectCompositorFrameSink>(
surface_manager_.get(), compositor->surface_id_allocator(),
data->display.get(),
static_cast<scoped_refptr<cc::VulkanContextProvider>>(
vulkan_context_provider))
- : new cc::SurfaceDisplayOutputSurface(
+ : base::MakeUnique<cc::DirectCompositorFrameSink>(
surface_manager_.get(), compositor->surface_id_allocator(),
data->display.get(), context_provider,
- shared_worker_context_provider_));
+ shared_worker_context_provider_);
data->display->Resize(compositor->size());
data->display->SetOutputIsSecure(data->output_is_secure);
data->display->SetColorSpace(data->color_space);
- compositor->SetOutputSurface(std::move(delegated_output_surface));
+ compositor->SetCompositorFrameSink(std::move(compositor_frame_sink));
}
std::unique_ptr<ui::Reflector> GpuProcessTransportFactory::CreateReflector(

Powered by Google App Engine
This is Rietveld 408576698