Index: cc/output/overlay_unittest.cc |
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc |
index 4472c9ec8f8977e40b8c1b08ab71a017d6c32d20..ae10a0441802886af23fbf9c9848ec811bc262ae 100644 |
--- a/cc/output/overlay_unittest.cc |
+++ b/cc/output/overlay_unittest.cc |
@@ -198,11 +198,9 @@ class OverlayOutputSurface : public OutputSurface { |
std::unique_ptr<RenderPass> CreateRenderPass() { |
int render_pass_id = 1; |
gfx::Rect output_rect(0, 0, 256, 256); |
- bool has_transparent_background = true; |
std::unique_ptr<RenderPass> pass = RenderPass::Create(); |
- pass->SetAll(render_pass_id, output_rect, output_rect, gfx::Transform(), |
- has_transparent_background); |
+ pass->SetNew(render_pass_id, output_rect, output_rect, gfx::Transform()); |
SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); |
shared_state->opacity = 1.f; |
@@ -414,9 +412,11 @@ TEST_F(FullscreenOverlayTest, SuccessfulOverlay) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
RenderPass* main_pass = pass.get(); |
@@ -437,9 +437,11 @@ TEST_F(FullscreenOverlayTest, ResourceSizeInPixelsFail) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(0U, candidate_list.size()); |
RenderPass* main_pass = pass.get(); |
@@ -461,9 +463,11 @@ TEST_F(FullscreenOverlayTest, OnTopFail) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(0U, candidate_list.size()); |
RenderPass* main_pass = pass.get(); |
@@ -481,9 +485,11 @@ TEST_F(FullscreenOverlayTest, NotCoveringFullscreenFail) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(0U, candidate_list.size()); |
RenderPass* main_pass = pass.get(); |
@@ -508,9 +514,11 @@ TEST_F(FullscreenOverlayTest, RemoveFullscreenQuadFromQuadList) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
// Check that the fullscreen quad is gone. |
@@ -535,9 +543,11 @@ TEST_F(SingleOverlayOnTopTest, SuccessfulOverlay) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
RenderPass* main_pass = pass.get(); |
@@ -578,9 +588,11 @@ TEST_F(SingleOverlayOnTopTest, DamageRect) { |
output_surface_plane.overlay_handled = true; |
candidate_list.push_back(output_surface_plane); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
DCHECK(damage_rect_.IsEmpty()); |
} |
@@ -598,9 +610,11 @@ TEST_F(SingleOverlayOnTopTest, NoCandidates) { |
RenderPass::CopyAll(pass_list, &original_pass_list); |
OverlayCandidateList candidate_list; |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
overlay_processor_->ProcessForOverlays( |
- resource_provider_.get(), pass_list.back().get(), &candidate_list, |
- nullptr, &damage_rect_); |
+ resource_provider_.get(), pass_list.back().get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
// There should be nothing new here. |
CompareRenderPassLists(pass_list, original_pass_list); |
@@ -624,9 +638,11 @@ TEST_F(SingleOverlayOnTopTest, OccludedCandidates) { |
RenderPass::CopyAll(pass_list, &original_pass_list); |
OverlayCandidateList candidate_list; |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
overlay_processor_->ProcessForOverlays( |
- resource_provider_.get(), pass_list.back().get(), &candidate_list, |
- nullptr, &damage_rect_); |
+ resource_provider_.get(), pass_list.back().get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
// There should be nothing new here. |
CompareRenderPassLists(pass_list, original_pass_list); |
@@ -647,9 +663,11 @@ TEST_F(SingleOverlayOnTopTest, MultipleRenderPasses) { |
// Check for potential candidates. |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -662,9 +680,11 @@ TEST_F(SingleOverlayOnTopTest, RejectBlending) { |
quad->needs_blending = true; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -677,9 +697,11 @@ TEST_F(SingleOverlayOnTopTest, RejectBackgroundColor) { |
quad->background_color = SK_ColorBLACK; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -691,9 +713,11 @@ TEST_F(SingleOverlayOnTopTest, RejectBlendMode) { |
pass->shared_quad_state_list.back()->blend_mode = SkBlendMode::kScreen; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -705,9 +729,11 @@ TEST_F(SingleOverlayOnTopTest, RejectOpacity) { |
pass->shared_quad_state_list.back()->opacity = 0.5f; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -720,9 +746,11 @@ TEST_F(SingleOverlayOnTopTest, RejectNonAxisAlignedTransform) { |
->quad_to_target_transform.RotateAboutXAxis(45.f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -735,9 +763,11 @@ TEST_F(SingleOverlayOnTopTest, AllowClipped) { |
pass->shared_quad_state_list.back()->clip_rect = kOverlayClipRect; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -751,9 +781,11 @@ TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) { |
pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, |
-1.0f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL, |
candidate_list.back().transform); |
@@ -770,9 +802,11 @@ TEST_F(SingleOverlayOnTopTest, AllowHorizontalFlip) { |
2.0f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL, |
candidate_list.back().transform); |
@@ -787,9 +821,11 @@ TEST_F(SingleOverlayOnTopTest, AllowPositiveScaleTransform) { |
pass->shared_quad_state_list.back()->quad_to_target_transform.Scale(2.0f, |
1.0f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -803,9 +839,11 @@ TEST_F(SingleOverlayOnTopTest, Allow90DegreeRotation) { |
->quad_to_target_transform.RotateAboutZAxis(90.f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_90, candidate_list.back().transform); |
} |
@@ -820,9 +858,11 @@ TEST_F(SingleOverlayOnTopTest, Allow180DegreeRotation) { |
->quad_to_target_transform.RotateAboutZAxis(180.f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_180, candidate_list.back().transform); |
} |
@@ -837,9 +877,11 @@ TEST_F(SingleOverlayOnTopTest, Allow270DegreeRotation) { |
->quad_to_target_transform.RotateAboutZAxis(270.f); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_270, candidate_list.back().transform); |
} |
@@ -855,9 +897,11 @@ TEST_F(SingleOverlayOnTopTest, AllowNotTopIfNotOccluded) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -873,9 +917,11 @@ TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -889,9 +935,11 @@ TEST_F(SingleOverlayOnTopTest, AllowTransparentColorOnTop) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -907,9 +955,11 @@ TEST_F(SingleOverlayOnTopTest, RejectOpaqueColorOnTop) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -923,9 +973,11 @@ TEST_F(SingleOverlayOnTopTest, RejectTransparentColorOnTopWithoutBlending) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -936,9 +988,11 @@ TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) { |
pass.get(), kSwapTransform); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(0U, candidate_list.size()); |
} |
@@ -949,9 +1003,11 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoXMirrorTransform) { |
pass.get(), kXMirrorTransform); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -962,9 +1018,11 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoBothMirrorTransform) { |
pass.get(), kBothMirrorTransform); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -975,9 +1033,11 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoNormalTransform) { |
pass.get(), kNormalTransform); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -988,9 +1048,11 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoYMirrorTransform) { |
pass.get(), kYMirrorTransform); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(1U, candidate_list.size()); |
} |
@@ -1003,9 +1065,11 @@ TEST_F(UnderlayTest, OverlayLayerUnderMainLayer) { |
kOverlayBottomRightRect); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(-1, candidate_list[0].plane_z_order); |
EXPECT_EQ(2U, pass->quad_list.size()); |
@@ -1023,9 +1087,11 @@ TEST_F(UnderlayTest, AllowOnTop) { |
pass->shared_quad_state_list.back(), pass.get()); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
ASSERT_EQ(1U, candidate_list.size()); |
EXPECT_EQ(-1, candidate_list[0].plane_z_order); |
// The overlay quad should have changed to a SOLID_COLOR quad. |
@@ -1042,9 +1108,11 @@ TEST_F(UnderlayTest, InitialUnderlayDamageNotSubtracted) { |
damage_rect_ = kOverlayRect; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, &damage_rect_); |
EXPECT_EQ(kOverlayRect, damage_rect_); |
} |
@@ -1065,9 +1133,12 @@ TEST_F(UnderlayTest, DamageSubtractedForConsecutiveIdenticalUnderlays) { |
pass->shared_quad_state_list.back(), pass.get()); |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, |
+ &damage_rect_); |
} |
// The second time the same overlay rect is scheduled it will be subtracted |
@@ -1089,9 +1160,12 @@ TEST_F(UnderlayTest, DamageNotSubtractedForNonIdenticalConsecutiveUnderlays) { |
damage_rect_ = overlay_rects[i]; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, |
+ &damage_rect_); |
EXPECT_EQ(overlay_rects[i], damage_rect_); |
} |
@@ -1110,9 +1184,12 @@ TEST_F(UnderlayTest, DamageNotSubtractedWhenQuadsAboveOverlap) { |
damage_rect_ = kOverlayRect; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, |
+ &damage_rect_); |
} |
EXPECT_EQ(kOverlayRect, damage_rect_); |
@@ -1132,9 +1209,12 @@ TEST_F(UnderlayTest, DamageSubtractedWhenQuadsAboveDontOverlap) { |
damage_rect_ = kOverlayBottomRightRect; |
OverlayCandidateList candidate_list; |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &candidate_list, nullptr, |
- &damage_rect_); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &candidate_list, nullptr, |
+ &damage_rect_); |
} |
EXPECT_TRUE(damage_rect_.IsEmpty()); |
@@ -1163,9 +1243,12 @@ TEST_F(CALayerOverlayTest, AllowNonAxisAlignedTransform) { |
gfx::Rect damage_rect; |
CALayerOverlayList ca_layer_list; |
OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &overlay_list, &ca_layer_list, |
- &damage_rect); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &overlay_list, &ca_layer_list, |
+ &damage_rect); |
EXPECT_EQ(gfx::Rect(), damage_rect); |
EXPECT_EQ(0U, overlay_list.size()); |
EXPECT_EQ(1U, ca_layer_list.size()); |
@@ -1183,9 +1266,12 @@ TEST_F(CALayerOverlayTest, ThreeDTransform) { |
gfx::Rect damage_rect; |
CALayerOverlayList ca_layer_list; |
OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &overlay_list, &ca_layer_list, |
- &damage_rect); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &overlay_list, &ca_layer_list, |
+ &damage_rect); |
EXPECT_EQ(0U, overlay_list.size()); |
EXPECT_EQ(1U, ca_layer_list.size()); |
gfx::Transform expected_transform; |
@@ -1206,9 +1292,12 @@ TEST_F(CALayerOverlayTest, AllowContainingClip) { |
gfx::Rect damage_rect; |
CALayerOverlayList ca_layer_list; |
OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &overlay_list, &ca_layer_list, |
- &damage_rect); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &overlay_list, &ca_layer_list, |
+ &damage_rect); |
EXPECT_EQ(gfx::Rect(), damage_rect); |
EXPECT_EQ(0U, overlay_list.size()); |
EXPECT_EQ(1U, ca_layer_list.size()); |
@@ -1226,9 +1315,12 @@ TEST_F(CALayerOverlayTest, NontrivialClip) { |
gfx::Rect damage_rect; |
CALayerOverlayList ca_layer_list; |
OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &overlay_list, &ca_layer_list, |
- &damage_rect); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &overlay_list, &ca_layer_list, |
+ &damage_rect); |
EXPECT_EQ(gfx::Rect(), damage_rect); |
EXPECT_EQ(0U, overlay_list.size()); |
EXPECT_EQ(1U, ca_layer_list.size()); |
@@ -1248,9 +1340,12 @@ TEST_F(CALayerOverlayTest, SkipTransparent) { |
gfx::Rect damage_rect; |
CALayerOverlayList ca_layer_list; |
OverlayCandidateList overlay_list(BackbufferOverlayList(pass.get())); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), pass.get(), |
- &overlay_list, &ca_layer_list, |
- &damage_rect); |
+ RenderPassFilterList render_pass_filters; |
+ RenderPassFilterList render_pass_background_filters; |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass.get(), render_pass_filters, |
+ render_pass_background_filters, &overlay_list, &ca_layer_list, |
+ &damage_rect); |
EXPECT_EQ(gfx::Rect(), damage_rect); |
EXPECT_EQ(0U, overlay_list.size()); |
EXPECT_EQ(0U, ca_layer_list.size()); |
@@ -1774,15 +1869,18 @@ class CALayerOverlayRPDQTest : public CALayerOverlayTest { |
void ProcessForOverlays() { |
gfx::Rect damage_rect; |
overlay_list_ = BackbufferOverlayList(pass_.get()); |
- overlay_processor_->ProcessForOverlays(resource_provider_.get(), |
- pass_.get(), &overlay_list_, |
- &ca_layer_list_, &damage_rect); |
+ overlay_processor_->ProcessForOverlays( |
+ resource_provider_.get(), pass_.get(), render_pass_filters_, |
+ render_pass_background_filters_, &overlay_list_, &ca_layer_list_, |
+ &damage_rect); |
} |
std::unique_ptr<RenderPass> pass_; |
RenderPassDrawQuad* quad_; |
int render_pass_id_; |
FilterOperations filters_; |
FilterOperations background_filters_; |
+ RenderPassFilterList render_pass_filters_; |
+ RenderPassFilterList render_pass_background_filters_; |
CALayerOverlayList ca_layer_list_; |
OverlayCandidateList overlay_list_; |
}; |
@@ -1790,8 +1888,7 @@ class CALayerOverlayRPDQTest : public CALayerOverlayTest { |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadNoFilters) { |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 1), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
@@ -1809,10 +1906,10 @@ TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadAllValidFilters) { |
filters_.Append(FilterOperation::CreateBlurFilter(0.9f)); |
filters_.Append(FilterOperation::CreateDropShadowFilter(gfx::Point(10, 20), |
1.0f, SK_ColorGREEN)); |
+ render_pass_filters_.push_back(std::make_pair(render_pass_id_, &filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 1), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
@@ -1820,20 +1917,20 @@ TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadAllValidFilters) { |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadOpacityFilterScale) { |
filters_.Append(FilterOperation::CreateOpacityFilter(0.8f)); |
+ render_pass_filters_.push_back(std::make_pair(render_pass_id_, &filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 2), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 2), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
} |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBlurFilterScale) { |
filters_.Append(FilterOperation::CreateBlurFilter(0.8f)); |
+ render_pass_filters_.push_back(std::make_pair(render_pass_id_, &filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 2), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 2), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
} |
@@ -1841,20 +1938,21 @@ TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBlurFilterScale) { |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadDropShadowFilterScale) { |
filters_.Append(FilterOperation::CreateDropShadowFilter(gfx::Point(10, 20), |
1.0f, SK_ColorGREEN)); |
+ render_pass_filters_.push_back(std::make_pair(render_pass_id_, &filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 2), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 2), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
} |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBackgroundFilter) { |
background_filters_.Append(FilterOperation::CreateGrayscaleFilter(0.1f)); |
+ render_pass_background_filters_.push_back( |
+ std::make_pair(render_pass_id_, &background_filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 1), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(0U, ca_layer_list_.size()); |
} |
@@ -1862,18 +1960,17 @@ TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadBackgroundFilter) { |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadMask) { |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 2, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 1), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(1U, ca_layer_list_.size()); |
} |
TEST_F(CALayerOverlayRPDQTest, RenderPassDrawQuadUnsupportedFilter) { |
filters_.Append(FilterOperation::CreateZoomFilter(0.9f, 1)); |
+ render_pass_filters_.push_back(std::make_pair(render_pass_id_, &filters_)); |
quad_->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 0, gfx::Vector2dF(), gfx::Size(), |
- filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Vector2dF(1, 1), gfx::PointF()); |
ProcessForOverlays(); |
EXPECT_EQ(0U, ca_layer_list_.size()); |
} |
@@ -1887,8 +1984,7 @@ TEST_F(CALayerOverlayRPDQTest, TooManyRenderPassDrawQuads) { |
pass_->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
quad->SetNew(pass_->shared_quad_state_list.back(), kOverlayRect, |
kOverlayRect, render_pass_id_, 2, gfx::Vector2dF(), |
- gfx::Size(), filters_, gfx::Vector2dF(1, 1), gfx::PointF(), |
- background_filters_); |
+ gfx::Size(), gfx::Vector2dF(1, 1), gfx::PointF()); |
} |
ProcessForOverlays(); |