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

Unified Diff: cc/surfaces/display.cc

Issue 2144393003: cc: Allow TestDelegatingOutputSurface to be used for non-pixel tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/display_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/surfaces/display.cc
diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
index 21be0478f67be267d870c647f396eed9bef9ae31..013fd66e4ef3362f85bbf196c4d6aefad1735e17 100644
--- a/cc/surfaces/display.cc
+++ b/cc/surfaces/display.cc
@@ -32,40 +32,33 @@
namespace cc {
-Display::Display(SurfaceManager* manager,
- SharedBitmapManager* bitmap_manager,
+Display::Display(SharedBitmapManager* bitmap_manager,
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
const RendererSettings& settings,
- uint32_t compositor_surface_namespace,
std::unique_ptr<BeginFrameSource> begin_frame_source,
std::unique_ptr<OutputSurface> output_surface,
std::unique_ptr<DisplayScheduler> scheduler,
std::unique_ptr<TextureMailboxDeleter> texture_mailbox_deleter)
- : surface_manager_(manager),
- bitmap_manager_(bitmap_manager),
+ : bitmap_manager_(bitmap_manager),
gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
settings_(settings),
- compositor_surface_namespace_(compositor_surface_namespace),
begin_frame_source_(std::move(begin_frame_source)),
output_surface_(std::move(output_surface)),
scheduler_(std::move(scheduler)),
texture_mailbox_deleter_(std::move(texture_mailbox_deleter)) {
- DCHECK(surface_manager_);
DCHECK(output_surface_);
DCHECK_EQ(!scheduler_, !begin_frame_source_);
-
- surface_manager_->AddObserver(this);
-
if (scheduler_)
scheduler_->SetClient(this);
}
Display::~Display() {
// Only do this if Initialize() happened.
- if (begin_frame_source_ && client_)
- surface_manager_->UnregisterBeginFrameSource(begin_frame_source_.get());
-
- surface_manager_->RemoveObserver(this);
+ if (client_) {
+ if (begin_frame_source_)
+ surface_manager_->UnregisterBeginFrameSource(begin_frame_source_.get());
+ surface_manager_->RemoveObserver(this);
+ }
if (aggregator_) {
for (const auto& id_entry : aggregator_->previous_contained_surfaces()) {
Surface* surface = surface_manager_->GetSurfaceForId(id_entry.first);
@@ -75,9 +68,16 @@ Display::~Display() {
}
}
-void Display::Initialize(DisplayClient* client) {
+void Display::Initialize(DisplayClient* client,
+ SurfaceManager* surface_manager,
+ uint32_t compositor_surface_namespace) {
DCHECK(client);
+ DCHECK(surface_manager);
client_ = client;
+ surface_manager_ = surface_manager;
+ compositor_surface_namespace_ = compositor_surface_namespace;
+
+ surface_manager_->AddObserver(this);
// This must be done in Initialize() so that the caller can delay this until
// they are ready to receive a BeginFrameSource.
« no previous file with comments | « cc/surfaces/display.h ('k') | cc/surfaces/display_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698