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

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

Issue 251343002: Remove offscreen compositor contexts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-offscreencontext: include Created 6 years, 8 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.cc ('k') | cc/output/output_surface.h » ('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 <set> 7 #include <set>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/output/compositor_frame_metadata.h" 10 #include "cc/output/compositor_frame_metadata.h"
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 EXPECT_TRUE(renderer_->IsBackbufferDiscarded()); 333 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
334 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count()); 334 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
335 335
336 AddRenderPass(&render_passes_in_draw_order_, 336 AddRenderPass(&render_passes_in_draw_order_,
337 RenderPass::Id(1, 0), 337 RenderPass::Id(1, 0),
338 viewport_rect, 338 viewport_rect,
339 gfx::Transform()); 339 gfx::Transform());
340 340
341 renderer_->SetVisible(true); 341 renderer_->SetVisible(true);
342 renderer_->DrawFrame(&render_passes_in_draw_order_, 342 renderer_->DrawFrame(&render_passes_in_draw_order_,
343 NULL,
344 1.f, 343 1.f,
345 viewport_rect, 344 viewport_rect,
346 viewport_rect, 345 viewport_rect,
347 false); 346 false);
348 EXPECT_FALSE(renderer_->IsBackbufferDiscarded()); 347 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
349 348
350 SwapBuffers(); 349 SwapBuffers();
351 EXPECT_EQ(1u, output_surface_->num_sent_frames()); 350 EXPECT_EQ(1u, output_surface_->num_sent_frames());
352 } 351 }
353 352
354 TEST_F(GLRendererWithDefaultHarnessTest, 353 TEST_F(GLRendererWithDefaultHarnessTest,
355 FramebufferDiscardedAfterReadbackWhenNotVisible) { 354 FramebufferDiscardedAfterReadbackWhenNotVisible) {
356 gfx::Rect viewport_rect(1, 1); 355 gfx::Rect viewport_rect(1, 1);
357 renderer_->SetVisible(false); 356 renderer_->SetVisible(false);
358 EXPECT_TRUE(renderer_->IsBackbufferDiscarded()); 357 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
359 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count()); 358 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
360 359
361 AddRenderPass(&render_passes_in_draw_order_, 360 AddRenderPass(&render_passes_in_draw_order_,
362 RenderPass::Id(1, 0), 361 RenderPass::Id(1, 0),
363 viewport_rect, 362 viewport_rect,
364 gfx::Transform()); 363 gfx::Transform());
365 364
366 char pixels[4]; 365 char pixels[4];
367 renderer_->DrawFrame(&render_passes_in_draw_order_, 366 renderer_->DrawFrame(&render_passes_in_draw_order_,
368 NULL,
369 1.f, 367 1.f,
370 viewport_rect, 368 viewport_rect,
371 viewport_rect, 369 viewport_rect,
372 false); 370 false);
373 EXPECT_FALSE(renderer_->IsBackbufferDiscarded()); 371 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
374 372
375 renderer_->GetFramebufferPixels(pixels, gfx::Rect(0, 0, 1, 1)); 373 renderer_->GetFramebufferPixels(pixels, gfx::Rect(0, 0, 1, 1));
376 EXPECT_TRUE(renderer_->IsBackbufferDiscarded()); 374 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
377 EXPECT_EQ(2, renderer_client_.set_full_root_layer_damage_count()); 375 EXPECT_EQ(2, renderer_client_.set_full_root_layer_damage_count());
378 } 376 }
379 377
380 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) { 378 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) {
381 gfx::Rect viewport_rect(1, 1); 379 gfx::Rect viewport_rect(1, 1);
382 EXPECT_FALSE(renderer_->stencil_enabled()); 380 EXPECT_FALSE(renderer_->stencil_enabled());
383 381
384 output_surface_->set_has_external_stencil_test(true); 382 output_surface_->set_has_external_stencil_test(true);
385 383
386 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 384 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
387 RenderPass::Id(1, 0), 385 RenderPass::Id(1, 0),
388 viewport_rect, 386 viewport_rect,
389 gfx::Transform()); 387 gfx::Transform());
390 root_pass->has_transparent_background = false; 388 root_pass->has_transparent_background = false;
391 389
392 renderer_->DrawFrame(&render_passes_in_draw_order_, 390 renderer_->DrawFrame(&render_passes_in_draw_order_,
393 NULL,
394 1.f, 391 1.f,
395 viewport_rect, 392 viewport_rect,
396 viewport_rect, 393 viewport_rect,
397 false); 394 false);
398 EXPECT_TRUE(renderer_->stencil_enabled()); 395 EXPECT_TRUE(renderer_->stencil_enabled());
399 } 396 }
400 397
401 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D { 398 class ForbidSynchronousCallContext : public TestWebGraphicsContext3D {
402 public: 399 public:
403 ForbidSynchronousCallContext() {} 400 ForbidSynchronousCallContext() {}
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 // easily see regions that were not drawn on the screen. 610 // easily see regions that were not drawn on the screen.
614 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) 611 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _))
615 .With(Args<2, 1>(ElementsAre(GL_COLOR_EXT))) 612 .With(Args<2, 1>(ElementsAre(GL_COLOR_EXT)))
616 .Times(1); 613 .Times(1);
617 #ifdef NDEBUG 614 #ifdef NDEBUG
618 EXPECT_CALL(*context, clear(_)).Times(0); 615 EXPECT_CALL(*context, clear(_)).Times(0);
619 #else 616 #else
620 EXPECT_CALL(*context, clear(_)).Times(1); 617 EXPECT_CALL(*context, clear(_)).Times(1);
621 #endif 618 #endif
622 renderer.DrawFrame(&render_passes_in_draw_order_, 619 renderer.DrawFrame(&render_passes_in_draw_order_,
623 NULL,
624 1.f, 620 1.f,
625 viewport_rect, 621 viewport_rect,
626 viewport_rect, 622 viewport_rect,
627 false); 623 false);
628 Mock::VerifyAndClearExpectations(context); 624 Mock::VerifyAndClearExpectations(context);
629 } 625 }
630 626
631 TEST_F(GLRendererTest, TransparentBackground) { 627 TEST_F(GLRendererTest, TransparentBackground) {
632 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 628 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
633 ClearCountingContext* context = context_owned.get(); 629 ClearCountingContext* context = context_owned.get();
(...skipping 18 matching lines...) Expand all
652 gfx::Rect viewport_rect(1, 1); 648 gfx::Rect viewport_rect(1, 1);
653 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 649 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
654 RenderPass::Id(1, 0), 650 RenderPass::Id(1, 0),
655 viewport_rect, 651 viewport_rect,
656 gfx::Transform()); 652 gfx::Transform());
657 root_pass->has_transparent_background = true; 653 root_pass->has_transparent_background = true;
658 654
659 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); 655 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1);
660 EXPECT_CALL(*context, clear(_)).Times(1); 656 EXPECT_CALL(*context, clear(_)).Times(1);
661 renderer.DrawFrame(&render_passes_in_draw_order_, 657 renderer.DrawFrame(&render_passes_in_draw_order_,
662 NULL,
663 1.f, 658 1.f,
664 viewport_rect, 659 viewport_rect,
665 viewport_rect, 660 viewport_rect,
666 false); 661 false);
667 662
668 Mock::VerifyAndClearExpectations(context); 663 Mock::VerifyAndClearExpectations(context);
669 } 664 }
670 665
671 TEST_F(GLRendererTest, OffscreenOutputSurface) { 666 TEST_F(GLRendererTest, OffscreenOutputSurface) {
672 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 667 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
(...skipping 20 matching lines...) Expand all
693 AddRenderPass(&render_passes_in_draw_order_, 688 AddRenderPass(&render_passes_in_draw_order_,
694 RenderPass::Id(1, 0), 689 RenderPass::Id(1, 0),
695 viewport_rect, 690 viewport_rect,
696 gfx::Transform()); 691 gfx::Transform());
697 692
698 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) 693 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _))
699 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0))) 694 .With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0)))
700 .Times(1); 695 .Times(1);
701 EXPECT_CALL(*context, clear(_)).Times(AnyNumber()); 696 EXPECT_CALL(*context, clear(_)).Times(AnyNumber());
702 renderer.DrawFrame(&render_passes_in_draw_order_, 697 renderer.DrawFrame(&render_passes_in_draw_order_,
703 NULL,
704 1.f, 698 1.f,
705 viewport_rect, 699 viewport_rect,
706 viewport_rect, 700 viewport_rect,
707 false); 701 false);
708 Mock::VerifyAndClearExpectations(context); 702 Mock::VerifyAndClearExpectations(context);
709 } 703 }
710 704
711 class VisibilityChangeIsLastCallTrackingContext 705 class VisibilityChangeIsLastCallTrackingContext
712 : public TestWebGraphicsContext3D { 706 : public TestWebGraphicsContext3D {
713 public: 707 public:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 viewport_rect, 771 viewport_rect,
778 gfx::Transform()); 772 gfx::Transform());
779 773
780 // Ensure that the call to SetSurfaceVisible is the last call issue to the 774 // Ensure that the call to SetSurfaceVisible is the last call issue to the
781 // GPU process, after glFlush is called, and after the RendererClient's 775 // GPU process, after glFlush is called, and after the RendererClient's
782 // SetManagedMemoryPolicy is called. Plumb this tracking between both the 776 // SetManagedMemoryPolicy is called. Plumb this tracking between both the
783 // RenderClient and the Context by giving them both a pointer to a variable on 777 // RenderClient and the Context by giving them both a pointer to a variable on
784 // the stack. 778 // the stack.
785 renderer.SetVisible(true); 779 renderer.SetVisible(true);
786 renderer.DrawFrame(&render_passes_in_draw_order_, 780 renderer.DrawFrame(&render_passes_in_draw_order_,
787 NULL,
788 1.f, 781 1.f,
789 viewport_rect, 782 viewport_rect,
790 viewport_rect, 783 viewport_rect,
791 false); 784 false);
792 renderer.SetVisible(false); 785 renderer.SetVisible(false);
793 EXPECT_TRUE(context->last_call_was_set_visibility()); 786 EXPECT_TRUE(context->last_call_was_set_visibility());
794 } 787 }
795 788
796 class TextureStateTrackingContext : public TestWebGraphicsContext3D { 789 class TextureStateTrackingContext : public TestWebGraphicsContext3D {
797 public: 790 public:
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 // scaled_tile_quad also uses GL_LINEAR. 865 // scaled_tile_quad also uses GL_LINEAR.
873 EXPECT_CALL(*context, drawElements(_, _, _, _)); 866 EXPECT_CALL(*context, drawElements(_, _, _, _));
874 867
875 // The remaining quads also use GL_LINEAR because nearest neighbor 868 // The remaining quads also use GL_LINEAR because nearest neighbor
876 // filtering is currently only used with tile quads. 869 // filtering is currently only used with tile quads.
877 EXPECT_CALL(*context, drawElements(_, _, _, _)).Times(6); 870 EXPECT_CALL(*context, drawElements(_, _, _, _)).Times(6);
878 } 871 }
879 872
880 gfx::Rect viewport_rect(100, 100); 873 gfx::Rect viewport_rect(100, 100);
881 renderer.DrawFrame(&render_passes_in_draw_order_, 874 renderer.DrawFrame(&render_passes_in_draw_order_,
882 NULL,
883 1.f, 875 1.f,
884 viewport_rect, 876 viewport_rect,
885 viewport_rect, 877 viewport_rect,
886 false); 878 false);
887 Mock::VerifyAndClearExpectations(context); 879 Mock::VerifyAndClearExpectations(context);
888 } 880 }
889 881
890 class NoClearRootRenderPassMockContext : public TestWebGraphicsContext3D { 882 class NoClearRootRenderPassMockContext : public TestWebGraphicsContext3D {
891 public: 883 public:
892 MOCK_METHOD1(clear, void(GLbitfield mask)); 884 MOCK_METHOD1(clear, void(GLbitfield mask));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 942
951 // The second render pass is the root one, clearing should be prevented. 943 // The second render pass is the root one, clearing should be prevented.
952 EXPECT_CALL(*mock_context, clear(clear_bits)).Times(0).After( 944 EXPECT_CALL(*mock_context, clear(clear_bits)).Times(0).After(
953 first_render_pass); 945 first_render_pass);
954 946
955 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)).Times(AnyNumber()).After( 947 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)).Times(AnyNumber()).After(
956 first_render_pass); 948 first_render_pass);
957 949
958 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 950 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
959 renderer.DrawFrame(&render_passes_in_draw_order_, 951 renderer.DrawFrame(&render_passes_in_draw_order_,
960 NULL,
961 1.f, 952 1.f,
962 viewport_rect, 953 viewport_rect,
963 viewport_rect, 954 viewport_rect,
964 false); 955 false);
965 956
966 // In multiple render passes all but the root pass should clear the 957 // In multiple render passes all but the root pass should clear the
967 // framebuffer. 958 // framebuffer.
968 Mock::VerifyAndClearExpectations(&mock_context); 959 Mock::VerifyAndClearExpectations(&mock_context);
969 } 960 }
970 961
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 root_pass_id, 1025 root_pass_id,
1035 viewport_rect, 1026 viewport_rect,
1036 gfx::Transform()); 1027 gfx::Transform());
1037 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1028 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1038 1029
1039 AddRenderPassQuad(root_pass, child_pass); 1030 AddRenderPassQuad(root_pass, child_pass);
1040 AddRenderPassQuad(child_pass, grand_child_pass); 1031 AddRenderPassQuad(child_pass, grand_child_pass);
1041 1032
1042 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1033 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1043 renderer.DrawFrame(&render_passes_in_draw_order_, 1034 renderer.DrawFrame(&render_passes_in_draw_order_,
1044 NULL,
1045 1.f, 1035 1.f,
1046 viewport_rect, 1036 viewport_rect,
1047 viewport_rect, 1037 viewport_rect,
1048 false); 1038 false);
1049 } 1039 }
1050 1040
1051 class DiscardCheckingContext : public TestWebGraphicsContext3D { 1041 class DiscardCheckingContext : public TestWebGraphicsContext3D {
1052 public: 1042 public:
1053 DiscardCheckingContext() : discarded_(0) { 1043 DiscardCheckingContext() : discarded_(0) {
1054 set_have_post_sub_buffer(true); 1044 set_have_post_sub_buffer(true);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 RenderPass::Id root_pass_id(1, 0); 1103 RenderPass::Id root_pass_id(1, 0);
1114 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1104 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1115 root_pass_id, 1105 root_pass_id,
1116 viewport_rect, 1106 viewport_rect,
1117 gfx::Transform()); 1107 gfx::Transform());
1118 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1108 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1119 root_pass->damage_rect = gfx::Rect(2, 2, 3, 3); 1109 root_pass->damage_rect = gfx::Rect(2, 2, 3, 3);
1120 1110
1121 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1111 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1122 renderer.DrawFrame(&render_passes_in_draw_order_, 1112 renderer.DrawFrame(&render_passes_in_draw_order_,
1123 NULL,
1124 1.f, 1113 1.f,
1125 viewport_rect, 1114 viewport_rect,
1126 clip_rect, 1115 clip_rect,
1127 false); 1116 false);
1128 EXPECT_EQ(0, context->discarded()); 1117 EXPECT_EQ(0, context->discarded());
1129 context->reset(); 1118 context->reset();
1130 } 1119 }
1131 { 1120 {
1132 // Full frame, should discard. 1121 // Full frame, should discard.
1133 RenderPass::Id root_pass_id(1, 0); 1122 RenderPass::Id root_pass_id(1, 0);
1134 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1123 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1135 root_pass_id, 1124 root_pass_id,
1136 viewport_rect, 1125 viewport_rect,
1137 gfx::Transform()); 1126 gfx::Transform());
1138 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1127 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1139 root_pass->damage_rect = root_pass->output_rect; 1128 root_pass->damage_rect = root_pass->output_rect;
1140 1129
1141 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1130 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1142 renderer.DrawFrame(&render_passes_in_draw_order_, 1131 renderer.DrawFrame(&render_passes_in_draw_order_,
1143 NULL,
1144 1.f, 1132 1.f,
1145 viewport_rect, 1133 viewport_rect,
1146 clip_rect, 1134 clip_rect,
1147 false); 1135 false);
1148 EXPECT_EQ(1, context->discarded()); 1136 EXPECT_EQ(1, context->discarded());
1149 context->reset(); 1137 context->reset();
1150 } 1138 }
1151 { 1139 {
1152 // Full frame, external scissor is set, should not discard. 1140 // Full frame, external scissor is set, should not discard.
1153 output_surface->set_has_external_stencil_test(true); 1141 output_surface->set_has_external_stencil_test(true);
1154 RenderPass::Id root_pass_id(1, 0); 1142 RenderPass::Id root_pass_id(1, 0);
1155 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1143 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1156 root_pass_id, 1144 root_pass_id,
1157 viewport_rect, 1145 viewport_rect,
1158 gfx::Transform()); 1146 gfx::Transform());
1159 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1147 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1160 root_pass->damage_rect = root_pass->output_rect; 1148 root_pass->damage_rect = root_pass->output_rect;
1161 root_pass->has_transparent_background = false; 1149 root_pass->has_transparent_background = false;
1162 1150
1163 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1151 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1164 renderer.DrawFrame(&render_passes_in_draw_order_, 1152 renderer.DrawFrame(&render_passes_in_draw_order_,
1165 NULL,
1166 1.f, 1153 1.f,
1167 viewport_rect, 1154 viewport_rect,
1168 clip_rect, 1155 clip_rect,
1169 false); 1156 false);
1170 EXPECT_EQ(0, context->discarded()); 1157 EXPECT_EQ(0, context->discarded());
1171 context->reset(); 1158 context->reset();
1172 output_surface->set_has_external_stencil_test(false); 1159 output_surface->set_has_external_stencil_test(false);
1173 } 1160 }
1174 { 1161 {
1175 // Full frame, clipped, should not discard. 1162 // Full frame, clipped, should not discard.
1176 clip_rect = gfx::Rect(10, 10, 10, 10); 1163 clip_rect = gfx::Rect(10, 10, 10, 10);
1177 RenderPass::Id root_pass_id(1, 0); 1164 RenderPass::Id root_pass_id(1, 0);
1178 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1165 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1179 root_pass_id, 1166 root_pass_id,
1180 viewport_rect, 1167 viewport_rect,
1181 gfx::Transform()); 1168 gfx::Transform());
1182 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1169 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1183 root_pass->damage_rect = root_pass->output_rect; 1170 root_pass->damage_rect = root_pass->output_rect;
1184 1171
1185 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1172 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1186 renderer.DrawFrame(&render_passes_in_draw_order_, 1173 renderer.DrawFrame(&render_passes_in_draw_order_,
1187 NULL,
1188 1.f, 1174 1.f,
1189 viewport_rect, 1175 viewport_rect,
1190 clip_rect, 1176 clip_rect,
1191 false); 1177 false);
1192 EXPECT_EQ(0, context->discarded()); 1178 EXPECT_EQ(0, context->discarded());
1193 context->reset(); 1179 context->reset();
1194 } 1180 }
1195 { 1181 {
1196 // Full frame, doesn't cover the surface, should not discard. 1182 // Full frame, doesn't cover the surface, should not discard.
1197 viewport_rect = gfx::Rect(10, 10, 10, 10); 1183 viewport_rect = gfx::Rect(10, 10, 10, 10);
1198 RenderPass::Id root_pass_id(1, 0); 1184 RenderPass::Id root_pass_id(1, 0);
1199 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1185 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1200 root_pass_id, 1186 root_pass_id,
1201 viewport_rect, 1187 viewport_rect,
1202 gfx::Transform()); 1188 gfx::Transform());
1203 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1189 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1204 root_pass->damage_rect = root_pass->output_rect; 1190 root_pass->damage_rect = root_pass->output_rect;
1205 1191
1206 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1192 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1207 renderer.DrawFrame(&render_passes_in_draw_order_, 1193 renderer.DrawFrame(&render_passes_in_draw_order_,
1208 NULL,
1209 1.f, 1194 1.f,
1210 viewport_rect, 1195 viewport_rect,
1211 clip_rect, 1196 clip_rect,
1212 false); 1197 false);
1213 EXPECT_EQ(0, context->discarded()); 1198 EXPECT_EQ(0, context->discarded());
1214 context->reset(); 1199 context->reset();
1215 } 1200 }
1216 { 1201 {
1217 // Full frame, doesn't cover the surface (no offset), should not discard. 1202 // Full frame, doesn't cover the surface (no offset), should not discard.
1218 clip_rect = gfx::Rect(100, 100); 1203 clip_rect = gfx::Rect(100, 100);
1219 viewport_rect = gfx::Rect(50, 50); 1204 viewport_rect = gfx::Rect(50, 50);
1220 RenderPass::Id root_pass_id(1, 0); 1205 RenderPass::Id root_pass_id(1, 0);
1221 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1206 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1222 root_pass_id, 1207 root_pass_id,
1223 viewport_rect, 1208 viewport_rect,
1224 gfx::Transform()); 1209 gfx::Transform());
1225 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); 1210 AddQuad(root_pass, viewport_rect, SK_ColorGREEN);
1226 root_pass->damage_rect = root_pass->output_rect; 1211 root_pass->damage_rect = root_pass->output_rect;
1227 1212
1228 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1213 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1229 renderer.DrawFrame(&render_passes_in_draw_order_, 1214 renderer.DrawFrame(&render_passes_in_draw_order_,
1230 NULL,
1231 1.f, 1215 1.f,
1232 viewport_rect, 1216 viewport_rect,
1233 clip_rect, 1217 clip_rect,
1234 false); 1218 false);
1235 EXPECT_EQ(0, context->discarded()); 1219 EXPECT_EQ(0, context->discarded());
1236 context->reset(); 1220 context->reset();
1237 } 1221 }
1238 } 1222 }
1239 1223
1240 class FlippedScissorAndViewportContext : public TestWebGraphicsContext3D { 1224 class FlippedScissorAndViewportContext : public TestWebGraphicsContext3D {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 1285
1302 RenderPass::Id root_pass_id(1, 0); 1286 RenderPass::Id root_pass_id(1, 0);
1303 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 1287 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
1304 root_pass_id, 1288 root_pass_id,
1305 viewport_rect, 1289 viewport_rect,
1306 gfx::Transform()); 1290 gfx::Transform());
1307 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN); 1291 AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN);
1308 1292
1309 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1293 renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1310 renderer.DrawFrame(&render_passes_in_draw_order_, 1294 renderer.DrawFrame(&render_passes_in_draw_order_,
1311 NULL,
1312 1.f, 1295 1.f,
1313 device_viewport_rect, 1296 device_viewport_rect,
1314 device_viewport_rect, 1297 device_viewport_rect,
1315 false); 1298 false);
1316 } 1299 }
1317 1300
1318 TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { 1301 TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) {
1319 gfx::Rect viewport_rect(1, 1); 1302 gfx::Rect viewport_rect(1, 1);
1320 1303
1321 gfx::Rect child_rect(50, 50); 1304 gfx::Rect child_rect(50, 50);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1350 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1368 root_pass_id, 1351 root_pass_id,
1369 viewport_rect, 1352 viewport_rect,
1370 gfx::Transform()); 1353 gfx::Transform());
1371 1354
1372 AddRenderPassQuad( 1355 AddRenderPassQuad(
1373 root_pass, child_pass, 0, FilterOperations(), gfx::Transform()); 1356 root_pass, child_pass, 0, FilterOperations(), gfx::Transform());
1374 1357
1375 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1358 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1376 renderer_->DrawFrame(&render_passes_in_draw_order_, 1359 renderer_->DrawFrame(&render_passes_in_draw_order_,
1377 NULL,
1378 1.f, 1360 1.f,
1379 viewport_rect, 1361 viewport_rect,
1380 viewport_rect, 1362 viewport_rect,
1381 false); 1363 false);
1382 TestRenderPassProgram(TexCoordPrecisionMedium); 1364 TestRenderPassProgram(TexCoordPrecisionMedium);
1383 1365
1384 // RenderPassColorMatrixProgram 1366 // RenderPassColorMatrixProgram
1385 render_passes_in_draw_order_.clear(); 1367 render_passes_in_draw_order_.clear();
1386 1368
1387 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1369 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1388 child_pass_id, 1370 child_pass_id,
1389 child_rect, 1371 child_rect,
1390 transform_causing_aa); 1372 transform_causing_aa);
1391 1373
1392 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1374 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1393 root_pass_id, 1375 root_pass_id,
1394 viewport_rect, 1376 viewport_rect,
1395 gfx::Transform()); 1377 gfx::Transform());
1396 1378
1397 AddRenderPassQuad(root_pass, child_pass, 0, filters, gfx::Transform()); 1379 AddRenderPassQuad(root_pass, child_pass, 0, filters, gfx::Transform());
1398 1380
1399 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1381 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1400 renderer_->DrawFrame(&render_passes_in_draw_order_, 1382 renderer_->DrawFrame(&render_passes_in_draw_order_,
1401 NULL,
1402 1.f, 1383 1.f,
1403 viewport_rect, 1384 viewport_rect,
1404 viewport_rect, 1385 viewport_rect,
1405 false); 1386 false);
1406 TestRenderPassColorMatrixProgram(TexCoordPrecisionMedium); 1387 TestRenderPassColorMatrixProgram(TexCoordPrecisionMedium);
1407 1388
1408 // RenderPassMaskProgram 1389 // RenderPassMaskProgram
1409 render_passes_in_draw_order_.clear(); 1390 render_passes_in_draw_order_.clear();
1410 1391
1411 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1392 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1412 child_pass_id, 1393 child_pass_id,
1413 child_rect, 1394 child_rect,
1414 gfx::Transform()); 1395 gfx::Transform());
1415 1396
1416 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1397 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1417 root_pass_id, 1398 root_pass_id,
1418 viewport_rect, 1399 viewport_rect,
1419 gfx::Transform()); 1400 gfx::Transform());
1420 1401
1421 AddRenderPassQuad( 1402 AddRenderPassQuad(
1422 root_pass, child_pass, mask, FilterOperations(), gfx::Transform()); 1403 root_pass, child_pass, mask, FilterOperations(), gfx::Transform());
1423 1404
1424 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1405 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1425 renderer_->DrawFrame(&render_passes_in_draw_order_, 1406 renderer_->DrawFrame(&render_passes_in_draw_order_,
1426 NULL,
1427 1.f, 1407 1.f,
1428 viewport_rect, 1408 viewport_rect,
1429 viewport_rect, 1409 viewport_rect,
1430 false); 1410 false);
1431 TestRenderPassMaskProgram(TexCoordPrecisionMedium); 1411 TestRenderPassMaskProgram(TexCoordPrecisionMedium);
1432 1412
1433 // RenderPassMaskColorMatrixProgram 1413 // RenderPassMaskColorMatrixProgram
1434 render_passes_in_draw_order_.clear(); 1414 render_passes_in_draw_order_.clear();
1435 1415
1436 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1416 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1437 child_pass_id, 1417 child_pass_id,
1438 child_rect, 1418 child_rect,
1439 gfx::Transform()); 1419 gfx::Transform());
1440 1420
1441 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1421 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1442 root_pass_id, 1422 root_pass_id,
1443 viewport_rect, 1423 viewport_rect,
1444 gfx::Transform()); 1424 gfx::Transform());
1445 1425
1446 AddRenderPassQuad(root_pass, child_pass, mask, filters, gfx::Transform()); 1426 AddRenderPassQuad(root_pass, child_pass, mask, filters, gfx::Transform());
1447 1427
1448 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1428 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1449 renderer_->DrawFrame(&render_passes_in_draw_order_, 1429 renderer_->DrawFrame(&render_passes_in_draw_order_,
1450 NULL,
1451 1.f, 1430 1.f,
1452 viewport_rect, 1431 viewport_rect,
1453 viewport_rect, 1432 viewport_rect,
1454 false); 1433 false);
1455 TestRenderPassMaskColorMatrixProgram(TexCoordPrecisionMedium); 1434 TestRenderPassMaskColorMatrixProgram(TexCoordPrecisionMedium);
1456 1435
1457 // RenderPassProgramAA 1436 // RenderPassProgramAA
1458 render_passes_in_draw_order_.clear(); 1437 render_passes_in_draw_order_.clear();
1459 1438
1460 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1439 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1461 child_pass_id, 1440 child_pass_id,
1462 child_rect, 1441 child_rect,
1463 transform_causing_aa); 1442 transform_causing_aa);
1464 1443
1465 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1444 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1466 root_pass_id, 1445 root_pass_id,
1467 viewport_rect, 1446 viewport_rect,
1468 gfx::Transform()); 1447 gfx::Transform());
1469 1448
1470 AddRenderPassQuad( 1449 AddRenderPassQuad(
1471 root_pass, child_pass, 0, FilterOperations(), transform_causing_aa); 1450 root_pass, child_pass, 0, FilterOperations(), transform_causing_aa);
1472 1451
1473 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1452 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1474 renderer_->DrawFrame(&render_passes_in_draw_order_, 1453 renderer_->DrawFrame(&render_passes_in_draw_order_,
1475 NULL,
1476 1.f, 1454 1.f,
1477 viewport_rect, 1455 viewport_rect,
1478 viewport_rect, 1456 viewport_rect,
1479 false); 1457 false);
1480 TestRenderPassProgramAA(TexCoordPrecisionMedium); 1458 TestRenderPassProgramAA(TexCoordPrecisionMedium);
1481 1459
1482 // RenderPassColorMatrixProgramAA 1460 // RenderPassColorMatrixProgramAA
1483 render_passes_in_draw_order_.clear(); 1461 render_passes_in_draw_order_.clear();
1484 1462
1485 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1463 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1486 child_pass_id, 1464 child_pass_id,
1487 child_rect, 1465 child_rect,
1488 transform_causing_aa); 1466 transform_causing_aa);
1489 1467
1490 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1468 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1491 root_pass_id, 1469 root_pass_id,
1492 viewport_rect, 1470 viewport_rect,
1493 gfx::Transform()); 1471 gfx::Transform());
1494 1472
1495 AddRenderPassQuad(root_pass, child_pass, 0, filters, transform_causing_aa); 1473 AddRenderPassQuad(root_pass, child_pass, 0, filters, transform_causing_aa);
1496 1474
1497 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1475 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1498 renderer_->DrawFrame(&render_passes_in_draw_order_, 1476 renderer_->DrawFrame(&render_passes_in_draw_order_,
1499 NULL,
1500 1.f, 1477 1.f,
1501 viewport_rect, 1478 viewport_rect,
1502 viewport_rect, 1479 viewport_rect,
1503 false); 1480 false);
1504 TestRenderPassColorMatrixProgramAA(TexCoordPrecisionMedium); 1481 TestRenderPassColorMatrixProgramAA(TexCoordPrecisionMedium);
1505 1482
1506 // RenderPassMaskProgramAA 1483 // RenderPassMaskProgramAA
1507 render_passes_in_draw_order_.clear(); 1484 render_passes_in_draw_order_.clear();
1508 1485
1509 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1486 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1510 child_pass_id, 1487 child_pass_id,
1511 child_rect, 1488 child_rect,
1512 transform_causing_aa); 1489 transform_causing_aa);
1513 1490
1514 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1491 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1515 root_pass_id, 1492 root_pass_id,
1516 viewport_rect, 1493 viewport_rect,
1517 gfx::Transform()); 1494 gfx::Transform());
1518 1495
1519 AddRenderPassQuad( 1496 AddRenderPassQuad(
1520 root_pass, child_pass, mask, FilterOperations(), transform_causing_aa); 1497 root_pass, child_pass, mask, FilterOperations(), transform_causing_aa);
1521 1498
1522 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1499 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1523 renderer_->DrawFrame(&render_passes_in_draw_order_, 1500 renderer_->DrawFrame(&render_passes_in_draw_order_,
1524 NULL,
1525 1.f, 1501 1.f,
1526 viewport_rect, 1502 viewport_rect,
1527 viewport_rect, 1503 viewport_rect,
1528 false); 1504 false);
1529 TestRenderPassMaskProgramAA(TexCoordPrecisionMedium); 1505 TestRenderPassMaskProgramAA(TexCoordPrecisionMedium);
1530 1506
1531 // RenderPassMaskColorMatrixProgramAA 1507 // RenderPassMaskColorMatrixProgramAA
1532 render_passes_in_draw_order_.clear(); 1508 render_passes_in_draw_order_.clear();
1533 1509
1534 child_pass = AddRenderPass(&render_passes_in_draw_order_, 1510 child_pass = AddRenderPass(&render_passes_in_draw_order_,
1535 child_pass_id, 1511 child_pass_id,
1536 child_rect, 1512 child_rect,
1537 transform_causing_aa); 1513 transform_causing_aa);
1538 1514
1539 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1515 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1540 root_pass_id, 1516 root_pass_id,
1541 viewport_rect, 1517 viewport_rect,
1542 transform_causing_aa); 1518 transform_causing_aa);
1543 1519
1544 AddRenderPassQuad(root_pass, child_pass, mask, filters, transform_causing_aa); 1520 AddRenderPassQuad(root_pass, child_pass, mask, filters, transform_causing_aa);
1545 1521
1546 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1522 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1547 renderer_->DrawFrame(&render_passes_in_draw_order_, 1523 renderer_->DrawFrame(&render_passes_in_draw_order_,
1548 NULL,
1549 1.f, 1524 1.f,
1550 viewport_rect, 1525 viewport_rect,
1551 viewport_rect, 1526 viewport_rect,
1552 false); 1527 false);
1553 TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecisionMedium); 1528 TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecisionMedium);
1554 } 1529 }
1555 1530
1556 // At this time, the AA code path cannot be taken if the surface's rect would 1531 // At this time, the AA code path cannot be taken if the surface's rect would
1557 // project incorrectly by the given transform, because of w<0 clipping. 1532 // project incorrectly by the given transform, because of w<0 clipping.
1558 TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) { 1533 TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) {
(...skipping 24 matching lines...) Expand all
1583 root_pass = AddRenderPass(&render_passes_in_draw_order_, 1558 root_pass = AddRenderPass(&render_passes_in_draw_order_,
1584 root_pass_id, 1559 root_pass_id,
1585 viewport_rect, 1560 viewport_rect,
1586 gfx::Transform()); 1561 gfx::Transform());
1587 1562
1588 AddRenderPassQuad( 1563 AddRenderPassQuad(
1589 root_pass, child_pass, 0, FilterOperations(), transform_preventing_aa); 1564 root_pass, child_pass, 0, FilterOperations(), transform_preventing_aa);
1590 1565
1591 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1566 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1592 renderer_->DrawFrame(&render_passes_in_draw_order_, 1567 renderer_->DrawFrame(&render_passes_in_draw_order_,
1593 NULL,
1594 1.f, 1568 1.f,
1595 viewport_rect, 1569 viewport_rect,
1596 viewport_rect, 1570 viewport_rect,
1597 false); 1571 false);
1598 1572
1599 // If use_aa incorrectly ignores clipping, it will use the 1573 // If use_aa incorrectly ignores clipping, it will use the
1600 // RenderPassProgramAA shader instead of the RenderPassProgram. 1574 // RenderPassProgramAA shader instead of the RenderPassProgram.
1601 TestRenderPassProgram(TexCoordPrecisionMedium); 1575 TestRenderPassProgram(TexCoordPrecisionMedium);
1602 } 1576 }
1603 1577
(...skipping 10 matching lines...) Expand all
1614 root_pass_id, 1588 root_pass_id,
1615 viewport_rect, 1589 viewport_rect,
1616 gfx::Transform()); 1590 gfx::Transform());
1617 AddTransformedQuad(root_pass, 1591 AddTransformedQuad(root_pass,
1618 viewport_rect, 1592 viewport_rect,
1619 SK_ColorYELLOW, 1593 SK_ColorYELLOW,
1620 pixel_aligned_transform_causing_aa); 1594 pixel_aligned_transform_causing_aa);
1621 1595
1622 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); 1596 renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
1623 renderer_->DrawFrame(&render_passes_in_draw_order_, 1597 renderer_->DrawFrame(&render_passes_in_draw_order_,
1624 NULL,
1625 1.f, 1598 1.f,
1626 viewport_rect, 1599 viewport_rect,
1627 viewport_rect, 1600 viewport_rect,
1628 false); 1601 false);
1629 1602
1630 TestSolidColorProgramAA(); 1603 TestSolidColorProgramAA();
1631 } 1604 }
1632 1605
1633 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { 1606 class OutputSurfaceMockContext : public TestWebGraphicsContext3D {
1634 public: 1607 public:
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1696 Reshape(device_viewport_rect.size(), device_scale_factor)) 1669 Reshape(device_viewport_rect.size(), device_scale_factor))
1697 .Times(1); 1670 .Times(1);
1698 1671
1699 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); 1672 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1);
1700 1673
1701 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1); 1674 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1);
1702 1675
1703 renderer_->DecideRenderPassAllocationsForFrame( 1676 renderer_->DecideRenderPassAllocationsForFrame(
1704 render_passes_in_draw_order_); 1677 render_passes_in_draw_order_);
1705 renderer_->DrawFrame(&render_passes_in_draw_order_, 1678 renderer_->DrawFrame(&render_passes_in_draw_order_,
1706 NULL,
1707 device_scale_factor, 1679 device_scale_factor,
1708 device_viewport_rect, 1680 device_viewport_rect,
1709 device_viewport_rect, 1681 device_viewport_rect,
1710 false); 1682 false);
1711 } 1683 }
1712 1684
1713 OutputSurfaceMockContext* Context() { 1685 OutputSurfaceMockContext* Context() {
1714 return static_cast<OutputSurfaceMockContext*>( 1686 return static_cast<OutputSurfaceMockContext*>(
1715 static_cast<TestContextProvider*>( 1687 static_cast<TestContextProvider*>(
1716 output_surface_.context_provider().get())->TestContext3d()); 1688 output_surface_.context_provider().get())->TestContext3d());
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 base::MessageLoop::current()->Run(); 1799 base::MessageLoop::current()->Run();
1828 1800
1829 // The sync point should have happened. 1801 // The sync point should have happened.
1830 EXPECT_EQ(1, sync_point_callback_count); 1802 EXPECT_EQ(1, sync_point_callback_count);
1831 EXPECT_EQ(1, other_callback_count); 1803 EXPECT_EQ(1, other_callback_count);
1832 } 1804 }
1833 #endif // OS_ANDROID 1805 #endif // OS_ANDROID
1834 1806
1835 } // namespace 1807 } // namespace
1836 } // namespace cc 1808 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698