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

Unified Diff: cc/output/overlay_unittest.cc

Issue 1376883004: Overlays: Remove special casing of primary overlay plane (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missed file Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: cc/output/overlay_unittest.cc
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index bfdfa9cd45b2f8b5a89bd339981ea083f518e87c..89c1aea4a1a56861833502f2838e7609dab5bb08 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -153,6 +153,8 @@ class OverlayOutputSurface : public OutputSurface {
return overlay_candidate_validator_.get();
}
+ unsigned GetOverlayTextureId() const override { return 10000; }
+
private:
scoped_ptr<OverlayCandidateValidator> overlay_candidate_validator_;
};
@@ -539,7 +541,8 @@ TEST_F(SandwichTest, SuccessfulSandwichOverlay) {
EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material);
}
- EXPECT_FALSE(candidate_list[0].use_output_surface_for_resource);
+ EXPECT_TRUE(candidate_list[0].use_output_surface_for_resource);
+ EXPECT_FALSE(candidate_list[1].use_output_surface_for_resource);
EXPECT_EQ(candidate_id, candidate_list[1].resource_id);
EXPECT_EQ(gfx::RectF(32.f, 32.f, 32.f, 32.f), candidate_list[1].display_rect);
EXPECT_TRUE(candidate_list[2].use_output_surface_for_resource);
@@ -603,7 +606,8 @@ TEST_F(SandwichTest, MultiQuadOverlay) {
DCHECK(covered_region == transparent_quad_region);
// Check that overlays cover the same region that the quads covered.
- EXPECT_FALSE(candidate_list[0].use_output_surface_for_resource);
+ EXPECT_TRUE(candidate_list[0].use_output_surface_for_resource);
+ EXPECT_FALSE(candidate_list[1].use_output_surface_for_resource);
EXPECT_EQ(candidate_id, candidate_list[1].resource_id);
EXPECT_EQ(gfx::RectF(64.f, 64.f), candidate_list[1].display_rect);
EXPECT_TRUE(candidate_list[2].use_output_surface_for_resource);
@@ -667,7 +671,8 @@ TEST_F(SingleOverlayOnTopTest, NoCandidates) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
// There should be nothing new here.
CompareRenderPassLists(pass_list, original_pass_list);
}
@@ -691,7 +696,8 @@ TEST_F(SingleOverlayOnTopTest, OccludedCandidates) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
// There should be nothing new here.
CompareRenderPassLists(pass_list, original_pass_list);
}
@@ -739,7 +745,8 @@ TEST_F(SingleOverlayOnTopTest, RejectPremultipliedAlpha) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectBlending) {
@@ -755,7 +762,8 @@ TEST_F(SingleOverlayOnTopTest, RejectBlending) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectBackgroundColor) {
@@ -771,7 +779,8 @@ TEST_F(SingleOverlayOnTopTest, RejectBackgroundColor) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectBlendMode) {
@@ -786,7 +795,8 @@ TEST_F(SingleOverlayOnTopTest, RejectBlendMode) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectOpacity) {
@@ -801,7 +811,8 @@ TEST_F(SingleOverlayOnTopTest, RejectOpacity) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) {
@@ -817,7 +828,8 @@ TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, AllowClipped) {
@@ -1033,7 +1045,8 @@ TEST_F(SingleOverlayOnTopTest, RejectOpaqueColorOnTop) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectTransparentColorOnTopWithoutBlending) {
@@ -1054,7 +1067,8 @@ TEST_F(SingleOverlayOnTopTest, RejectTransparentColorOnTopWithoutBlending) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) {
@@ -1068,7 +1082,8 @@ TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(0U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
+ EXPECT_TRUE(candidate_list.front().use_output_surface_for_resource);
}
TEST_F(SingleOverlayOnTopTest, AllowVideoXMirrorTransform) {
@@ -1288,11 +1303,13 @@ TEST_F(GLRendererWithOverlaysTest, OverlayQuadNotDrawn) {
// so only draw 2 quads.
EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2);
EXPECT_CALL(scheduler_,
- Schedule(1,
- gfx::OVERLAY_TRANSFORM_NONE,
- _,
- kOverlayRect,
- BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1);
+ Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _,
+ gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1)))
+ .Times(1);
+ EXPECT_CALL(scheduler_,
+ Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect,
+ BoundingRect(kUVTopLeft, kUVBottomRight)))
+ .Times(1);
renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
SwapBuffers();
@@ -1325,8 +1342,13 @@ TEST_F(GLRendererWithOverlaysTest, OccludedQuadInUnderlay) {
// Expect to be replaced with transparent hole quad and placed in underlay.
EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3);
EXPECT_CALL(scheduler_,
+ Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _,
+ gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1)))
+ .Times(1);
+ EXPECT_CALL(scheduler_,
Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect,
- BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1);
+ BoundingRect(kUVTopLeft, kUVBottomRight)))
+ .Times(1);
renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
SwapBuffers();
@@ -1381,6 +1403,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
DirectRenderer::DrawingFrame frame1;
frame1.render_passes_in_draw_order = &pass_list;
frame1.overlay_list.resize(2);
+ frame1.overlay_list.front().use_output_surface_for_resource = true;
OverlayCandidate& overlay1 = frame1.overlay_list.back();
overlay1.resource_id = resource1;
overlay1.plane_z_order = 1;
@@ -1388,19 +1411,21 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
DirectRenderer::DrawingFrame frame2;
frame2.render_passes_in_draw_order = &pass_list;
frame2.overlay_list.resize(2);
+ frame2.overlay_list.front().use_output_surface_for_resource = true;
OverlayCandidate& overlay2 = frame2.overlay_list.back();
overlay2.resource_id = resource2;
overlay2.plane_z_order = 1;
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
+ printf("About to finish, %d %d\n", resource1, resource2);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource2));
SwapBuffers();
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame2);
renderer_->FinishDrawingFrame(&frame2);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1409,7 +1434,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1433,14 +1458,14 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturned) {
// Use the same buffer twice.
renderer_->set_expect_overlays(true);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
SwapBuffers();
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1475,6 +1500,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
DirectRenderer::DrawingFrame frame1;
frame1.render_passes_in_draw_order = &pass_list;
frame1.overlay_list.resize(2);
+ frame1.overlay_list.front().use_output_surface_for_resource = true;
OverlayCandidate& overlay1 = frame1.overlay_list.back();
overlay1.resource_id = resource1;
overlay1.plane_z_order = 1;
@@ -1482,6 +1508,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
DirectRenderer::DrawingFrame frame2;
frame2.render_passes_in_draw_order = &pass_list;
frame2.overlay_list.resize(2);
+ frame2.overlay_list.front().use_output_surface_for_resource = true;
OverlayCandidate& overlay2 = frame2.overlay_list.back();
overlay2.resource_id = resource2;
overlay2.plane_z_order = 1;
@@ -1489,11 +1516,12 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
DirectRenderer::DrawingFrame frame3;
frame3.render_passes_in_draw_order = &pass_list;
frame3.overlay_list.resize(2);
+ frame3.overlay_list.front().use_output_surface_for_resource = true;
OverlayCandidate& overlay3 = frame3.overlay_list.back();
overlay3.resource_id = resource3;
overlay3.plane_z_order = 1;
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1501,7 +1529,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
SwapBuffers();
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame2);
renderer_->FinishDrawingFrame(&frame2);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1511,7 +1539,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame3);
renderer_->FinishDrawingFrame(&frame3);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
@@ -1541,14 +1569,14 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
// Use the same buffer twice.
renderer_->set_expect_overlays(true);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
SwapBuffers();
Mock::VerifyAndClearExpectations(&scheduler_);
- EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(1);
+ EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
renderer_->BeginDrawingFrame(&frame1);
renderer_->FinishDrawingFrame(&frame1);
EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));

Powered by Google App Engine
This is Rietveld 408576698