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

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

Issue 12676029: cc: Fix capitalization style in chromified files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « cc/output/gl_renderer_pixeltest.cc ('k') | cc/output/output_surface.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include "cc/output/compositor_frame_metadata.h" 7 #include "cc/output/compositor_frame_metadata.h"
8 #include "cc/quads/draw_quad.h" 8 #include "cc/quads/draw_quad.h"
9 #include "cc/resources/prioritized_resource_manager.h" 9 #include "cc/resources/prioritized_resource_manager.h"
10 #include "cc/resources/resource_provider.h" 10 #include "cc/resources/resource_provider.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 225
226 WebGraphicsMemoryAllocation suggest_have_backbuffer_yes_; 226 WebGraphicsMemoryAllocation suggest_have_backbuffer_yes_;
227 WebGraphicsMemoryAllocation suggest_have_backbuffer_no_; 227 WebGraphicsMemoryAllocation suggest_have_backbuffer_no_;
228 228
229 scoped_ptr<OutputSurface> output_surface_; 229 scoped_ptr<OutputSurface> output_surface_;
230 FakeRendererClient mock_client_; 230 FakeRendererClient mock_client_;
231 scoped_ptr<ResourceProvider> resource_provider_; 231 scoped_ptr<ResourceProvider> resource_provider_;
232 FakeRendererGL renderer_; 232 FakeRendererGL renderer_;
233 }; 233 };
234 234
235 // Test GLRenderer discardBackbuffer functionality: 235 // Test GLRenderer DiscardBackbuffer functionality:
236 // Suggest recreating framebuffer when one already exists. 236 // Suggest recreating framebuffer when one already exists.
237 // Expected: it does nothing. 237 // Expected: it does nothing.
238 TEST_F(GLRendererTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing) { 238 TEST_F(GLRendererTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing) {
239 context()->SetMemoryAllocation(suggest_have_backbuffer_yes_); 239 context()->SetMemoryAllocation(suggest_have_backbuffer_yes_);
240 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); 240 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count());
241 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); 241 EXPECT_FALSE(renderer_.IsBackbufferDiscarded());
242 242
243 SwapBuffers(); 243 SwapBuffers();
244 EXPECT_EQ(1, context()->frame_count()); 244 EXPECT_EQ(1, context()->frame_count());
245 } 245 }
246 246
247 // Test GLRenderer discardBackbuffer functionality: 247 // Test GLRenderer DiscardBackbuffer functionality:
248 // Suggest discarding framebuffer when one exists and the renderer is not 248 // Suggest discarding framebuffer when one exists and the renderer is not
249 // visible. 249 // visible.
250 // Expected: it is discarded and damage tracker is reset. 250 // Expected: it is discarded and damage tracker is reset.
251 TEST_F(GLRendererTest, 251 TEST_F(GLRendererTest,
252 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisib le) { 252 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerWhileNotVisib le) {
253 renderer_.SetVisible(false); 253 renderer_.SetVisible(false);
254 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); 254 context()->SetMemoryAllocation(suggest_have_backbuffer_no_);
255 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); 255 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count());
256 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); 256 EXPECT_TRUE(renderer_.IsBackbufferDiscarded());
257 } 257 }
258 258
259 // Test GLRenderer discardBackbuffer functionality: 259 // Test GLRenderer DiscardBackbuffer functionality:
260 // Suggest discarding framebuffer when one exists and the renderer is visible. 260 // Suggest discarding framebuffer when one exists and the renderer is visible.
261 // Expected: the allocation is ignored. 261 // Expected: the allocation is ignored.
262 TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible) { 262 TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible) {
263 renderer_.SetVisible(true); 263 renderer_.SetVisible(true);
264 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); 264 context()->SetMemoryAllocation(suggest_have_backbuffer_no_);
265 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); 265 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count());
266 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); 266 EXPECT_FALSE(renderer_.IsBackbufferDiscarded());
267 } 267 }
268 268
269 // Test GLRenderer discardBackbuffer functionality: 269 // Test GLRenderer DiscardBackbuffer functionality:
270 // Suggest discarding framebuffer when one does not exist. 270 // Suggest discarding framebuffer when one does not exist.
271 // Expected: it does nothing. 271 // Expected: it does nothing.
272 TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) { 272 TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) {
273 renderer_.SetVisible(false); 273 renderer_.SetVisible(false);
274 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); 274 context()->SetMemoryAllocation(suggest_have_backbuffer_no_);
275 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); 275 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count());
276 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); 276 EXPECT_TRUE(renderer_.IsBackbufferDiscarded());
277 277
278 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); 278 context()->SetMemoryAllocation(suggest_have_backbuffer_no_);
279 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); 279 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count());
280 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); 280 EXPECT_TRUE(renderer_.IsBackbufferDiscarded());
281 } 281 }
282 282
283 // Test GLRenderer discardBackbuffer functionality: 283 // Test GLRenderer DiscardBackbuffer functionality:
284 // Begin drawing a frame while a framebuffer is discarded. 284 // Begin drawing a frame while a framebuffer is discarded.
285 // Expected: will recreate framebuffer. 285 // Expected: will recreate framebuffer.
286 TEST_F(GLRendererTest, DiscardedBackbufferIsRecreatedForScopeDuration) { 286 TEST_F(GLRendererTest, DiscardedBackbufferIsRecreatedForScopeDuration) {
287 renderer_.SetVisible(false); 287 renderer_.SetVisible(false);
288 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); 288 context()->SetMemoryAllocation(suggest_have_backbuffer_no_);
289 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); 289 EXPECT_TRUE(renderer_.IsBackbufferDiscarded());
290 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); 290 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count());
291 291
292 renderer_.SetVisible(true); 292 renderer_.SetVisible(true);
293 renderer_.DrawFrame(*mock_client_.render_passes_in_draw_order()); 293 renderer_.DrawFrame(*mock_client_.render_passes_in_draw_order());
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 scoped_ptr<ResourceProvider> resource_provider( 661 scoped_ptr<ResourceProvider> resource_provider(
662 ResourceProvider::Create(output_surface.get())); 662 ResourceProvider::Create(output_surface.get()));
663 FakeRendererGL renderer( 663 FakeRendererGL renderer(
664 &mock_client, output_surface.get(), resource_provider.get()); 664 &mock_client, output_surface.get(), resource_provider.get());
665 665
666 EXPECT_TRUE(renderer.Initialize()); 666 EXPECT_TRUE(renderer.Initialize());
667 667
668 bool last_call_was_set_visiblity = false; 668 bool last_call_was_set_visiblity = false;
669 // Ensure that the call to setVisibilityCHROMIUM is the last call issue to the 669 // Ensure that the call to setVisibilityCHROMIUM is the last call issue to the
670 // GPU process, after glFlush is called, and after the RendererClient's 670 // GPU process, after glFlush is called, and after the RendererClient's
671 // enforceManagedMemoryPolicy is called. Plumb this tracking between both the 671 // EnforceManagedMemoryPolicy is called. Plumb this tracking between both the
672 // RenderClient and the Context by giving them both a pointer to a variable on 672 // RenderClient and the Context by giving them both a pointer to a variable on
673 // the stack. 673 // the stack.
674 context->set_last_call_was_set_visibility_pointer(&last_call_was_set_visiblity ); 674 context->set_last_call_was_set_visibility_pointer(&last_call_was_set_visiblity );
675 mock_client.set_last_call_was_set_visibility_pointer(&last_call_was_set_visibl ity); 675 mock_client.set_last_call_was_set_visibility_pointer(&last_call_was_set_visibl ity);
676 renderer.SetVisible(true); 676 renderer.SetVisible(true);
677 renderer.DrawFrame(*mock_client.render_passes_in_draw_order()); 677 renderer.DrawFrame(*mock_client.render_passes_in_draw_order());
678 renderer.SetVisible(false); 678 renderer.SetVisible(false);
679 EXPECT_TRUE(last_call_was_set_visiblity); 679 EXPECT_TRUE(last_call_was_set_visiblity);
680 } 680 }
681 681
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 759
760 // The remaining quads also use GL_LINEAR because nearest neighbor 760 // The remaining quads also use GL_LINEAR because nearest neighbor
761 // filtering is currently only used with tile quads. 761 // filtering is currently only used with tile quads.
762 EXPECT_CALL(*context, drawElements(_, _, _, _)).Times(6); 762 EXPECT_CALL(*context, drawElements(_, _, _, _)).Times(6);
763 } 763 }
764 764
765 cc::DirectRenderer::DrawingFrame drawing_frame; 765 cc::DirectRenderer::DrawingFrame drawing_frame;
766 renderer.BeginDrawingFrame(drawing_frame); 766 renderer.BeginDrawingFrame(drawing_frame);
767 EXPECT_EQ(context->active_texture(), GL_TEXTURE0); 767 EXPECT_EQ(context->active_texture(), GL_TEXTURE0);
768 768
769 for (cc::QuadList::backToFrontIterator 769 for (cc::QuadList::BackToFrontIterator
770 it = pass->quad_list.backToFrontBegin(); 770 it = pass->quad_list.BackToFrontBegin();
771 it != pass->quad_list.backToFrontEnd(); 771 it != pass->quad_list.BackToFrontEnd();
772 ++it) { 772 ++it) {
773 renderer.DoDrawQuad(drawing_frame, *it); 773 renderer.DoDrawQuad(drawing_frame, *it);
774 } 774 }
775 renderer.FinishDrawingQuadList(); 775 renderer.FinishDrawingQuadList();
776 EXPECT_EQ(context->active_texture(), GL_TEXTURE0); 776 EXPECT_EQ(context->active_texture(), GL_TEXTURE0);
777 Mock::VerifyAndClearExpectations(context); 777 Mock::VerifyAndClearExpectations(context);
778 } 778 }
779 779
780 class NoClearRootRenderPassFakeClient : public FakeRendererClient { 780 class NoClearRootRenderPassFakeClient : public FakeRendererClient {
781 public: 781 public:
(...skipping 23 matching lines...) Expand all
805 FakeRendererGL renderer( 805 FakeRendererGL renderer(
806 &mock_client, output_surface.get(), resource_provider.get()); 806 &mock_client, output_surface.get(), resource_provider.get());
807 EXPECT_TRUE(renderer.Initialize()); 807 EXPECT_TRUE(renderer.Initialize());
808 808
809 gfx::Rect viewport_rect(mock_client.DeviceViewportSize()); 809 gfx::Rect viewport_rect(mock_client.DeviceViewportSize());
810 ScopedPtrVector<RenderPass>& render_passes = 810 ScopedPtrVector<RenderPass>& render_passes =
811 *mock_client.render_passes_in_draw_order(); 811 *mock_client.render_passes_in_draw_order();
812 render_passes.clear(); 812 render_passes.clear();
813 813
814 RenderPass::Id root_pass_id(1, 0); 814 RenderPass::Id root_pass_id(1, 0);
815 TestRenderPass* root_pass = addRenderPass( 815 TestRenderPass* root_pass = AddRenderPass(
816 render_passes, root_pass_id, viewport_rect, gfx::Transform()); 816 render_passes, root_pass_id, viewport_rect, gfx::Transform());
817 addQuad(root_pass, viewport_rect, SK_ColorGREEN); 817 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
818 818
819 RenderPass::Id child_pass_id(2, 0); 819 RenderPass::Id child_pass_id(2, 0);
820 TestRenderPass* child_pass = addRenderPass( 820 TestRenderPass* child_pass = AddRenderPass(
821 render_passes, child_pass_id, viewport_rect, gfx::Transform()); 821 render_passes, child_pass_id, viewport_rect, gfx::Transform());
822 addQuad(child_pass, viewport_rect, SK_ColorBLUE); 822 AddQuad(child_pass, viewport_rect, SK_ColorBLUE);
823 823
824 addRenderPassQuad(root_pass, child_pass); 824 AddRenderPassQuad(root_pass, child_pass);
825 825
826 // First render pass is not the root one, clearing should happen. 826 // First render pass is not the root one, clearing should happen.
827 EXPECT_CALL(*mock_context, clear(GL_COLOR_BUFFER_BIT)).Times(AtLeast(1)); 827 EXPECT_CALL(*mock_context, clear(GL_COLOR_BUFFER_BIT)).Times(AtLeast(1));
828 828
829 Expectation first_render_pass = 829 Expectation first_render_pass =
830 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)).Times(1); 830 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)).Times(1);
831 831
832 // The second render pass is the root one, clearing should be prevented. 832 // The second render pass is the root one, clearing should be prevented.
833 EXPECT_CALL(*mock_context, clear(GL_COLOR_BUFFER_BIT)).Times(0) 833 EXPECT_CALL(*mock_context, clear(GL_COLOR_BUFFER_BIT)).Times(0)
834 .After(first_render_pass); 834 .After(first_render_pass);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 EXPECT_TRUE(renderer.Initialize()); 877 EXPECT_TRUE(renderer.Initialize());
878 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 878 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
879 879
880 gfx::Rect viewport_rect(mock_client.DeviceViewportSize()); 880 gfx::Rect viewport_rect(mock_client.DeviceViewportSize());
881 ScopedPtrVector<RenderPass>& render_passes = 881 ScopedPtrVector<RenderPass>& render_passes =
882 *mock_client.render_passes_in_draw_order(); 882 *mock_client.render_passes_in_draw_order();
883 render_passes.clear(); 883 render_passes.clear();
884 884
885 gfx::Rect grand_child_rect(25, 25); 885 gfx::Rect grand_child_rect(25, 25);
886 RenderPass::Id grand_child_pass_id(3, 0); 886 RenderPass::Id grand_child_pass_id(3, 0);
887 TestRenderPass* grand_child_pass = addRenderPass( 887 TestRenderPass* grand_child_pass = AddRenderPass(
888 render_passes, grand_child_pass_id, grand_child_rect, gfx::Transform()); 888 render_passes, grand_child_pass_id, grand_child_rect, gfx::Transform());
889 addClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); 889 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW);
890 890
891 gfx::Rect child_rect(50, 50); 891 gfx::Rect child_rect(50, 50);
892 RenderPass::Id child_pass_id(2, 0); 892 RenderPass::Id child_pass_id(2, 0);
893 TestRenderPass* child_pass = 893 TestRenderPass* child_pass =
894 addRenderPass(render_passes, child_pass_id, child_rect, gfx::Transform()); 894 AddRenderPass(render_passes, child_pass_id, child_rect, gfx::Transform());
895 addQuad(child_pass, child_rect, SK_ColorBLUE); 895 AddQuad(child_pass, child_rect, SK_ColorBLUE);
896 896
897 RenderPass::Id root_pass_id(1, 0); 897 RenderPass::Id root_pass_id(1, 0);
898 TestRenderPass* root_pass = addRenderPass( 898 TestRenderPass* root_pass = AddRenderPass(
899 render_passes, root_pass_id, viewport_rect, gfx::Transform()); 899 render_passes, root_pass_id, viewport_rect, gfx::Transform());
900 addQuad(root_pass, viewport_rect, SK_ColorGREEN); 900 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
901 901
902 addRenderPassQuad(root_pass, child_pass); 902 AddRenderPassQuad(root_pass, child_pass);
903 addRenderPassQuad(child_pass, grand_child_pass); 903 AddRenderPassQuad(child_pass, grand_child_pass);
904 904
905 renderer.DecideRenderPassAllocationsForFrame( 905 renderer.DecideRenderPassAllocationsForFrame(
906 *mock_client.render_passes_in_draw_order()); 906 *mock_client.render_passes_in_draw_order());
907 renderer.DrawFrame(*mock_client.render_passes_in_draw_order()); 907 renderer.DrawFrame(*mock_client.render_passes_in_draw_order());
908 } 908 }
909 909
910 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { 910 class OutputSurfaceMockContext : public TestWebGraphicsContext3D {
911 public: 911 public:
912 // Specifically override methods even if they are unused (used in conjunction 912 // Specifically override methods even if they are unused (used in conjunction
913 // with StrictMock). We need to make sure that GLRenderer does not issue 913 // with StrictMock). We need to make sure that GLRenderer does not issue
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 virtual void SetUp() { EXPECT_TRUE(renderer_.Initialize()); } 957 virtual void SetUp() { EXPECT_TRUE(renderer_.Initialize()); }
958 958
959 void SwapBuffers() { renderer_.SwapBuffers(); } 959 void SwapBuffers() { renderer_.SwapBuffers(); }
960 960
961 void DrawFrame() { 961 void DrawFrame() {
962 gfx::Rect viewport_rect(DeviceViewportSize()); 962 gfx::Rect viewport_rect(DeviceViewportSize());
963 ScopedPtrVector<RenderPass>* render_passes = render_passes_in_draw_order(); 963 ScopedPtrVector<RenderPass>* render_passes = render_passes_in_draw_order();
964 render_passes->clear(); 964 render_passes->clear();
965 965
966 RenderPass::Id render_pass_id(1, 0); 966 RenderPass::Id render_pass_id(1, 0);
967 TestRenderPass* render_pass = addRenderPass( 967 TestRenderPass* render_pass = AddRenderPass(
968 *render_passes, render_pass_id, viewport_rect, gfx::Transform()); 968 *render_passes, render_pass_id, viewport_rect, gfx::Transform());
969 addQuad(render_pass, viewport_rect, SK_ColorGREEN); 969 AddQuad(render_pass, viewport_rect, SK_ColorGREEN);
970 970
971 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); 971 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return());
972 972
973 EXPECT_CALL(output_surface_, Reshape(_)).Times(1); 973 EXPECT_CALL(output_surface_, Reshape(_)).Times(1);
974 974
975 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); 975 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1);
976 976
977 EXPECT_CALL(*context(), drawElements(_, _, _, _)).Times(1); 977 EXPECT_CALL(*context(), drawElements(_, _, _, _)).Times(1);
978 978
979 renderer_.DecideRenderPassAllocationsForFrame(*render_passes_in_draw_order() ); 979 renderer_.DecideRenderPassAllocationsForFrame(*render_passes_in_draw_order() );
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 } 1022 }
1023 }; 1023 };
1024 1024
1025 TEST_F(MockOutputSurfaceTestWithSendCompositorFrame, DrawFrame) { 1025 TEST_F(MockOutputSurfaceTestWithSendCompositorFrame, DrawFrame) {
1026 EXPECT_CALL(output_surface_, SendFrameToParentCompositor(_)).Times(1); 1026 EXPECT_CALL(output_surface_, SendFrameToParentCompositor(_)).Times(1);
1027 DrawFrame(); 1027 DrawFrame();
1028 } 1028 }
1029 1029
1030 } // namespace 1030 } // namespace
1031 } // namespace cc 1031 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer_pixeltest.cc ('k') | cc/output/output_surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698