| 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();
|
|
|