| Index: cc/output/overlay_unittest.cc
|
| diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
|
| index 7974297917fda58efab0d0e8002397cb6fccb002..dec58516ae050277c8ef4865bb0d8b40a0652ce9 100644
|
| --- a/cc/output/overlay_unittest.cc
|
| +++ b/cc/output/overlay_unittest.cc
|
| @@ -1679,12 +1679,14 @@ class FakeRendererClient : public RendererClient {
|
|
|
| class MockOverlayScheduler {
|
| public:
|
| - MOCK_METHOD5(Schedule,
|
| + MOCK_METHOD7(Schedule,
|
| void(int plane_z_order,
|
| gfx::OverlayTransform plane_transform,
|
| + gfx::BufferFormat storage_format,
|
| unsigned overlay_texture_id,
|
| const gfx::Rect& display_bounds,
|
| - const gfx::RectF& uv_rect));
|
| + const gfx::RectF& uv_rect,
|
| + bool handle_Scaling));
|
| };
|
|
|
| class GLRendererWithOverlaysTest : public testing::Test {
|
| @@ -1745,13 +1747,15 @@ TEST_F(GLRendererWithOverlaysTest, OverlayQuadNotDrawn) {
|
| // Candidate pass was taken out and extra skipped pass added,
|
| // so only draw 2 quads.
|
| EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(2);
|
| - EXPECT_CALL(scheduler_,
|
| - Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, _,
|
| - gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1)))
|
| + EXPECT_CALL(
|
| + scheduler_,
|
| + Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, gfx::BufferFormat::BGRX_8888, _,
|
| + gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1), true))
|
| .Times(1);
|
| - EXPECT_CALL(scheduler_, Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _,
|
| - kOverlayBottomRightRect,
|
| - BoundingRect(kUVTopLeft, kUVBottomRight)))
|
| + EXPECT_CALL(scheduler_,
|
| + Schedule(1, gfx::OVERLAY_TRANSFORM_NONE,
|
| + gfx::BufferFormat::BGRX_8888, _, kOverlayBottomRightRect,
|
| + BoundingRect(kUVTopLeft, kUVBottomRight), true))
|
| .Times(1);
|
| renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
|
|
|
| @@ -1784,13 +1788,15 @@ TEST_F(GLRendererWithOverlaysTest, OccludedQuadInUnderlay) {
|
| // Candidate quad should fail to be overlaid on top because of occlusion.
|
| // 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)))
|
| + EXPECT_CALL(
|
| + scheduler_,
|
| + Schedule(0, gfx::OVERLAY_TRANSFORM_NONE, gfx::BufferFormat::BGRX_8888, _,
|
| + gfx::Rect(kDisplaySize), gfx::RectF(0, 0, 1, 1), true))
|
| .Times(1);
|
| - EXPECT_CALL(scheduler_,
|
| - Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect,
|
| - BoundingRect(kUVTopLeft, kUVBottomRight)))
|
| + EXPECT_CALL(
|
| + scheduler_,
|
| + Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, gfx::BufferFormat::BGRX_8888, _,
|
| + kOverlayRect, BoundingRect(kUVTopLeft, kUVBottomRight), true))
|
| .Times(1);
|
| renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
|
|
|
| @@ -1823,7 +1829,7 @@ TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) {
|
| // Should not see the primary surface's overlay.
|
| output_surface_->set_is_displayed_as_overlay_plane(false);
|
| EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3);
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
|
| SwapBuffers();
|
| Mock::VerifyAndClearExpectations(renderer_.get());
|
| @@ -1854,7 +1860,7 @@ TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenPartialSwapEnabled) {
|
|
|
| output_surface_->set_is_displayed_as_overlay_plane(true);
|
| EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0);
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
|
| SwapBuffers();
|
| Mock::VerifyAndClearExpectations(renderer_.get());
|
| @@ -1885,7 +1891,7 @@ TEST_F(GLRendererWithOverlaysTest, OccludedQuadNotDrawnWhenEmptySwapAllowed) {
|
|
|
| output_surface_->set_is_displayed_as_overlay_plane(true);
|
| EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(0);
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
|
| SwapBuffers();
|
| Mock::VerifyAndClearExpectations(renderer_.get());
|
| @@ -1932,7 +1938,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| overlay3.resource_id = resource3;
|
| overlay3.plane_z_order = 1;
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame1);
|
| renderer_->FinishDrawingFrame(&frame1);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -1940,7 +1946,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| SwapBuffers();
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame2);
|
| renderer_->FinishDrawingFrame(&frame2);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -1950,7 +1956,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame3);
|
| renderer_->FinishDrawingFrame(&frame3);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -1963,7 +1969,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| // No overlays, release the resource.
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| DirectRenderer::DrawingFrame frame_no_overlays;
|
| frame_no_overlays.render_passes_in_draw_order = &pass_list;
|
| renderer_->set_expect_overlays(false);
|
| @@ -1980,14 +1986,14 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
|
|
| // Use the same buffer twice.
|
| renderer_->set_expect_overlays(true);
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + 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(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame1);
|
| renderer_->FinishDrawingFrame(&frame1);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -1995,7 +2001,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->set_expect_overlays(false);
|
| renderer_->BeginDrawingFrame(&frame_no_overlays);
|
| renderer_->FinishDrawingFrame(&frame_no_overlays);
|
| @@ -2004,7 +2010,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->set_expect_overlays(false);
|
| renderer_->BeginDrawingFrame(&frame_no_overlays);
|
| renderer_->FinishDrawingFrame(&frame_no_overlays);
|
| @@ -2055,7 +2061,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| overlay3.resource_id = resource3;
|
| overlay3.plane_z_order = 1;
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame1);
|
| renderer_->FinishDrawingFrame(&frame1);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -2063,7 +2069,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| SwapBuffers();
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame2);
|
| renderer_->FinishDrawingFrame(&frame2);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -2073,7 +2079,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource2));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame3);
|
| renderer_->FinishDrawingFrame(&frame3);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -2086,7 +2092,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| // No overlays, release the resource.
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| DirectRenderer::DrawingFrame frame_no_overlays;
|
| frame_no_overlays.render_passes_in_draw_order = &pass_list;
|
| renderer_->set_expect_overlays(false);
|
| @@ -2103,14 +2109,14 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
|
|
| // Use the same buffer twice.
|
| renderer_->set_expect_overlays(true);
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(2);
|
| + 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(2);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(2);
|
| renderer_->BeginDrawingFrame(&frame1);
|
| renderer_->FinishDrawingFrame(&frame1);
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| @@ -2118,7 +2124,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->set_expect_overlays(false);
|
| renderer_->BeginDrawingFrame(&frame_no_overlays);
|
| renderer_->FinishDrawingFrame(&frame_no_overlays);
|
| @@ -2127,7 +2133,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->set_expect_overlays(false);
|
| renderer_->BeginDrawingFrame(&frame_no_overlays);
|
| renderer_->FinishDrawingFrame(&frame_no_overlays);
|
| @@ -2136,7 +2142,7 @@ TEST_F(GLRendererWithOverlaysTest, ResourcesExportedAndReturnedWithExtraDelay) {
|
| EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
|
| Mock::VerifyAndClearExpectations(&scheduler_);
|
|
|
| - EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0);
|
| + EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _, _, _)).Times(0);
|
| renderer_->set_expect_overlays(false);
|
| renderer_->BeginDrawingFrame(&frame_no_overlays);
|
| renderer_->FinishDrawingFrame(&frame_no_overlays);
|
|
|