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

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

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