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

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

Issue 2503203002: Revert "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
« no previous file with comments | « cc/surfaces/display.cc ('k') | cc/surfaces/surface.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
12 #include "cc/output/texture_mailbox_deleter.h" 13 #include "cc/output/texture_mailbox_deleter.h"
13 #include "cc/quads/render_pass.h" 14 #include "cc/quads/render_pass.h"
14 #include "cc/resources/shared_bitmap_manager.h" 15 #include "cc/resources/shared_bitmap_manager.h"
15 #include "cc/scheduler/begin_frame_source.h" 16 #include "cc/scheduler/begin_frame_source.h"
16 #include "cc/surfaces/display_client.h" 17 #include "cc/surfaces/display_client.h"
17 #include "cc/surfaces/display_scheduler.h" 18 #include "cc/surfaces/display_scheduler.h"
18 #include "cc/surfaces/frame_sink_id.h" 19 #include "cc/surfaces/frame_sink_id.h"
19 #include "cc/surfaces/surface.h" 20 #include "cc/surfaces/surface.h"
20 #include "cc/surfaces/surface_factory.h" 21 #include "cc/surfaces/surface_factory.h"
21 #include "cc/surfaces/surface_factory_client.h" 22 #include "cc/surfaces/surface_factory_client.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 &shared_bitmap_manager_, nullptr /* gpu_memory_buffer_manager */, 135 &shared_bitmap_manager_, nullptr /* gpu_memory_buffer_manager */,
135 settings, kArbitraryFrameSinkId, std::move(begin_frame_source), 136 settings, kArbitraryFrameSinkId, std::move(begin_frame_source),
136 std::move(output_surface), std::move(scheduler), 137 std::move(output_surface), std::move(scheduler),
137 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())); 138 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()));
138 display_->SetVisible(true); 139 display_->SetVisible(true);
139 } 140 }
140 141
141 protected: 142 protected:
142 void SubmitCompositorFrame(RenderPassList* pass_list, 143 void SubmitCompositorFrame(RenderPassList* pass_list,
143 const LocalFrameId& local_frame_id) { 144 const LocalFrameId& local_frame_id) {
145 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
146 pass_list->swap(frame_data->render_pass_list);
147
144 CompositorFrame frame; 148 CompositorFrame frame;
145 pass_list->swap(frame.render_pass_list); 149 frame.delegated_frame_data = std::move(frame_data);
146 150
147 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 151 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
148 SurfaceFactory::DrawCallback()); 152 SurfaceFactory::DrawCallback());
149 } 153 }
150 154
151 SurfaceManager manager_; 155 SurfaceManager manager_;
152 FakeSurfaceFactoryClient surface_factory_client_; 156 FakeSurfaceFactoryClient surface_factory_client_;
153 SurfaceFactory factory_; 157 SurfaceFactory factory_;
154 SurfaceIdAllocator id_allocator_; 158 SurfaceIdAllocator id_allocator_;
155 scoped_refptr<base::NullTaskRunner> task_runner_; 159 scoped_refptr<base::NullTaskRunner> task_runner_;
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 // Pass has no damage, so shouldn't be swapped, but latency info should be 337 // Pass has no damage, so shouldn't be swapped, but latency info should be
334 // saved for next swap. 338 // saved for next swap.
335 { 339 {
336 pass = RenderPass::Create(); 340 pass = RenderPass::Create();
337 pass->output_rect = gfx::Rect(0, 0, 100, 100); 341 pass->output_rect = gfx::Rect(0, 0, 100, 100);
338 pass->damage_rect = gfx::Rect(10, 10, 0, 0); 342 pass->damage_rect = gfx::Rect(10, 10, 0, 0);
339 pass->id = RenderPassId(1, 1); 343 pass->id = RenderPassId(1, 1);
340 344
341 pass_list.push_back(std::move(pass)); 345 pass_list.push_back(std::move(pass));
342 scheduler_->ResetDamageForTest(); 346 scheduler_->ResetDamageForTest();
347 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
348 pass_list.swap(frame_data->render_pass_list);
343 349
344 CompositorFrame frame; 350 CompositorFrame frame;
345 pass_list.swap(frame.render_pass_list); 351 frame.delegated_frame_data = std::move(frame_data);
346 frame.metadata.latency_info.push_back(ui::LatencyInfo()); 352 frame.metadata.latency_info.push_back(ui::LatencyInfo());
347 353
348 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 354 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
349 SurfaceFactory::DrawCallback()); 355 SurfaceFactory::DrawCallback());
350 EXPECT_TRUE(scheduler_->damaged); 356 EXPECT_TRUE(scheduler_->damaged);
351 EXPECT_FALSE(scheduler_->display_resized_); 357 EXPECT_FALSE(scheduler_->display_resized_);
352 EXPECT_FALSE(scheduler_->has_new_root_surface); 358 EXPECT_FALSE(scheduler_->has_new_root_surface);
353 359
354 scheduler_->swapped = false; 360 scheduler_->swapped = false;
355 display_->DrawAndSwap(); 361 display_->DrawAndSwap();
356 EXPECT_TRUE(scheduler_->swapped); 362 EXPECT_TRUE(scheduler_->swapped);
357 EXPECT_EQ(4u, output_surface_->num_sent_frames()); 363 EXPECT_EQ(4u, output_surface_->num_sent_frames());
358 } 364 }
359 365
360 // Resize should cause a swap if no frame was swapped at the previous size. 366 // Resize should cause a swap if no frame was swapped at the previous size.
361 { 367 {
362 scheduler_->swapped = false; 368 scheduler_->swapped = false;
363 display_->Resize(gfx::Size(200, 200)); 369 display_->Resize(gfx::Size(200, 200));
364 EXPECT_FALSE(scheduler_->swapped); 370 EXPECT_FALSE(scheduler_->swapped);
365 EXPECT_EQ(4u, output_surface_->num_sent_frames()); 371 EXPECT_EQ(4u, output_surface_->num_sent_frames());
366 372
367 pass = RenderPass::Create(); 373 pass = RenderPass::Create();
368 pass->output_rect = gfx::Rect(0, 0, 200, 200); 374 pass->output_rect = gfx::Rect(0, 0, 200, 200);
369 pass->damage_rect = gfx::Rect(10, 10, 10, 10); 375 pass->damage_rect = gfx::Rect(10, 10, 10, 10);
370 pass->id = RenderPassId(1, 1); 376 pass->id = RenderPassId(1, 1);
371 377
372 pass_list.push_back(std::move(pass)); 378 pass_list.push_back(std::move(pass));
373 scheduler_->ResetDamageForTest(); 379 scheduler_->ResetDamageForTest();
380 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
381 pass_list.swap(frame_data->render_pass_list);
374 382
375 CompositorFrame frame; 383 CompositorFrame frame;
376 pass_list.swap(frame.render_pass_list); 384 frame.delegated_frame_data = std::move(frame_data);
377 385
378 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 386 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
379 SurfaceFactory::DrawCallback()); 387 SurfaceFactory::DrawCallback());
380 EXPECT_TRUE(scheduler_->damaged); 388 EXPECT_TRUE(scheduler_->damaged);
381 EXPECT_FALSE(scheduler_->display_resized_); 389 EXPECT_FALSE(scheduler_->display_resized_);
382 EXPECT_FALSE(scheduler_->has_new_root_surface); 390 EXPECT_FALSE(scheduler_->has_new_root_surface);
383 391
384 scheduler_->swapped = false; 392 scheduler_->swapped = false;
385 display_->Resize(gfx::Size(100, 100)); 393 display_->Resize(gfx::Size(100, 100));
386 EXPECT_TRUE(scheduler_->swapped); 394 EXPECT_TRUE(scheduler_->swapped);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 // Verify DidLoseOutputSurface callback is hooked up correctly. 521 // Verify DidLoseOutputSurface callback is hooked up correctly.
514 EXPECT_EQ(0, client.loss_count()); 522 EXPECT_EQ(0, client.loss_count());
515 output_surface_->context_provider()->ContextGL()->LoseContextCHROMIUM( 523 output_surface_->context_provider()->ContextGL()->LoseContextCHROMIUM(
516 GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB); 524 GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB);
517 output_surface_->context_provider()->ContextGL()->Flush(); 525 output_surface_->context_provider()->ContextGL()->Flush();
518 EXPECT_EQ(1, client.loss_count()); 526 EXPECT_EQ(1, client.loss_count());
519 } 527 }
520 528
521 } // namespace 529 } // namespace
522 } // namespace cc 530 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/display.cc ('k') | cc/surfaces/surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698