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

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

Issue 880023005: cc: Ignore certain quads that would otherwise block overlays (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add tests Created 5 years, 10 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
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/gl_renderer.h" 6 #include "cc/output/gl_renderer.h"
7 #include "cc/output/output_surface.h" 7 #include "cc/output/output_surface.h"
8 #include "cc/output/output_surface_client.h" 8 #include "cc/output/output_surface_client.h"
9 #include "cc/output/overlay_candidate_validator.h" 9 #include "cc/output/overlay_candidate_validator.h"
10 #include "cc/output/overlay_processor.h" 10 #include "cc/output/overlay_processor.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 TextureMailbox mailbox = 149 TextureMailbox mailbox =
150 TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point); 150 TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point);
151 mailbox.set_allow_overlay(true); 151 mailbox.set_allow_overlay(true);
152 scoped_ptr<SingleReleaseCallbackImpl> release_callback = 152 scoped_ptr<SingleReleaseCallbackImpl> release_callback =
153 SingleReleaseCallbackImpl::Create(base::Bind(&MailboxReleased)); 153 SingleReleaseCallbackImpl::Create(base::Bind(&MailboxReleased));
154 154
155 return resource_provider->CreateResourceFromTextureMailbox( 155 return resource_provider->CreateResourceFromTextureMailbox(
156 mailbox, release_callback.Pass()); 156 mailbox, release_callback.Pass());
157 } 157 }
158 158
159 SolidColorDrawQuad* CreateSolidColorQuadAt(
160 const SharedQuadState* shared_quad_state,
161 RenderPass* render_pass,
162 const gfx::Rect& rect) {
163 SolidColorDrawQuad* quad =
164 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
165 quad->SetNew(shared_quad_state, rect, rect, SK_ColorBLACK, false);
166 return quad;
167 }
168
159 TextureDrawQuad* CreateCandidateQuadAt(ResourceProvider* resource_provider, 169 TextureDrawQuad* CreateCandidateQuadAt(ResourceProvider* resource_provider,
160 const SharedQuadState* shared_quad_state, 170 const SharedQuadState* shared_quad_state,
161 RenderPass* render_pass, 171 RenderPass* render_pass,
162 const gfx::Rect& rect) { 172 const gfx::Rect& rect) {
163 ResourceProvider::ResourceId resource_id = CreateResource(resource_provider); 173 ResourceProvider::ResourceId resource_id = CreateResource(resource_provider);
164 bool premultiplied_alpha = false; 174 bool premultiplied_alpha = false;
165 bool flipped = false; 175 bool flipped = false;
166 bool nearest_neighbor = false; 176 bool nearest_neighbor = false;
167 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f}; 177 float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f};
168 178
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 595
586 RenderPassList original_pass_list; 596 RenderPassList original_pass_list;
587 RenderPass::CopyAll(pass_list, &original_pass_list); 597 RenderPass::CopyAll(pass_list, &original_pass_list);
588 598
589 OverlayCandidateList candidate_list; 599 OverlayCandidateList candidate_list;
590 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list); 600 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
591 EXPECT_EQ(1U, pass_list.size()); 601 EXPECT_EQ(1U, pass_list.size());
592 EXPECT_EQ(2U, candidate_list.size()); 602 EXPECT_EQ(2U, candidate_list.size());
593 } 603 }
594 604
605 TEST_F(SingleOverlayOnTopTest, AllowTransparentOnTop) {
606 scoped_ptr<RenderPass> pass = CreateRenderPass();
607 CreateCandidateQuadAt(resource_provider_.get(),
608 pass->shared_quad_state_list.back(), pass.get(),
609 kOverlayBottomRightRect);
610 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState();
611 shared_state->opacity = 0.f;
danakj 2015/02/04 18:42:32 can you test 1 opacity with a transparent color to
achaulk 2015/02/04 22:20:30 Done.
612 CreateSolidColorQuadAt(pass->shared_quad_state_list.back(), pass.get(),
613 kOverlayBottomRightRect);
614
615 RenderPassList pass_list;
616 pass_list.push_back(pass.Pass());
617
618 RenderPassList original_pass_list;
619 RenderPass::CopyAll(pass_list, &original_pass_list);
620
621 OverlayCandidateList candidate_list;
622 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
623 EXPECT_EQ(1U, pass_list.size());
624 EXPECT_EQ(2U, candidate_list.size());
625 }
626
595 TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) { 627 TEST_F(SingleOverlayOnTopTest, RejectVideoSwapTransform) {
596 scoped_ptr<RenderPass> pass = CreateRenderPass(); 628 scoped_ptr<RenderPass> pass = CreateRenderPass();
597 CreateFullscreenCandidateVideoQuad(resource_provider_.get(), 629 CreateFullscreenCandidateVideoQuad(resource_provider_.get(),
598 pass->shared_quad_state_list.back(), 630 pass->shared_quad_state_list.back(),
599 pass.get(), kSwapTransform); 631 pass.get(), kSwapTransform);
600 632
601 RenderPassList pass_list; 633 RenderPassList pass_list;
602 pass_list.push_back(pass.Pass()); 634 pass_list.push_back(pass.Pass());
603 OverlayCandidateList candidate_list; 635 OverlayCandidateList candidate_list;
604 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list); 636 overlay_processor_->ProcessForOverlays(&pass_list, &candidate_list);
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 renderer_->BeginDrawingFrame(&frame3); 978 renderer_->BeginDrawingFrame(&frame3);
947 renderer_->FinishDrawingFrame(&frame3); 979 renderer_->FinishDrawingFrame(&frame3);
948 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1)); 980 EXPECT_TRUE(resource_provider_->InUseByConsumer(resource1));
949 SwapBuffers(); 981 SwapBuffers();
950 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1)); 982 EXPECT_FALSE(resource_provider_->InUseByConsumer(resource1));
951 Mock::VerifyAndClearExpectations(&scheduler_); 983 Mock::VerifyAndClearExpectations(&scheduler_);
952 } 984 }
953 985
954 } // namespace 986 } // namespace
955 } // namespace cc 987 } // namespace cc
OLDNEW
« cc/output/overlay_strategy_single_on_top.cc ('K') | « cc/output/overlay_strategy_single_on_top.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698