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

Side by Side Diff: cc/surfaces/display_unittest.cc

Issue 2449853004: Getting rid of DelegatedFrameData (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/surfaces/display.h" 5 #include "cc/surfaces/display.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/test/null_task_runner.h" 9 #include "base/test/null_task_runner.h"
10 #include "cc/output/compositor_frame.h" 10 #include "cc/output/compositor_frame.h"
11 #include "cc/output/copy_output_result.h" 11 #include "cc/output/copy_output_result.h"
12 #include "cc/output/delegated_frame_data.h"
13 #include "cc/output/texture_mailbox_deleter.h" 12 #include "cc/output/texture_mailbox_deleter.h"
14 #include "cc/quads/render_pass.h" 13 #include "cc/quads/render_pass.h"
15 #include "cc/resources/shared_bitmap_manager.h" 14 #include "cc/resources/shared_bitmap_manager.h"
16 #include "cc/scheduler/begin_frame_source.h" 15 #include "cc/scheduler/begin_frame_source.h"
17 #include "cc/surfaces/display_client.h" 16 #include "cc/surfaces/display_client.h"
18 #include "cc/surfaces/display_scheduler.h" 17 #include "cc/surfaces/display_scheduler.h"
19 #include "cc/surfaces/frame_sink_id.h" 18 #include "cc/surfaces/frame_sink_id.h"
20 #include "cc/surfaces/surface.h" 19 #include "cc/surfaces/surface.h"
21 #include "cc/surfaces/surface_factory.h" 20 #include "cc/surfaces/surface_factory.h"
22 #include "cc/surfaces/surface_factory_client.h" 21 #include "cc/surfaces/surface_factory_client.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 &shared_bitmap_manager_, nullptr /* gpu_memory_buffer_manager */, 131 &shared_bitmap_manager_, nullptr /* gpu_memory_buffer_manager */,
133 settings, std::move(begin_frame_source), std::move(output_surface), 132 settings, std::move(begin_frame_source), std::move(output_surface),
134 std::move(scheduler), 133 std::move(scheduler),
135 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())); 134 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()));
136 display_->SetVisible(true); 135 display_->SetVisible(true);
137 } 136 }
138 137
139 protected: 138 protected:
140 void SubmitCompositorFrame(RenderPassList* pass_list, 139 void SubmitCompositorFrame(RenderPassList* pass_list,
141 const LocalFrameId& local_frame_id) { 140 const LocalFrameId& local_frame_id) {
142 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
143 pass_list->swap(frame_data->render_pass_list);
144
145 CompositorFrame frame; 141 CompositorFrame frame;
146 frame.delegated_frame_data = std::move(frame_data); 142 pass_list->swap(frame.render_pass_list);
147 143
148 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 144 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
149 SurfaceFactory::DrawCallback()); 145 SurfaceFactory::DrawCallback());
150 } 146 }
151 147
152 SurfaceManager manager_; 148 SurfaceManager manager_;
153 FakeSurfaceFactoryClient surface_factory_client_; 149 FakeSurfaceFactoryClient surface_factory_client_;
154 SurfaceFactory factory_; 150 SurfaceFactory factory_;
155 SurfaceIdAllocator id_allocator_; 151 SurfaceIdAllocator id_allocator_;
156 scoped_refptr<base::NullTaskRunner> task_runner_; 152 scoped_refptr<base::NullTaskRunner> task_runner_;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 // Pass has no damage, so shouldn't be swapped, but latency info should be 331 // Pass has no damage, so shouldn't be swapped, but latency info should be
336 // saved for next swap. 332 // saved for next swap.
337 { 333 {
338 pass = RenderPass::Create(); 334 pass = RenderPass::Create();
339 pass->output_rect = gfx::Rect(0, 0, 100, 100); 335 pass->output_rect = gfx::Rect(0, 0, 100, 100);
340 pass->damage_rect = gfx::Rect(10, 10, 0, 0); 336 pass->damage_rect = gfx::Rect(10, 10, 0, 0);
341 pass->id = RenderPassId(1, 1); 337 pass->id = RenderPassId(1, 1);
342 338
343 pass_list.push_back(std::move(pass)); 339 pass_list.push_back(std::move(pass));
344 scheduler_->ResetDamageForTest(); 340 scheduler_->ResetDamageForTest();
345 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
346 pass_list.swap(frame_data->render_pass_list);
347 341
348 CompositorFrame frame; 342 CompositorFrame frame;
349 frame.delegated_frame_data = std::move(frame_data); 343 pass_list.swap(frame.render_pass_list);
350 frame.metadata.latency_info.push_back(ui::LatencyInfo()); 344 frame.metadata.latency_info.push_back(ui::LatencyInfo());
351 345
352 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 346 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
353 SurfaceFactory::DrawCallback()); 347 SurfaceFactory::DrawCallback());
354 EXPECT_TRUE(scheduler_->damaged); 348 EXPECT_TRUE(scheduler_->damaged);
355 EXPECT_FALSE(scheduler_->display_resized_); 349 EXPECT_FALSE(scheduler_->display_resized_);
356 EXPECT_FALSE(scheduler_->has_new_root_surface); 350 EXPECT_FALSE(scheduler_->has_new_root_surface);
357 351
358 scheduler_->swapped = false; 352 scheduler_->swapped = false;
359 display_->DrawAndSwap(); 353 display_->DrawAndSwap();
360 EXPECT_TRUE(scheduler_->swapped); 354 EXPECT_TRUE(scheduler_->swapped);
361 EXPECT_EQ(4u, output_surface_->num_sent_frames()); 355 EXPECT_EQ(4u, output_surface_->num_sent_frames());
362 } 356 }
363 357
364 // Resize should cause a swap if no frame was swapped at the previous size. 358 // Resize should cause a swap if no frame was swapped at the previous size.
365 { 359 {
366 scheduler_->swapped = false; 360 scheduler_->swapped = false;
367 display_->Resize(gfx::Size(200, 200)); 361 display_->Resize(gfx::Size(200, 200));
368 EXPECT_FALSE(scheduler_->swapped); 362 EXPECT_FALSE(scheduler_->swapped);
369 EXPECT_EQ(4u, output_surface_->num_sent_frames()); 363 EXPECT_EQ(4u, output_surface_->num_sent_frames());
370 364
371 pass = RenderPass::Create(); 365 pass = RenderPass::Create();
372 pass->output_rect = gfx::Rect(0, 0, 200, 200); 366 pass->output_rect = gfx::Rect(0, 0, 200, 200);
373 pass->damage_rect = gfx::Rect(10, 10, 10, 10); 367 pass->damage_rect = gfx::Rect(10, 10, 10, 10);
374 pass->id = RenderPassId(1, 1); 368 pass->id = RenderPassId(1, 1);
375 369
376 pass_list.push_back(std::move(pass)); 370 pass_list.push_back(std::move(pass));
377 scheduler_->ResetDamageForTest(); 371 scheduler_->ResetDamageForTest();
378 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
379 pass_list.swap(frame_data->render_pass_list);
380 372
381 CompositorFrame frame; 373 CompositorFrame frame;
382 frame.delegated_frame_data = std::move(frame_data); 374 pass_list.swap(frame.render_pass_list);
383 375
384 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 376 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
385 SurfaceFactory::DrawCallback()); 377 SurfaceFactory::DrawCallback());
386 EXPECT_TRUE(scheduler_->damaged); 378 EXPECT_TRUE(scheduler_->damaged);
387 EXPECT_FALSE(scheduler_->display_resized_); 379 EXPECT_FALSE(scheduler_->display_resized_);
388 EXPECT_FALSE(scheduler_->has_new_root_surface); 380 EXPECT_FALSE(scheduler_->has_new_root_surface);
389 381
390 scheduler_->swapped = false; 382 scheduler_->swapped = false;
391 display_->Resize(gfx::Size(100, 100)); 383 display_->Resize(gfx::Size(100, 100));
392 EXPECT_TRUE(scheduler_->swapped); 384 EXPECT_TRUE(scheduler_->swapped);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 486
495 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); 487 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM());
496 display_->Resize(gfx::Size(250, 250)); 488 display_->Resize(gfx::Size(250, 250));
497 testing::Mock::VerifyAndClearExpectations(context_ptr); 489 testing::Mock::VerifyAndClearExpectations(context_ptr);
498 490
499 factory_.Destroy(local_frame_id); 491 factory_.Destroy(local_frame_id);
500 } 492 }
501 493
502 } // namespace 494 } // namespace
503 } // namespace cc 495 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698