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

Unified Diff: ui/compositor/test/in_process_context_factory.cc

Issue 2029323004: Get rid of virtual Display::CreateScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onscreendisplayclient
Patch Set: displaytest: ownership-all-the-things 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: ui/compositor/test/in_process_context_factory.cc
diff --git a/ui/compositor/test/in_process_context_factory.cc b/ui/compositor/test/in_process_context_factory.cc
index 3df283249cf99e744d3856da24ec014ce64b7dba..af03bb44a84e6ddd955c155058770735f0e58a71 100644
--- a/ui/compositor/test/in_process_context_factory.cc
+++ b/ui/compositor/test/in_process_context_factory.cc
@@ -14,6 +14,10 @@
#include "cc/output/compositor_frame.h"
#include "cc/output/context_provider.h"
#include "cc/output/output_surface_client.h"
+#include "cc/output/texture_mailbox_deleter.h"
+#include "cc/scheduler/begin_frame_source.h"
+#include "cc/surfaces/display.h"
+#include "cc/surfaces/display_scheduler.h"
#include "cc/surfaces/surface_display_output_surface.h"
#include "cc/surfaces/surface_id_allocator.h"
#include "cc/test/pixel_test_output_surface.h"
@@ -46,10 +50,8 @@ class DirectOutputSurface : public cc::OutputSurface {
public:
DirectOutputSurface(
const scoped_refptr<cc::ContextProvider>& context_provider,
- const scoped_refptr<cc::ContextProvider>& worker_context_provider,
- std::unique_ptr<cc::BeginFrameSource> begin_frame_source)
+ const scoped_refptr<cc::ContextProvider>& worker_context_provider)
: cc::OutputSurface(context_provider, worker_context_provider, nullptr),
- begin_frame_source_(std::move(begin_frame_source)),
weak_ptr_factory_(this) {}
~DirectOutputSurface() override {}
@@ -58,8 +60,6 @@ class DirectOutputSurface : public cc::OutputSurface {
bool BindToClient(cc::OutputSurfaceClient* client) override {
if (!OutputSurface::BindToClient(client))
return false;
-
- client->SetBeginFrameSource(begin_frame_source_.get());
return true;
}
void SwapBuffers(cc::CompositorFrame* frame) override {
@@ -86,8 +86,6 @@ class DirectOutputSurface : public cc::OutputSurface {
}
private:
- std::unique_ptr<cc::BeginFrameSource> begin_frame_source_;
-
base::WeakPtrFactory<DirectOutputSurface> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(DirectOutputSurface);
@@ -149,35 +147,38 @@ void InProcessContextFactory::CreateOutputSurface(
"UICompositor");
std::unique_ptr<cc::OutputSurface> display_output_surface;
- std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source(
- new cc::SyntheticBeginFrameSource(compositor->task_runner().get(),
- cc::BeginFrameArgs::DefaultInterval()));
-
if (use_test_surface_) {
bool flipped_output_surface = false;
display_output_surface = base::WrapUnique(new cc::PixelTestOutputSurface(
context_provider, shared_worker_context_provider_,
- flipped_output_surface, std::move(begin_frame_source)));
+ flipped_output_surface));
} else {
display_output_surface = base::WrapUnique(new DirectOutputSurface(
- context_provider, shared_worker_context_provider_,
- std::move(begin_frame_source)));
+ context_provider, shared_worker_context_provider_));
}
if (surface_manager_) {
- std::unique_ptr<cc::Display> display(new cc::Display(
+ std::unique_ptr<cc::SyntheticBeginFrameSource> begin_frame_source(
+ new cc::SyntheticBeginFrameSource(
+ compositor->task_runner().get(),
+ cc::BeginFrameArgs::DefaultInterval()));
+ std::unique_ptr<cc::DisplayScheduler> scheduler(new cc::DisplayScheduler(
+ begin_frame_source.get(), compositor->task_runner().get(),
+ display_output_surface->capabilities().max_frames_pending));
+ per_compositor_data_[compositor.get()] = base::MakeUnique<cc::Display>(
surface_manager_, GetSharedBitmapManager(), GetGpuMemoryBufferManager(),
compositor->GetRendererSettings(),
compositor->surface_id_allocator()->id_namespace(),
- compositor->task_runner().get(), std::move(display_output_surface)));
+ std::move(begin_frame_source), std::move(display_output_surface),
+ std::move(scheduler), base::MakeUnique<cc::TextureMailboxDeleter>(
+ compositor->task_runner().get()));
+
+ auto* display = per_compositor_data_[compositor.get()].get();
std::unique_ptr<cc::SurfaceDisplayOutputSurface> surface_output_surface(
new cc::SurfaceDisplayOutputSurface(
- surface_manager_, compositor->surface_id_allocator(), display.get(),
+ surface_manager_, compositor->surface_id_allocator(), display,
context_provider, shared_worker_context_provider_));
-
compositor->SetOutputSurface(std::move(surface_output_surface));
-
- per_compositor_data_[compositor.get()] = std::move(display);
} else {
compositor->SetOutputSurface(std::move(display_output_surface));
}
« cc/surfaces/display.cc ('K') | « content/browser/renderer_host/compositor_impl_android.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698