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

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: Rebase 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..0b9a678361fd15cc13c5d7154fe69a3a6a84d019 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -66,9 +66,13 @@ class SingleOverlayValidator : public OverlayCandidateValidator {
new OverlayStrategyCommon(this, new OverlayStrategyUnderlay)));
}
void CheckOverlaySupport(OverlayCandidateList* surfaces) override {
- ASSERT_EQ(2U, surfaces->size());
+ // We may have 1 or 2 surfaces depending on whether this ran through the
+ // full renderer and picked up the output surface, or not.
+ ASSERT_LE(1U, surfaces->size());
+ ASSERT_GE(2U, surfaces->size());
OverlayCandidate& candidate = surfaces->back();
+ EXPECT_TRUE(!candidate.use_output_surface_for_resource);
if (candidate.display_rect.width() == 64) {
EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect), candidate.display_rect);
} else {
@@ -136,6 +140,7 @@ class OverlayOutputSurface : public OutputSurface {
: OutputSurface(context_provider) {
surface_size_ = kDisplaySize;
device_scale_factor_ = 1;
+ is_displayed_as_overlay_plane_ = true;
}
void SetScaleFactor(float scale_factor) {
@@ -153,8 +158,17 @@ class OverlayOutputSurface : public OutputSurface {
return overlay_candidate_validator_.get();
}
+ bool IsDisplayedAsOverlayPlane() const override {
+ return is_displayed_as_overlay_plane_;
+ }
+ unsigned GetOverlayTextureId() const override { return 10000; }
+ void set_is_displayed_as_overlay_plane(bool value) {
+ is_displayed_as_overlay_plane_ = value;
+ }
+
private:
scoped_ptr<OverlayCandidateValidator> overlay_candidate_validator_;
+ bool is_displayed_as_overlay_plane_;
};
void OverlayOutputSurface::SwapBuffers(CompositorFrame* frame) {
@@ -392,7 +406,7 @@ TEST_F(SandwichTest, SuccessfulSingleOverlay) {
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
RenderPass* main_pass = pass_list.back();
// Check that the quad is gone.
@@ -434,10 +448,10 @@ TEST_F(SandwichTest, CroppedSingleOverlay) {
// Ensure that the display and uv rects have cropping applied to them.
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
- EXPECT_EQ(candidate_id, candidate_list[1].resource_id);
- EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[1].display_rect);
- EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[1].uv_rect);
+ ASSERT_EQ(1U, candidate_list.size());
+ EXPECT_EQ(candidate_id, candidate_list[0].resource_id);
+ EXPECT_EQ(gfx::RectF(0.f, 32.f, 64.f, 64.f), candidate_list[0].display_rect);
+ EXPECT_EQ(gfx::RectF(0.f, 0.25f, 0.5f, 0.5f), candidate_list[0].uv_rect);
}
TEST_F(SandwichTest, SuccessfulTwoOverlays) {
@@ -462,10 +476,10 @@ TEST_F(SandwichTest, SuccessfulTwoOverlays) {
// Both candidates should become overlays.
EXPECT_EQ(1u, pass_list.size());
- EXPECT_EQ(3u, candidate_list.size());
- EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[1].display_rect);
+ EXPECT_EQ(2u, candidate_list.size());
+ EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect);
EXPECT_EQ(gfx::RectF(kOverlayBottomRightRect),
- candidate_list[2].display_rect);
+ candidate_list[1].display_rect);
// The overlay quads should be gone.
const QuadList& quad_list = pass_list.back()->quad_list;
@@ -495,8 +509,8 @@ TEST_F(SandwichTest, OverlappingOverlays) {
// Only one of the candidates should become an overlay.
EXPECT_EQ(1u, pass_list.size());
- EXPECT_EQ(2u, candidate_list.size());
- EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[1].display_rect);
+ EXPECT_EQ(1u, candidate_list.size());
+ EXPECT_EQ(gfx::RectF(kOverlayTopLeftRect), candidate_list[0].display_rect);
// One of the overlay quads should be gone.
const QuadList& quad_list = pass_list.back()->quad_list;
@@ -528,7 +542,7 @@ TEST_F(SandwichTest, SuccessfulSandwichOverlay) {
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(3U, candidate_list.size());
+ ASSERT_EQ(2U, candidate_list.size());
RenderPass* main_pass = pass_list.back();
// Check that the quad is gone.
@@ -539,13 +553,12 @@ TEST_F(SandwichTest, SuccessfulSandwichOverlay) {
EXPECT_NE(DrawQuad::TEXTURE_CONTENT, it->material);
}
- EXPECT_FALSE(candidate_list[0].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);
- EXPECT_EQ(gfx::RectF(32.f, 32.f, 16.f, 16.f), candidate_list[2].display_rect);
+ EXPECT_EQ(candidate_id, candidate_list[0].resource_id);
+ EXPECT_EQ(gfx::RectF(32.f, 32.f, 32.f, 32.f), candidate_list[0].display_rect);
+ EXPECT_TRUE(candidate_list[1].use_output_surface_for_resource);
+ EXPECT_EQ(gfx::RectF(32.f, 32.f, 16.f, 16.f), candidate_list[1].display_rect);
EXPECT_EQ(gfx::RectF(32.f / 256.f, 32.f / 256.f, 16.f / 256.f, 16.f / 256.f),
- candidate_list[2].uv_rect);
+ candidate_list[1].uv_rect);
}
TEST_F(SandwichTest, MultiQuadOverlay) {
@@ -583,7 +596,7 @@ TEST_F(SandwichTest, MultiQuadOverlay) {
EXPECT_EQ(4U, main_pass->quad_list.size());
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(4U, candidate_list.size());
+ ASSERT_EQ(3U, candidate_list.size());
// Check that the candidate quad is gone and that we now have two transparent
// quads for the same region that was covered on the overlay.
@@ -603,14 +616,13 @@ 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_EQ(candidate_id, candidate_list[1].resource_id);
- EXPECT_EQ(gfx::RectF(64.f, 64.f), candidate_list[1].display_rect);
+ EXPECT_EQ(candidate_id, candidate_list[0].resource_id);
+ EXPECT_EQ(gfx::RectF(64.f, 64.f), candidate_list[0].display_rect);
+ EXPECT_TRUE(candidate_list[1].use_output_surface_for_resource);
EXPECT_TRUE(candidate_list[2].use_output_surface_for_resource);
- EXPECT_TRUE(candidate_list[3].use_output_surface_for_resource);
Region overlay_region;
+ overlay_region.Union(gfx::ToEnclosingRect(candidate_list[1].display_rect));
overlay_region.Union(gfx::ToEnclosingRect(candidate_list[2].display_rect));
- overlay_region.Union(gfx::ToEnclosingRect(candidate_list[3].display_rect));
DCHECK(covered_region == overlay_region);
}
@@ -636,7 +648,7 @@ TEST_F(SingleOverlayOnTopTest, SuccessfullOverlay) {
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
RenderPass* main_pass = pass_list.back();
// Check that the quad is gone.
@@ -720,7 +732,7 @@ TEST_F(SingleOverlayOnTopTest, MultipleRenderPasses) {
// Check for potential candidates.
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
// This should be the same.
ASSERT_EQ(2U, pass_list.size());
@@ -833,7 +845,7 @@ TEST_F(SingleOverlayOnTopTest, AllowClipped) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) {
@@ -851,7 +863,7 @@ TEST_F(SingleOverlayOnTopTest, AllowVerticalFlip) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_VERTICAL,
candidate_list.back().transform);
}
@@ -871,7 +883,7 @@ TEST_F(SingleOverlayOnTopTest, AllowHorizontalFlip) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_FLIP_HORIZONTAL,
candidate_list.back().transform);
}
@@ -890,7 +902,7 @@ TEST_F(SingleOverlayOnTopTest, AllowPositiveScaleTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, Allow90DegreeRotation) {
@@ -907,7 +919,7 @@ TEST_F(SingleOverlayOnTopTest, Allow90DegreeRotation) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_90, candidate_list.back().transform);
}
@@ -925,7 +937,7 @@ TEST_F(SingleOverlayOnTopTest, Allow180DegreeRotation) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_180, candidate_list.back().transform);
}
@@ -943,7 +955,7 @@ TEST_F(SingleOverlayOnTopTest, Allow270DegreeRotation) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
+ ASSERT_EQ(1U, candidate_list.size());
EXPECT_EQ(gfx::OVERLAY_TRANSFORM_ROTATE_270, candidate_list.back().transform);
}
@@ -966,7 +978,7 @@ TEST_F(SingleOverlayOnTopTest, AllowNotTopIfNotOccluded) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) {
@@ -989,7 +1001,7 @@ TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowTransparentColorOnTop) {
@@ -1010,7 +1022,7 @@ TEST_F(SingleOverlayOnTopTest, AllowTransparentColorOnTop) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, RejectOpaqueColorOnTop) {
@@ -1082,7 +1094,7 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoXMirrorTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowVideoBothMirrorTransform) {
@@ -1096,7 +1108,7 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoBothMirrorTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowVideoNormalTransform) {
@@ -1110,7 +1122,7 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoNormalTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(SingleOverlayOnTopTest, AllowVideoYMirrorTransform) {
@@ -1124,7 +1136,7 @@ TEST_F(SingleOverlayOnTopTest, AllowVideoYMirrorTransform) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
ASSERT_EQ(1U, pass_list.size());
- EXPECT_EQ(2U, candidate_list.size());
+ EXPECT_EQ(1U, candidate_list.size());
}
TEST_F(UnderlayTest, OverlayLayerUnderMainLayer) {
@@ -1141,9 +1153,8 @@ TEST_F(UnderlayTest, OverlayLayerUnderMainLayer) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
- EXPECT_EQ(0, candidate_list[0].plane_z_order);
- EXPECT_EQ(-1, candidate_list[1].plane_z_order);
+ ASSERT_EQ(1U, candidate_list.size());
+ EXPECT_EQ(-1, candidate_list[0].plane_z_order);
EXPECT_EQ(2U, pass_list[0]->quad_list.size());
// The overlay quad should have changed to a SOLID_COLOR quad.
EXPECT_EQ(pass_list[0]->quad_list.back()->material, DrawQuad::SOLID_COLOR);
@@ -1164,9 +1175,8 @@ TEST_F(UnderlayTest, AllowOnTop) {
OverlayCandidateList candidate_list;
overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
EXPECT_EQ(1U, pass_list.size());
- ASSERT_EQ(2U, candidate_list.size());
- EXPECT_EQ(0, candidate_list[0].plane_z_order);
- EXPECT_EQ(-1, candidate_list[1].plane_z_order);
+ 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.
EXPECT_EQ(pass_list[0]->quad_list.front()->material, DrawQuad::SOLID_COLOR);
}
@@ -1288,11 +1298,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 +1337,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();
@@ -1355,13 +1372,12 @@ TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) {
RenderPassList pass_list;
pass_list.push_back(pass.Pass());
- // Should see no overlays.
+ // 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);
renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
-
SwapBuffers();
-
Mock::VerifyAndClearExpectations(renderer_.get());
Mock::VerifyAndClearExpectations(&scheduler_);
}
@@ -1381,6 +1397,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 +1405,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 +1428,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 +1452,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 +1494,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 +1502,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 +1510,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 +1523,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 +1533,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 +1563,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));
« no previous file with comments | « cc/output/overlay_strategy_common.cc ('k') | content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698