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

Side by Side Diff: cc/output/overlay_unittest.cc

Issue 1136153002: Enable underlay strategy by default in OverlayProcessor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « cc/output/overlay_processor.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/base/scoped_ptr_vector.h" 5 #include "cc/base/scoped_ptr_vector.h"
6 #include "cc/output/compositor_frame_metadata.h" 6 #include "cc/output/compositor_frame_metadata.h"
7 #include "cc/output/gl_renderer.h" 7 #include "cc/output/gl_renderer.h"
8 #include "cc/output/output_surface.h" 8 #include "cc/output/output_surface.h"
9 #include "cc/output/output_surface_client.h" 9 #include "cc/output/output_surface_client.h"
10 #include "cc/output/overlay_candidate_validator.h" 10 #include "cc/output/overlay_candidate_validator.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL); 297 EXPECT_TRUE(output_surface.GetOverlayCandidateValidator() != NULL);
298 298
299 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( 299 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
300 new TestSharedBitmapManager()); 300 new TestSharedBitmapManager());
301 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( 301 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
302 &output_surface, shared_bitmap_manager.get(), NULL, NULL, 0, false, 1)); 302 &output_surface, shared_bitmap_manager.get(), NULL, NULL, 0, false, 1));
303 303
304 scoped_ptr<DefaultOverlayProcessor> overlay_processor( 304 scoped_ptr<DefaultOverlayProcessor> overlay_processor(
305 new DefaultOverlayProcessor(&output_surface, resource_provider.get())); 305 new DefaultOverlayProcessor(&output_surface, resource_provider.get()));
306 overlay_processor->Initialize(); 306 overlay_processor->Initialize();
307 EXPECT_GE(1U, overlay_processor->GetStrategyCount()); 307 EXPECT_GE(2U, overlay_processor->GetStrategyCount());
308 } 308 }
309 309
310 template <typename OverlayStrategyType> 310 template <typename OverlayStrategyType>
311 class OverlayTest : public testing::Test { 311 class OverlayTest : public testing::Test {
312 protected: 312 protected:
313 void SetUp() override { 313 void SetUp() override {
314 provider_ = TestContextProvider::Create(); 314 provider_ = TestContextProvider::Create();
315 output_surface_.reset(new OverlayOutputSurface(provider_)); 315 output_surface_.reset(new OverlayOutputSurface(provider_));
316 EXPECT_TRUE(output_surface_->BindToClient(&client_)); 316 EXPECT_TRUE(output_surface_->BindToClient(&client_));
317 output_surface_->InitWithSingleOverlayValidator(); 317 output_surface_->InitWithSingleOverlayValidator();
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
941 kOverlayRect, 941 kOverlayRect,
942 BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1); 942 BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1);
943 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 943 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
944 944
945 SwapBuffers(); 945 SwapBuffers();
946 946
947 Mock::VerifyAndClearExpectations(renderer_.get()); 947 Mock::VerifyAndClearExpectations(renderer_.get());
948 Mock::VerifyAndClearExpectations(&scheduler_); 948 Mock::VerifyAndClearExpectations(&scheduler_);
949 } 949 }
950 950
951 TEST_F(GLRendererWithOverlaysTest, OccludedQuadDrawn) { 951 TEST_F(GLRendererWithOverlaysTest, OccludedQuadInUnderlay) {
952 bool use_validator = true; 952 bool use_validator = true;
953 Init(use_validator); 953 Init(use_validator);
954 renderer_->set_expect_overlays(false); 954 renderer_->set_expect_overlays(true);
955 gfx::Rect viewport_rect(16, 16); 955 gfx::Rect viewport_rect(16, 16);
956 956
957 scoped_ptr<RenderPass> pass = CreateRenderPass(); 957 scoped_ptr<RenderPass> pass = CreateRenderPass();
958 958
959 CreateFullscreenCheckeredQuad(resource_provider_.get(), 959 CreateFullscreenCheckeredQuad(resource_provider_.get(),
960 pass->shared_quad_state_list.back(), 960 pass->shared_quad_state_list.back(),
961 pass.get()); 961 pass.get());
962 CreateFullscreenCheckeredQuad(resource_provider_.get(), 962 CreateFullscreenCheckeredQuad(resource_provider_.get(),
963 pass->shared_quad_state_list.back(), 963 pass->shared_quad_state_list.back(),
964 pass.get()); 964 pass.get());
965 965
966 CreateFullscreenCandidateQuad(resource_provider_.get(), 966 CreateFullscreenCandidateQuad(resource_provider_.get(),
967 pass->shared_quad_state_list.back(), 967 pass->shared_quad_state_list.back(),
968 pass.get()); 968 pass.get());
969 969
970 RenderPassList pass_list; 970 RenderPassList pass_list;
971 pass_list.push_back(pass.Pass()); 971 pass_list.push_back(pass.Pass());
972 972
973 // 3 quads in the pass, all should draw. 973 // Candidate quad should fail to be overlaid on top because of occlusion.
974 // Expect to be replaced with transparent hole quad and placed in underlay.
974 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3); 975 EXPECT_CALL(*renderer_, DoDrawQuad(_, _, _)).Times(3);
975 EXPECT_CALL(scheduler_, Schedule(_, _, _, _, _)).Times(0); 976 EXPECT_CALL(scheduler_,
977 Schedule(-1, gfx::OVERLAY_TRANSFORM_NONE, _, kOverlayRect,
978 BoundingRect(kUVTopLeft, kUVBottomRight))).Times(1);
976 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false); 979 renderer_->DrawFrame(&pass_list, 1.f, viewport_rect, viewport_rect, false);
977 980
978 SwapBuffers(); 981 SwapBuffers();
979 982
980 Mock::VerifyAndClearExpectations(renderer_.get()); 983 Mock::VerifyAndClearExpectations(renderer_.get());
981 Mock::VerifyAndClearExpectations(&scheduler_); 984 Mock::VerifyAndClearExpectations(&scheduler_);
982 } 985 }
983 986
984 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) { 987 TEST_F(GLRendererWithOverlaysTest, NoValidatorNoOverlay) {
985 bool use_validator = false; 988 bool use_validator = false;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 renderer_->BeginDrawingFrame(&frame3); 1106 renderer_->BeginDrawingFrame(&frame3);
1104 renderer_->FinishDrawingFrame(&frame3); 1107 renderer_->FinishDrawingFrame(&frame3);
1105 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 1108 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
1106 SwapBuffers(); 1109 SwapBuffers();
1107 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 1110 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
1108 Mock::VerifyAndClearExpectations(&scheduler_); 1111 Mock::VerifyAndClearExpectations(&scheduler_);
1109 } 1112 }
1110 1113
1111 } // namespace 1114 } // namespace
1112 } // namespace cc 1115 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/overlay_processor.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698