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

Side by Side Diff: cc/output/overlay_unittest.cc

Issue 1370363002: Mac Overlays: Clip display and UV rects (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: irf Created 5 years, 2 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
« no previous file with comments | « cc/output/overlay_strategy_sandwich.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/base/region.h" 5 #include "cc/base/region.h"
6 #include "cc/base/scoped_ptr_vector.h" 6 #include "cc/base/scoped_ptr_vector.h"
7 #include "cc/output/compositor_frame_metadata.h" 7 #include "cc/output/compositor_frame_metadata.h"
8 #include "cc/output/gl_renderer.h" 8 #include "cc/output/gl_renderer.h"
9 #include "cc/output/output_surface.h" 9 #include "cc/output/output_surface.h"
10 #include "cc/output/output_surface_client.h" 10 #include "cc/output/output_surface_client.h"
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 const QuadList& quad_list = main_pass->quad_list; 431 const QuadList& quad_list = main_pass->quad_list;
432 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); 432 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin();
433 it != quad_list.BackToFrontEnd(); ++it) { 433 it != quad_list.BackToFrontEnd(); ++it) {
434 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); 434 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material);
435 } 435 }
436 436
437 // Check that the right resource id got extracted. 437 // Check that the right resource id got extracted.
438 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); 438 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id);
439 } 439 }
440 440
441 TEST_F(SandwichTest, CroppedSingleOverlay) {
442 scoped_ptr<RenderPass> pass = CreateRenderPass();
443 pass->shared_quad_state_list.back()->is_clipped = true;
444 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(0, 32, 64, 64);
445
446 TextureDrawQuad* original_quad = CreateFullscreenCandidateQuad(
447 resource_provider_.get(), pass->shared_quad_state_list.back(),
448 pass.get());
449 original_quad->uv_top_left = gfx::PointF(0, 0);
450 original_quad->uv_bottom_right = gfx::PointF(1, 1);
451 unsigned candidate_id = original_quad->resource_id();
452
453 // Add something behind it.
454 CreateFullscreenOpaqueQuad(resource_provider_.get(),
455 pass->shared_quad_state_list.back(), pass.get());
456 CreateFullscreenOpaqueQuad(resource_provider_.get(),
457 pass->shared_quad_state_list.back(), pass.get());
458
459 RenderPassList pass_list;
460 pass_list.push_back(pass.Pass());
461
462 // Check for potential candidates.
463 OverlayCandidateList candidate_list;
464 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
465
466 // Ensure that the display and uv rects have cropping applied to them.
467 ASSERT_EQ(1U, pass_list.size());
468 ASSERT_EQ(2U, candidate_list.size());
469 EXPECT_EQ(candidate_id, candidate_list[1].resource_id);
470 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[1].display_rect);
471 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[1].uv_rect);
472 }
473
441 TEST_F(SandwichTest, SuccessfulTwoOverlays) { 474 TEST_F(SandwichTest, SuccessfulTwoOverlays) {
442 scoped_ptr<RenderPass> pass = CreateRenderPass(); 475 scoped_ptr<RenderPass> pass = CreateRenderPass();
443 476
444 // Add two non-overlapping candidates. 477 // Add two non-overlapping candidates.
445 CreateCandidateQuadAt(resource_provider_.get(), 478 CreateCandidateQuadAt(resource_provider_.get(),
446 pass->shared_quad_state_list.back(), pass.get(), 479 pass->shared_quad_state_list.back(), pass.get(),
447 kOverlayTopLeftRect); 480 kOverlayTopLeftRect);
448 CreateCandidateQuadAt(resource_provider_.get(), 481 CreateCandidateQuadAt(resource_provider_.get(),
449 pass->shared_quad_state_list.back(), pass.get(), 482 pass->shared_quad_state_list.back(), pass.get(),
450 kOverlayBottomRightRect); 483 kOverlayBottomRightRect);
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1568 renderer_->BeginDrawingFrame(&frame_no_overlays); 1601 renderer_->BeginDrawingFrame(&frame_no_overlays);
1569 renderer_->FinishDrawingFrame(&frame_no_overlays); 1602 renderer_->FinishDrawingFrame(&frame_no_overlays);
1570 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 1603 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
1571 SwapBuffers(); 1604 SwapBuffers();
1572 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 1605 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
1573 Mock::VerifyAndClearExpectations(&scheduler_); 1606 Mock::VerifyAndClearExpectations(&scheduler_);
1574 } 1607 }
1575 1608
1576 } // namespace 1609 } // namespace
1577 } // namespace cc 1610 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/overlay_strategy_sandwich.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698