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

Unified Diff: ui/aura/local/compositor_frame_sink_local.cc

Issue 2848223003: Enforce constant size and device scale factor for surfaces (Closed)
Patch Set: Notify CFSSClient when a frame is rejected Created 3 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/aura/local/compositor_frame_sink_local.cc
diff --git a/ui/aura/local/compositor_frame_sink_local.cc b/ui/aura/local/compositor_frame_sink_local.cc
index 9674689634bdc5893f9509c641c6c6ca7da79caa..64630bec635c3fec2664e57f0dae3accb30446dd 100644
--- a/ui/aura/local/compositor_frame_sink_local.cc
+++ b/ui/aura/local/compositor_frame_sink_local.cc
@@ -63,20 +63,19 @@ void CompositorFrameSinkLocal::SubmitCompositorFrame(
DCHECK(thread_checker_->CalledOnValidThread());
cc::LocalSurfaceId old_local_surface_id = local_surface_id_;
- if (!frame.render_pass_list.empty()) {
- const auto& frame_size = frame.render_pass_list.back()->output_rect.size();
- if (frame_size != last_submitted_frame_size_ ||
- !local_surface_id_.is_valid()) {
- last_submitted_frame_size_ = frame_size;
- local_surface_id_ = id_allocator_.GenerateId();
+ const auto& frame_size = frame.render_pass_list.back()->output_rect.size();
+ if (frame_size != surface_size_ ||
+ frame.metadata.device_scale_factor != device_scale_factor_ ||
+ !local_surface_id_.is_valid()) {
+ surface_size_ = frame_size;
+ device_scale_factor_ = frame.metadata.device_scale_factor;
+ local_surface_id_ = id_allocator_.GenerateId();
}
- }
support_->SubmitCompositorFrame(local_surface_id_, std::move(frame));
if (local_surface_id_ != old_local_surface_id) {
surface_changed_callback_.Run(
- cc::SurfaceId(frame_sink_id_, local_surface_id_),
- last_submitted_frame_size_);
+ cc::SurfaceId(frame_sink_id_, local_surface_id_), surface_size_);
}
}
@@ -106,6 +105,10 @@ void CompositorFrameSinkLocal::ReclaimResources(
client_->ReclaimResources(resources);
}
+void CompositorFrameSinkLocal::DidRejectCompositorFrame() {
+ NOTREACHED();
+}
+
void CompositorFrameSinkLocal::OnNeedsBeginFrames(bool needs_begin_frames) {
DCHECK(thread_checker_);
DCHECK(thread_checker_->CalledOnValidThread());
« cc/surfaces/compositor_frame_sink_support.cc ('K') | « ui/aura/local/compositor_frame_sink_local.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698