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

Unified Diff: components/exo/surface.cc

Issue 2388753003: Introduce cc::LocalFrameId and use in SurfaceFactory (Closed)
Patch Set: Fix exo_unittests Created 4 years, 2 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/exo/surface.cc
diff --git a/components/exo/surface.cc b/components/exo/surface.cc
index 381ba8e253ee2cde61831fb1357583ecf4dcacd6..5f22ec6fd64ad5a361039368515743886f0a1530 100644
--- a/components/exo/surface.cc
+++ b/components/exo/surface.cc
@@ -180,7 +180,7 @@ void SurfaceFactoryOwner::ReturnResources(
}
}
-void SurfaceFactoryOwner::WillDrawSurface(const cc::SurfaceId& id,
+void SurfaceFactoryOwner::WillDrawSurface(const cc::LocalFrameId& id,
const gfx::Rect& damage_rect) {
if (surface_)
surface_->WillDraw(id);
@@ -216,8 +216,7 @@ Surface::Surface()
factory_owner_->surface_ = this;
factory_owner_->frame_sink_id_ =
aura::Env::GetInstance()->context_factory()->AllocateFrameSinkId();
- factory_owner_->id_allocator_.reset(
- new cc::SurfaceIdAllocator(factory_owner_->frame_sink_id_));
+ factory_owner_->id_allocator_.reset(new cc::SurfaceIdAllocator());
surface_manager_->RegisterFrameSinkId(factory_owner_->frame_sink_id_);
factory_owner_->surface_factory_.reset(new cc::SurfaceFactory(
factory_owner_->frame_sink_id_, surface_manager_, factory_owner_.get()));
@@ -240,8 +239,8 @@ Surface::~Surface() {
for (const auto& frame_callback : active_frame_callbacks_)
frame_callback.Run(base::TimeTicks());
- if (!surface_id_.is_null())
- factory_owner_->surface_factory_->Destroy(surface_id_);
+ if (!local_frame_id_.is_null())
+ factory_owner_->surface_factory_->Destroy(local_frame_id_);
}
// static
@@ -249,6 +248,10 @@ Surface* Surface::AsSurface(const aura::Window* window) {
return window->GetProperty(kSurfaceKey);
}
+cc::SurfaceId Surface::GetSurfaceId() const {
+ return cc::SurfaceId(factory_owner_->frame_sink_id_, local_frame_id_);
+}
+
void Surface::Attach(Buffer* buffer) {
TRACE_EVENT1("exo", "Surface::Attach", "buffer",
buffer ? buffer->GetSize().ToString() : "null");
@@ -443,7 +446,7 @@ void Surface::Commit() {
}
void Surface::OnLostResources() {
- if (surface_id_.is_null())
+ if (local_frame_id_.is_null())
return;
UpdateResource(false);
@@ -467,25 +470,25 @@ void Surface::CommitSurfaceHierarchy() {
UpdateResource(true);
}
- cc::SurfaceId old_surface_id = surface_id_;
- if (needs_commit_to_new_surface_ || surface_id_.is_null()) {
+ cc::LocalFrameId old_local_frame_id = local_frame_id_;
+ if (needs_commit_to_new_surface_ || local_frame_id_.is_null()) {
needs_commit_to_new_surface_ = false;
- surface_id_ = factory_owner_->id_allocator_->GenerateId();
- factory_owner_->surface_factory_->Create(surface_id_);
+ local_frame_id_ = factory_owner_->id_allocator_->GenerateId();
+ factory_owner_->surface_factory_->Create(local_frame_id_);
}
UpdateSurface(true);
- if (!old_surface_id.is_null() && old_surface_id != surface_id_) {
- factory_owner_->surface_factory_->SetPreviousFrameSurface(surface_id_,
- old_surface_id);
- factory_owner_->surface_factory_->Destroy(old_surface_id);
+ if (!old_local_frame_id.is_null() && old_local_frame_id != local_frame_id_) {
+ factory_owner_->surface_factory_->SetPreviousFrameSurface(
+ local_frame_id_, old_local_frame_id);
+ factory_owner_->surface_factory_->Destroy(old_local_frame_id);
}
- if (old_surface_id != surface_id_) {
+ if (old_local_frame_id != local_frame_id_) {
float contents_surface_to_layer_scale = 1.0;
window_->layer()->SetShowSurface(
- surface_id_,
+ cc::SurfaceId(factory_owner_->frame_sink_id_, local_frame_id_),
base::Bind(&SatisfyCallback, base::Unretained(surface_manager_)),
base::Bind(&RequireCallback, base::Unretained(surface_manager_)),
content_size_, contents_surface_to_layer_scale, content_size_);
@@ -617,7 +620,7 @@ void Surface::OnLayerRecreated(ui::Layer* old_layer, ui::Layer* new_layer) {
SetSurfaceLayerContents(new_layer);
}
-void Surface::WillDraw(const cc::SurfaceId& id) {
+void Surface::WillDraw(const cc::LocalFrameId& id) {
while (!active_frame_callbacks_.empty()) {
active_frame_callbacks_.front().Run(base::TimeTicks::Now());
active_frame_callbacks_.pop_front();
@@ -692,14 +695,14 @@ void Surface::SetSurfaceHierarchyNeedsCommitToNewSurfaces() {
}
void Surface::SetSurfaceLayerContents(ui::Layer* layer) {
- if (surface_id_.is_null())
+ if (local_frame_id_.is_null())
return;
gfx::Size layer_size = layer->bounds().size();
float contents_surface_to_layer_scale = 1.0f;
layer->SetShowSurface(
- surface_id_,
+ cc::SurfaceId(factory_owner_->frame_sink_id_, local_frame_id_),
base::Bind(&SatisfyCallback, base::Unretained(surface_manager_)),
base::Bind(&RequireCallback, base::Unretained(surface_manager_)),
layer_size, contents_surface_to_layer_scale, layer_size);
@@ -823,7 +826,7 @@ void Surface::UpdateSurface(bool full_damage) {
frame.delegated_frame_data = std::move(delegated_frame);
factory_owner_->surface_factory_->SubmitCompositorFrame(
- surface_id_, std::move(frame), cc::SurfaceFactory::DrawCallback());
+ local_frame_id_, std::move(frame), cc::SurfaceFactory::DrawCallback());
}
int64_t Surface::SetPropertyInternal(const void* key,

Powered by Google App Engine
This is Rietveld 408576698