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

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

Issue 1381603003: Mac Overlays: Clip display and UV rects (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2490
Patch Set: 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 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 const QuadList& quad_list = main_pass->quad_list; 426 const QuadList& quad_list = main_pass->quad_list;
427 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); 427 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin();
428 it != quad_list.BackToFrontEnd(); ++it) { 428 it != quad_list.BackToFrontEnd(); ++it) {
429 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material); 429 EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material);
430 } 430 }
431 431
432 // Check that the right resource id got extracted. 432 // Check that the right resource id got extracted.
433 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id); 433 EXPECT_EQ(original_resource_id, candidate_list.back().resource_id);
434 } 434 }
435 435
436 TEST_F(SandwichTest, CroppedSingleOverlay) {
437 scoped_ptr<RenderPass> pass = CreateRenderPass();
438 pass->shared_quad_state_list.back()->is_clipped = true;
439 pass->shared_quad_state_list.back()->clip_rect = gfx::Rect(0, 32, 64, 64);
440
441 TextureDrawQuad* original_quad = CreateFullscreenCandidateQuad(
442 resource_provider_.get(), pass->shared_quad_state_list.back(),
443 pass.get());
444 original_quad->uv_top_left = gfx::PointF(0, 0);
445 original_quad->uv_bottom_right = gfx::PointF(1, 1);
446 unsigned candidate_id = original_quad->resource_id();
447
448 // Add something behind it.
449 CreateFullscreenOpaqueQuad(resource_provider_.get(),
450 pass->shared_quad_state_list.back(), pass.get());
451 CreateFullscreenOpaqueQuad(resource_provider_.get(),
452 pass->shared_quad_state_list.back(), pass.get());
453
454 RenderPassList pass_list;
455 pass_list.push_back(pass.Pass());
456
457 // Check for potential candidates.
458 OverlayCandidateList candidate_list;
459 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
460
461 // Ensure that the display and uv rects have cropping applied to them.
462 ASSERT_EQ(1U, pass_list.size());
463 ASSERT_EQ(2U, candidate_list.size());
464 EXPECT_EQ(candidate_id, candidate_list[1].resource_id);
465 EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[1].display_rect);
466 EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[1].uv_rect);
467 }
468
436 TEST_F(SandwichTest, SuccessfulTwoOverlays) { 469 TEST_F(SandwichTest, SuccessfulTwoOverlays) {
437 scoped_ptr<RenderPass> pass = CreateRenderPass(); 470 scoped_ptr<RenderPass> pass = CreateRenderPass();
438 471
439 // Add two non-overlapping candidates. 472 // Add two non-overlapping candidates.
440 CreateCandidateQuadAt(resource_provider_.get(), 473 CreateCandidateQuadAt(resource_provider_.get(),
441 pass->shared_quad_state_list.back(), pass.get(), 474 pass->shared_quad_state_list.back(), pass.get(),
442 kOverlayTopLeftRect); 475 kOverlayTopLeftRect);
443 CreateCandidateQuadAt(resource_provider_.get(), 476 CreateCandidateQuadAt(resource_provider_.get(),
444 pass->shared_quad_state_list.back(), pass.get(), 477 pass->shared_quad_state_list.back(), pass.get(),
445 kOverlayBottomRightRect); 478 kOverlayBottomRightRect);
(...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1546 renderer_->BeginDrawingFrame(&frame_no_overlays); 1579 renderer_->BeginDrawingFrame(&frame_no_overlays);
1547 renderer_->FinishDrawingFrame(&frame_no_overlays); 1580 renderer_->FinishDrawingFrame(&frame_no_overlays);
1548 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 1581 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
1549 SwapBuffers(); 1582 SwapBuffers();
1550 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 1583 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
1551 Mock::VerifyAndClearExpectations(&scheduler_); 1584 Mock::VerifyAndClearExpectations(&scheduler_);
1552 } 1585 }
1553 1586
1554 } // namespace 1587 } // namespace
1555 } // namespace cc 1588 } // 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