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

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

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix reflector Created 4 years, 6 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 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"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 id_allocator_.id_namespace(), std::move(begin_frame_source), 128 id_allocator_.id_namespace(), std::move(begin_frame_source),
129 std::move(output_surface), std::move(scheduler), 129 std::move(output_surface), std::move(scheduler),
130 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get())); 130 base::MakeUnique<TextureMailboxDeleter>(task_runner_.get()));
131 } 131 }
132 132
133 protected: 133 protected:
134 void SubmitCompositorFrame(RenderPassList* pass_list, SurfaceId surface_id) { 134 void SubmitCompositorFrame(RenderPassList* pass_list, SurfaceId surface_id) {
135 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 135 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
136 pass_list->swap(frame_data->render_pass_list); 136 pass_list->swap(frame_data->render_pass_list);
137 137
138 std::unique_ptr<CompositorFrame> frame(new CompositorFrame); 138 std::unique_ptr<CompositorFrame> frame(CompositorFrame::Create());
139 frame->delegated_frame_data = std::move(frame_data); 139 frame->delegated_frame_data = std::move(frame_data);
140 140
141 factory_.SubmitCompositorFrame(surface_id, std::move(frame), 141 factory_.SubmitCompositorFrame(surface_id, std::move(frame),
142 SurfaceFactory::DrawCallback()); 142 SurfaceFactory::DrawCallback());
143 } 143 }
144 144
145 static constexpr int kArbitrarySurfaceNamespace = 3; 145 static constexpr int kArbitrarySurfaceNamespace = 3;
146 146
147 SurfaceManager manager_; 147 SurfaceManager manager_;
148 FakeSurfaceFactoryClient surface_factory_client_; 148 FakeSurfaceFactoryClient surface_factory_client_;
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 pass = RenderPass::Create(); 330 pass = RenderPass::Create();
331 pass->output_rect = gfx::Rect(0, 0, 100, 100); 331 pass->output_rect = gfx::Rect(0, 0, 100, 100);
332 pass->damage_rect = gfx::Rect(10, 10, 0, 0); 332 pass->damage_rect = gfx::Rect(10, 10, 0, 0);
333 pass->id = RenderPassId(1, 1); 333 pass->id = RenderPassId(1, 1);
334 334
335 pass_list.push_back(std::move(pass)); 335 pass_list.push_back(std::move(pass));
336 scheduler_->ResetDamageForTest(); 336 scheduler_->ResetDamageForTest();
337 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 337 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
338 pass_list.swap(frame_data->render_pass_list); 338 pass_list.swap(frame_data->render_pass_list);
339 339
340 std::unique_ptr<CompositorFrame> frame(new CompositorFrame); 340 std::unique_ptr<CompositorFrame> frame(CompositorFrame::Create());
341 frame->delegated_frame_data = std::move(frame_data); 341 frame->delegated_frame_data = std::move(frame_data);
342 frame->metadata.latency_info.push_back(ui::LatencyInfo()); 342 frame->metadata.latency_info.push_back(ui::LatencyInfo());
343 343
344 factory_.SubmitCompositorFrame(surface_id, std::move(frame), 344 factory_.SubmitCompositorFrame(surface_id, std::move(frame),
345 SurfaceFactory::DrawCallback()); 345 SurfaceFactory::DrawCallback());
346 EXPECT_TRUE(scheduler_->damaged); 346 EXPECT_TRUE(scheduler_->damaged);
347 EXPECT_FALSE(scheduler_->display_resized_); 347 EXPECT_FALSE(scheduler_->display_resized_);
348 EXPECT_FALSE(scheduler_->has_new_root_surface); 348 EXPECT_FALSE(scheduler_->has_new_root_surface);
349 349
350 scheduler_->swapped = false; 350 scheduler_->swapped = false;
(...skipping 12 matching lines...) Expand all
363 pass = RenderPass::Create(); 363 pass = RenderPass::Create();
364 pass->output_rect = gfx::Rect(0, 0, 200, 200); 364 pass->output_rect = gfx::Rect(0, 0, 200, 200);
365 pass->damage_rect = gfx::Rect(10, 10, 10, 10); 365 pass->damage_rect = gfx::Rect(10, 10, 10, 10);
366 pass->id = RenderPassId(1, 1); 366 pass->id = RenderPassId(1, 1);
367 367
368 pass_list.push_back(std::move(pass)); 368 pass_list.push_back(std::move(pass));
369 scheduler_->ResetDamageForTest(); 369 scheduler_->ResetDamageForTest();
370 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 370 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
371 pass_list.swap(frame_data->render_pass_list); 371 pass_list.swap(frame_data->render_pass_list);
372 372
373 std::unique_ptr<CompositorFrame> frame(new CompositorFrame); 373 std::unique_ptr<CompositorFrame> frame(CompositorFrame::Create());
374 frame->delegated_frame_data = std::move(frame_data); 374 frame->delegated_frame_data = std::move(frame_data);
375 375
376 factory_.SubmitCompositorFrame(surface_id, std::move(frame), 376 factory_.SubmitCompositorFrame(surface_id, std::move(frame),
377 SurfaceFactory::DrawCallback()); 377 SurfaceFactory::DrawCallback());
378 EXPECT_TRUE(scheduler_->damaged); 378 EXPECT_TRUE(scheduler_->damaged);
379 EXPECT_FALSE(scheduler_->display_resized_); 379 EXPECT_FALSE(scheduler_->display_resized_);
380 EXPECT_FALSE(scheduler_->has_new_root_surface); 380 EXPECT_FALSE(scheduler_->has_new_root_surface);
381 381
382 scheduler_->swapped = false; 382 scheduler_->swapped = false;
383 display_->Resize(gfx::Size(100, 100)); 383 display_->Resize(gfx::Size(100, 100));
384 EXPECT_TRUE(scheduler_->swapped); 384 EXPECT_TRUE(scheduler_->swapped);
385 EXPECT_EQ(5u, output_surface_->num_sent_frames()); 385 EXPECT_EQ(5u, output_surface_->num_sent_frames());
386 386
387 // Latency info from previous frame should be sent now. 387 // Latency info from previous frame should be sent now.
388 EXPECT_EQ(1u, 388 EXPECT_EQ(1u,
389 output_surface_->last_sent_frame().metadata.latency_info.size()); 389 output_surface_->last_sent_frame()->metadata.latency_info.size());
390 } 390 }
391 391
392 { 392 {
393 // Surface that's damaged completely should be resized and swapped. 393 // Surface that's damaged completely should be resized and swapped.
394 pass = RenderPass::Create(); 394 pass = RenderPass::Create();
395 pass->output_rect = gfx::Rect(0, 0, 99, 99); 395 pass->output_rect = gfx::Rect(0, 0, 99, 99);
396 pass->damage_rect = gfx::Rect(0, 0, 99, 99); 396 pass->damage_rect = gfx::Rect(0, 0, 99, 99);
397 pass->id = RenderPassId(1, 1); 397 pass->id = RenderPassId(1, 1);
398 398
399 pass_list.push_back(std::move(pass)); 399 pass_list.push_back(std::move(pass));
400 scheduler_->ResetDamageForTest(); 400 scheduler_->ResetDamageForTest();
401 SubmitCompositorFrame(&pass_list, surface_id); 401 SubmitCompositorFrame(&pass_list, surface_id);
402 EXPECT_TRUE(scheduler_->damaged); 402 EXPECT_TRUE(scheduler_->damaged);
403 EXPECT_FALSE(scheduler_->display_resized_); 403 EXPECT_FALSE(scheduler_->display_resized_);
404 EXPECT_FALSE(scheduler_->has_new_root_surface); 404 EXPECT_FALSE(scheduler_->has_new_root_surface);
405 405
406 scheduler_->swapped = false; 406 scheduler_->swapped = false;
407 display_->DrawAndSwap(); 407 display_->DrawAndSwap();
408 EXPECT_TRUE(scheduler_->swapped); 408 EXPECT_TRUE(scheduler_->swapped);
409 EXPECT_EQ(6u, output_surface_->num_sent_frames()); 409 EXPECT_EQ(6u, output_surface_->num_sent_frames());
410 EXPECT_EQ(gfx::Size(100, 100), 410 EXPECT_EQ(gfx::Size(100, 100),
411 software_output_device_->viewport_pixel_size()); 411 software_output_device_->viewport_pixel_size());
412 EXPECT_EQ(gfx::Rect(0, 0, 100, 100), 412 EXPECT_EQ(gfx::Rect(0, 0, 100, 100),
413 software_output_device_->damage_rect()); 413 software_output_device_->damage_rect());
414 EXPECT_EQ(0u, 414 EXPECT_EQ(0u,
415 output_surface_->last_sent_frame().metadata.latency_info.size()); 415 output_surface_->last_sent_frame()->metadata.latency_info.size());
416 } 416 }
417 417
418 factory_.Destroy(surface_id); 418 factory_.Destroy(surface_id);
419 } 419 }
420 420
421 class MockedContext : public TestWebGraphicsContext3D { 421 class MockedContext : public TestWebGraphicsContext3D {
422 public: 422 public:
423 MOCK_METHOD0(shallowFinishCHROMIUM, void()); 423 MOCK_METHOD0(shallowFinishCHROMIUM, void());
424 }; 424 };
425 425
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 487
488 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()); 488 EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM());
489 display_->Resize(gfx::Size(250, 250)); 489 display_->Resize(gfx::Size(250, 250));
490 testing::Mock::VerifyAndClearExpectations(context_ptr); 490 testing::Mock::VerifyAndClearExpectations(context_ptr);
491 491
492 factory_.Destroy(surface_id); 492 factory_.Destroy(surface_id);
493 } 493 }
494 494
495 } // namespace 495 } // namespace
496 } // namespace cc 496 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698