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

Unified Diff: components/mus/surfaces/display_compositor.cc

Issue 2029323004: Get rid of virtual Display::CreateScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onscreendisplayclient
Patch Set: displaytest: unusedvar Created 4 years, 6 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: components/mus/surfaces/display_compositor.cc
diff --git a/components/mus/surfaces/display_compositor.cc b/components/mus/surfaces/display_compositor.cc
index 79e052305c3b3ea96e4c7d4e92bf80c7eda307b5..e90909921e8f282596b7d4cf29e36fdd253fb47f 100644
--- a/components/mus/surfaces/display_compositor.cc
+++ b/components/mus/surfaces/display_compositor.cc
@@ -7,7 +7,11 @@
#include "cc/output/copy_output_request.h"
#include "cc/output/output_surface.h"
#include "cc/output/renderer_settings.h"
+#include "cc/output/texture_mailbox_deleter.h"
+#include "cc/scheduler/begin_frame_source.h"
+#include "cc/scheduler/delay_based_time_source.h"
#include "cc/surfaces/display.h"
+#include "cc/surfaces/display_scheduler.h"
#include "components/mus/surfaces/direct_output_surface.h"
#include "components/mus/surfaces/surfaces_context_provider.h"
@@ -36,29 +40,38 @@ DisplayCompositor::DisplayCompositor(
// TODO(rjkroege): If there is something better to do than CHECK, add it.
CHECK(surfaces_context_provider->BindToCurrentThread());
+ std::unique_ptr<cc::SyntheticBeginFrameSource> synthetic_begin_frame_source(
+ new cc::DelayBasedBeginFrameSource(
+ base::MakeUnique<cc::DelayBasedTimeSource>(task_runner_.get())));
+
std::unique_ptr<cc::OutputSurface> display_output_surface;
if (surfaces_context_provider->ContextCapabilities().surfaceless) {
#if defined(USE_OZONE)
display_output_surface = base::WrapUnique(new DirectOutputSurfaceOzone(
- surfaces_context_provider, widget, task_runner_.get(), GL_TEXTURE_2D,
- GL_RGB));
+ surfaces_context_provider, widget, synthetic_begin_frame_source.get(),
+ GL_TEXTURE_2D, GL_RGB));
#else
NOTREACHED();
#endif
} else {
- display_output_surface = base::WrapUnique(
- new DirectOutputSurface(surfaces_context_provider, task_runner_.get()));
+ display_output_surface = base::WrapUnique(new DirectOutputSurface(
+ surfaces_context_provider, synthetic_begin_frame_source.get()));
}
int max_frames_pending =
display_output_surface->capabilities().max_frames_pending;
DCHECK_GT(max_frames_pending, 0);
- display_.reset(
- new cc::Display(surfaces_state_->manager(), nullptr /* bitmap_manager */,
- nullptr /* gpu_memory_buffer_manager */,
- cc::RendererSettings(), allocator_.id_namespace(),
- task_runner_.get(), std::move(display_output_surface)));
+ std::unique_ptr<cc::DisplayScheduler> scheduler(
+ new cc::DisplayScheduler(synthetic_begin_frame_source.get(),
+ task_runner_.get(), max_frames_pending));
+
+ display_.reset(new cc::Display(
+ surfaces_state_->manager(), nullptr /* bitmap_manager */,
+ nullptr /* gpu_memory_buffer_manager */, cc::RendererSettings(),
+ allocator_.id_namespace(), std::move(synthetic_begin_frame_source),
+ std::move(display_output_surface), std::move(scheduler),
+ base::MakeUnique<cc::TextureMailboxDeleter>(task_runner_.get())));
bool init = display_->Initialize(this);
DCHECK(init); // The context provider was already bound above.
« no previous file with comments | « components/mus/surfaces/direct_output_surface_ozone.cc ('k') | content/browser/compositor/browser_compositor_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698