| OLD | NEW |
| 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/resources/prioritized_resource_manager.h" | 8 #include "cc/resources/prioritized_resource_manager.h" |
| 9 #include "cc/resources/resource_provider.h" | 9 #include "cc/resources/resource_provider.h" |
| 10 #include "cc/test/fake_impl_proxy.h" | 10 #include "cc/test/fake_impl_proxy.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 EXPECT_PROGRAM_VALID(renderer_->GetTileProgram()); | 62 EXPECT_PROGRAM_VALID(renderer_->GetTileProgram()); |
| 63 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramOpaque()); | 63 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramOpaque()); |
| 64 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramAA()); | 64 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramAA()); |
| 65 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzle()); | 65 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzle()); |
| 66 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzleOpaque()); | 66 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzleOpaque()); |
| 67 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzleAA()); | 67 EXPECT_PROGRAM_VALID(renderer_->GetTileProgramSwizzleAA()); |
| 68 EXPECT_PROGRAM_VALID(renderer_->GetTileCheckerboardProgram()); | 68 EXPECT_PROGRAM_VALID(renderer_->GetTileCheckerboardProgram()); |
| 69 EXPECT_PROGRAM_VALID(renderer_->GetDebugBorderProgram()); | 69 EXPECT_PROGRAM_VALID(renderer_->GetDebugBorderProgram()); |
| 70 EXPECT_PROGRAM_VALID(renderer_->GetSolidColorProgram()); | 70 EXPECT_PROGRAM_VALID(renderer_->GetSolidColorProgram()); |
| 71 EXPECT_PROGRAM_VALID(renderer_->GetSolidColorProgramAA()); | 71 EXPECT_PROGRAM_VALID(renderer_->GetSolidColorProgramAA()); |
| 72 //TestShadersWithTexCoordPrecision(TexCoordPrecisionMedium); | 72 // TestShadersWithTexCoordPrecision(TexCoordPrecisionMedium); |
| 73 TestShadersWithTexCoordPrecision(TexCoordPrecisionHigh); | 73 TestShadersWithTexCoordPrecision(TexCoordPrecisionHigh); |
| 74 ASSERT_FALSE(renderer_->IsContextLost()); | 74 ASSERT_FALSE(renderer_->IsContextLost()); |
| 75 } | 75 } |
| 76 | 76 |
| 77 void TestShadersWithTexCoordPrecision(TexCoordPrecision precision) { | 77 void TestShadersWithTexCoordPrecision(TexCoordPrecision precision) { |
| 78 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassProgram(precision)); | 78 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassProgram(precision)); |
| 79 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassProgramAA(precision)); | 79 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassProgramAA(precision)); |
| 80 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassMaskProgram(precision)); | 80 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassMaskProgram(precision)); |
| 81 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassMaskProgramAA(precision)); | 81 EXPECT_PROGRAM_VALID(renderer_->GetRenderPassMaskProgramAA(precision)); |
| 82 EXPECT_PROGRAM_VALID( | 82 EXPECT_PROGRAM_VALID( |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 new FrameCountingMemoryAllocationSettingContext()))), | 243 new FrameCountingMemoryAllocationSettingContext()))), |
| 244 resource_provider_(ResourceProvider::Create(output_surface_.get(), 0)), | 244 resource_provider_(ResourceProvider::Create(output_surface_.get(), 0)), |
| 245 renderer_(&mock_client_, | 245 renderer_(&mock_client_, |
| 246 output_surface_.get(), | 246 output_surface_.get(), |
| 247 resource_provider_.get()) {} | 247 resource_provider_.get()) {} |
| 248 | 248 |
| 249 virtual void SetUp() { renderer_.Initialize(); } | 249 virtual void SetUp() { renderer_.Initialize(); } |
| 250 | 250 |
| 251 void SwapBuffers() { renderer_.SwapBuffers(); } | 251 void SwapBuffers() { renderer_.SwapBuffers(); } |
| 252 | 252 |
| 253 FrameCountingMemoryAllocationSettingContext* context() { | 253 FrameCountingMemoryAllocationSettingContext* Context() { |
| 254 return static_cast<FrameCountingMemoryAllocationSettingContext*>( | 254 return static_cast<FrameCountingMemoryAllocationSettingContext*>( |
| 255 output_surface_->context3d()); | 255 output_surface_->context3d()); |
| 256 } | 256 } |
| 257 | 257 |
| 258 WebGraphicsMemoryAllocation suggest_have_backbuffer_yes_; | 258 WebGraphicsMemoryAllocation suggest_have_backbuffer_yes_; |
| 259 WebGraphicsMemoryAllocation suggest_have_backbuffer_no_; | 259 WebGraphicsMemoryAllocation suggest_have_backbuffer_no_; |
| 260 | 260 |
| 261 scoped_ptr<OutputSurface> output_surface_; | 261 scoped_ptr<OutputSurface> output_surface_; |
| 262 FakeRendererClient mock_client_; | 262 FakeRendererClient mock_client_; |
| 263 scoped_ptr<ResourceProvider> resource_provider_; | 263 scoped_ptr<ResourceProvider> resource_provider_; |
| 264 FakeRendererGL renderer_; | 264 FakeRendererGL renderer_; |
| 265 }; | 265 }; |
| 266 | 266 |
| 267 // Closing the namespace here so that GLRendererShaderTest can take advantage | 267 // Closing the namespace here so that GLRendererShaderTest can take advantage |
| 268 // of the friend relationship with GLRenderer and all of the mock classes | 268 // of the friend relationship with GLRenderer and all of the mock classes |
| 269 // declared above it. | 269 // declared above it. |
| 270 } // namespace | 270 } // namespace |
| 271 | 271 |
| 272 class GLRendererShaderTest : public testing::Test { | 272 class GLRendererShaderTest : public testing::Test { |
| 273 protected: | 273 protected: |
| 274 GLRendererShaderTest() | 274 GLRendererShaderTest() |
| 275 : output_surface_(FakeOutputSurface::Create3d()), | 275 : output_surface_(FakeOutputSurface::Create3d()), |
| 276 resource_provider_(ResourceProvider::Create(output_surface_.get(), 0)), | 276 resource_provider_(ResourceProvider::Create(output_surface_.get(), 0)), |
| 277 renderer_(GLRenderer::Create(&mock_client_, output_surface_.get(), | 277 renderer_(GLRenderer::Create(&mock_client_, |
| 278 resource_provider_.get(), 0)) { | 278 output_surface_.get(), |
| 279 } | 279 resource_provider_.get(), |
| 280 0)) {} |
| 280 | 281 |
| 281 void TestRenderPassProgram() { | 282 void TestRenderPassProgram() { |
| 282 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_); | 283 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_); |
| 283 EXPECT_TRUE(renderer_->program_shadow_ == | 284 EXPECT_TRUE(renderer_->program_shadow_ == |
| 284 renderer_->render_pass_program_->program()); | 285 renderer_->render_pass_program_->program()); |
| 285 } | 286 } |
| 286 | 287 |
| 287 void TestRenderPassColorMatrixProgram() { | 288 void TestRenderPassColorMatrixProgram() { |
| 288 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_); | 289 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_); |
| 289 EXPECT_TRUE(renderer_->program_shadow_ == | 290 EXPECT_TRUE(renderer_->program_shadow_ == |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 scoped_ptr<ResourceProvider> resource_provider_; | 332 scoped_ptr<ResourceProvider> resource_provider_; |
| 332 scoped_ptr<GLRenderer> renderer_; | 333 scoped_ptr<GLRenderer> renderer_; |
| 333 }; | 334 }; |
| 334 | 335 |
| 335 namespace { | 336 namespace { |
| 336 | 337 |
| 337 // Test GLRenderer discardBackbuffer functionality: | 338 // Test GLRenderer discardBackbuffer functionality: |
| 338 // Suggest recreating framebuffer when one already exists. | 339 // Suggest recreating framebuffer when one already exists. |
| 339 // Expected: it does nothing. | 340 // Expected: it does nothing. |
| 340 TEST_F(GLRendererTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing) { | 341 TEST_F(GLRendererTest, SuggestBackbufferYesWhenItAlreadyExistsShouldDoNothing) { |
| 341 context()->SetMemoryAllocation(suggest_have_backbuffer_yes_); | 342 Context()->SetMemoryAllocation(suggest_have_backbuffer_yes_); |
| 342 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); | 343 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); |
| 343 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); | 344 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); |
| 344 | 345 |
| 345 SwapBuffers(); | 346 SwapBuffers(); |
| 346 EXPECT_EQ(1, context()->frame_count()); | 347 EXPECT_EQ(1, Context()->frame_count()); |
| 347 } | 348 } |
| 348 | 349 |
| 349 // Test GLRenderer DiscardBackbuffer functionality: | 350 // Test GLRenderer DiscardBackbuffer functionality: |
| 350 // Suggest discarding framebuffer when one exists and the renderer is not | 351 // Suggest discarding framebuffer when one exists and the renderer is not |
| 351 // visible. | 352 // visible. |
| 352 // Expected: it is discarded and damage tracker is reset. | 353 // Expected: it is discarded and damage tracker is reset. |
| 353 TEST_F( | 354 TEST_F( |
| 354 GLRendererTest, | 355 GLRendererTest, |
| 355 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerIfNotVisible) { | 356 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerIfNotVisible) { |
| 356 renderer_.SetVisible(false); | 357 renderer_.SetVisible(false); |
| 357 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 358 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 358 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); | 359 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); |
| 359 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 360 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 360 } | 361 } |
| 361 | 362 |
| 362 // Test GLRenderer DiscardBackbuffer functionality: | 363 // Test GLRenderer DiscardBackbuffer functionality: |
| 363 // Suggest discarding framebuffer when one exists and the renderer is visible. | 364 // Suggest discarding framebuffer when one exists and the renderer is visible. |
| 364 // Expected: the allocation is ignored. | 365 // Expected: the allocation is ignored. |
| 365 TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible) { | 366 TEST_F(GLRendererTest, SuggestBackbufferNoDoNothingWhenVisible) { |
| 366 renderer_.SetVisible(true); | 367 renderer_.SetVisible(true); |
| 367 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 368 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 368 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); | 369 EXPECT_EQ(0, mock_client_.set_full_root_layer_damage_count()); |
| 369 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); | 370 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); |
| 370 } | 371 } |
| 371 | 372 |
| 372 // Test GLRenderer DiscardBackbuffer functionality: | 373 // Test GLRenderer DiscardBackbuffer functionality: |
| 373 // Suggest discarding framebuffer when one does not exist. | 374 // Suggest discarding framebuffer when one does not exist. |
| 374 // Expected: it does nothing. | 375 // Expected: it does nothing. |
| 375 TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) { | 376 TEST_F(GLRendererTest, SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) { |
| 376 renderer_.SetVisible(false); | 377 renderer_.SetVisible(false); |
| 377 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 378 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 378 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); | 379 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); |
| 379 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 380 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 380 | 381 |
| 381 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 382 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 382 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); | 383 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); |
| 383 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 384 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 384 } | 385 } |
| 385 | 386 |
| 386 // Test GLRenderer DiscardBackbuffer functionality: | 387 // Test GLRenderer DiscardBackbuffer functionality: |
| 387 // Begin drawing a frame while a framebuffer is discarded. | 388 // Begin drawing a frame while a framebuffer is discarded. |
| 388 // Expected: will recreate framebuffer. | 389 // Expected: will recreate framebuffer. |
| 389 TEST_F(GLRendererTest, DiscardedBackbufferIsRecreatedForScopeDuration) { | 390 TEST_F(GLRendererTest, DiscardedBackbufferIsRecreatedForScopeDuration) { |
| 390 renderer_.SetVisible(false); | 391 renderer_.SetVisible(false); |
| 391 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 392 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 392 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 393 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 393 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); | 394 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); |
| 394 | 395 |
| 395 renderer_.SetVisible(true); | 396 renderer_.SetVisible(true); |
| 396 renderer_.DrawFrame(mock_client_.render_passes_in_draw_order()); | 397 renderer_.DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 397 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); | 398 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); |
| 398 | 399 |
| 399 SwapBuffers(); | 400 SwapBuffers(); |
| 400 EXPECT_EQ(1, context()->frame_count()); | 401 EXPECT_EQ(1, Context()->frame_count()); |
| 401 } | 402 } |
| 402 | 403 |
| 403 TEST_F(GLRendererTest, FramebufferDiscardedAfterReadbackWhenNotVisible) { | 404 TEST_F(GLRendererTest, FramebufferDiscardedAfterReadbackWhenNotVisible) { |
| 404 renderer_.SetVisible(false); | 405 renderer_.SetVisible(false); |
| 405 context()->SetMemoryAllocation(suggest_have_backbuffer_no_); | 406 Context()->SetMemoryAllocation(suggest_have_backbuffer_no_); |
| 406 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 407 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 407 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); | 408 EXPECT_EQ(1, mock_client_.set_full_root_layer_damage_count()); |
| 408 | 409 |
| 409 char pixels[4]; | 410 char pixels[4]; |
| 410 renderer_.DrawFrame(mock_client_.render_passes_in_draw_order()); | 411 renderer_.DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 411 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); | 412 EXPECT_FALSE(renderer_.IsBackbufferDiscarded()); |
| 412 | 413 |
| 413 renderer_.GetFramebufferPixels(pixels, gfx::Rect(0, 0, 1, 1)); | 414 renderer_.GetFramebufferPixels(pixels, gfx::Rect(0, 0, 1, 1)); |
| 414 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); | 415 EXPECT_TRUE(renderer_.IsBackbufferDiscarded()); |
| 415 EXPECT_EQ(2, mock_client_.set_full_root_layer_damage_count()); | 416 EXPECT_EQ(2, mock_client_.set_full_root_layer_damage_count()); |
| (...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 | 1011 |
| 1011 AddRenderPassQuad(root_pass, child_pass); | 1012 AddRenderPassQuad(root_pass, child_pass); |
| 1012 AddRenderPassQuad(child_pass, grand_child_pass); | 1013 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1013 | 1014 |
| 1014 renderer.DecideRenderPassAllocationsForFrame( | 1015 renderer.DecideRenderPassAllocationsForFrame( |
| 1015 *mock_client.render_passes_in_draw_order()); | 1016 *mock_client.render_passes_in_draw_order()); |
| 1016 renderer.DrawFrame(mock_client.render_passes_in_draw_order()); | 1017 renderer.DrawFrame(mock_client.render_passes_in_draw_order()); |
| 1017 } | 1018 } |
| 1018 | 1019 |
| 1019 TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { | 1020 TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
| 1020 gfx::Rect viewportRect(mock_client_.DeviceViewportSize()); | 1021 gfx::Rect viewport_rect(mock_client_.DeviceViewportSize()); |
| 1021 ScopedPtrVector<RenderPass>* renderPasses = | 1022 ScopedPtrVector<RenderPass>* render_passes = |
| 1022 mock_client_.render_passes_in_draw_order(); | 1023 mock_client_.render_passes_in_draw_order(); |
| 1023 | 1024 |
| 1024 gfx::Rect grandChildRect(25, 25); | 1025 gfx::Rect grand_child_rect(25, 25); |
| 1025 RenderPass::Id grandChildPassId(3, 0); | 1026 RenderPass::Id grand_child_pass_id(3, 0); |
| 1026 TestRenderPass* grandChildPass; | 1027 TestRenderPass* grand_child_pass; |
| 1027 | 1028 |
| 1028 gfx::Rect childRect(50, 50); | 1029 gfx::Rect child_rect(50, 50); |
| 1029 RenderPass::Id childPassId(2, 0); | 1030 RenderPass::Id child_pass_id(2, 0); |
| 1030 TestRenderPass* childPass; | 1031 TestRenderPass* child_pass; |
| 1031 | 1032 |
| 1032 RenderPass::Id rootPassId(1, 0); | 1033 RenderPass::Id root_pass_id(1, 0); |
| 1033 TestRenderPass* rootPass; | 1034 TestRenderPass* root_pass; |
| 1034 | 1035 |
| 1035 cc::ResourceProvider::ResourceId mask = | 1036 cc::ResourceProvider::ResourceId mask = |
| 1036 resource_provider_->CreateResource(gfx::Size(20, 12), | 1037 resource_provider_->CreateResource(gfx::Size(20, 12), |
| 1037 resource_provider_->best_texture_format(), | 1038 resource_provider_->best_texture_format(), |
| 1038 ResourceProvider::TextureUsageAny); | 1039 ResourceProvider::TextureUsageAny); |
| 1039 resource_provider_->AllocateForTesting(mask); | 1040 resource_provider_->AllocateForTesting(mask); |
| 1040 | 1041 |
| 1041 SkScalar matrix[20]; | 1042 SkScalar matrix[20]; |
| 1042 float amount = 0.5f; | 1043 float amount = 0.5f; |
| 1043 matrix[0] = 0.213f + 0.787f * amount; | 1044 matrix[0] = 0.213f + 0.787f * amount; |
| 1044 matrix[1] = 0.715f - 0.715f * amount; | 1045 matrix[1] = 0.715f - 0.715f * amount; |
| 1045 matrix[2] = 1.f - (matrix[0] + matrix[1]); | 1046 matrix[2] = 1.f - (matrix[0] + matrix[1]); |
| 1046 matrix[3] = matrix[4] = 0; | 1047 matrix[3] = matrix[4] = 0; |
| 1047 matrix[5] = 0.213f - 0.213f * amount; | 1048 matrix[5] = 0.213f - 0.213f * amount; |
| 1048 matrix[6] = 0.715f + 0.285f * amount; | 1049 matrix[6] = 0.715f + 0.285f * amount; |
| 1049 matrix[7] = 1.f - (matrix[5] + matrix[6]); | 1050 matrix[7] = 1.f - (matrix[5] + matrix[6]); |
| 1050 matrix[8] = matrix[9] = 0; | 1051 matrix[8] = matrix[9] = 0; |
| 1051 matrix[10] = 0.213f - 0.213f * amount; | 1052 matrix[10] = 0.213f - 0.213f * amount; |
| 1052 matrix[11] = 0.715f - 0.715f * amount; | 1053 matrix[11] = 0.715f - 0.715f * amount; |
| 1053 matrix[12] = 1.f - (matrix[10] + matrix[11]); | 1054 matrix[12] = 1.f - (matrix[10] + matrix[11]); |
| 1054 matrix[13] = matrix[14] = 0; | 1055 matrix[13] = matrix[14] = 0; |
| 1055 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; | 1056 matrix[15] = matrix[16] = matrix[17] = matrix[19] = 0; |
| 1056 matrix[18] = 1; | 1057 matrix[18] = 1; |
| 1057 skia::RefPtr<SkColorFilter> colorFilter(skia::AdoptRef( | 1058 skia::RefPtr<SkColorFilter> color_filter( |
| 1058 new SkColorMatrixFilter(matrix))); | 1059 skia::AdoptRef(new SkColorMatrixFilter(matrix))); |
| 1059 skia::RefPtr<SkImageFilter> filter = | 1060 skia::RefPtr<SkImageFilter> filter = skia::AdoptRef( |
| 1060 skia::AdoptRef(SkColorFilterImageFilter::Create(colorFilter.get(), NULL)); | 1061 SkColorFilterImageFilter::Create(color_filter.get(), NULL)); |
| 1061 | 1062 |
| 1062 gfx::Transform transform_causing_aa; | 1063 gfx::Transform transform_causing_aa; |
| 1063 transform_causing_aa.Rotate(20.0); | 1064 transform_causing_aa.Rotate(20.0); |
| 1064 | 1065 |
| 1065 // RenderPassProgram | 1066 // RenderPassProgram |
| 1066 renderPasses->clear(); | 1067 render_passes->clear(); |
| 1067 | 1068 |
| 1068 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1069 grand_child_pass = AddRenderPass( |
| 1069 gfx::Transform()); | 1070 render_passes, grand_child_pass_id, grand_child_rect, gfx::Transform()); |
| 1070 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1071 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1071 | 1072 |
| 1072 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1073 child_pass = AddRenderPass( |
| 1073 gfx::Transform()); | 1074 render_passes, child_pass_id, child_rect, gfx::Transform()); |
| 1074 AddQuad(childPass, childRect, SK_ColorBLUE); | 1075 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1075 | 1076 |
| 1076 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1077 root_pass = AddRenderPass( |
| 1077 gfx::Transform()); | 1078 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1078 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1079 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1079 | 1080 |
| 1080 AddRenderPassQuad(rootPass, childPass, 0, skia::RefPtr<SkImageFilter>(), | 1081 AddRenderPassQuad(root_pass, |
| 1081 gfx::Transform()); | 1082 child_pass, |
| 1082 AddRenderPassQuad(childPass, grandChildPass); | 1083 0, |
| 1084 skia::RefPtr<SkImageFilter>(), |
| 1085 gfx::Transform()); |
| 1086 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1083 | 1087 |
| 1084 renderer_->DecideRenderPassAllocationsForFrame( | 1088 renderer_->DecideRenderPassAllocationsForFrame( |
| 1085 *mock_client_.render_passes_in_draw_order()); | 1089 *mock_client_.render_passes_in_draw_order()); |
| 1086 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1090 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1087 TestRenderPassProgram(); | 1091 TestRenderPassProgram(); |
| 1088 | 1092 |
| 1089 // RenderPassColorMatrixProgram | 1093 // RenderPassColorMatrixProgram |
| 1090 renderPasses->clear(); | 1094 render_passes->clear(); |
| 1091 | 1095 |
| 1092 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1096 grand_child_pass = AddRenderPass(render_passes, |
| 1093 transform_causing_aa); | 1097 grand_child_pass_id, |
| 1094 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1098 grand_child_rect, |
| 1099 transform_causing_aa); |
| 1100 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1095 | 1101 |
| 1096 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1102 child_pass = AddRenderPass( |
| 1097 transform_causing_aa); | 1103 render_passes, child_pass_id, child_rect, transform_causing_aa); |
| 1098 AddQuad(childPass, childRect, SK_ColorBLUE); | 1104 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1099 | 1105 |
| 1100 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1106 root_pass = AddRenderPass( |
| 1101 gfx::Transform()); | 1107 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1102 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1108 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1103 | 1109 |
| 1104 AddRenderPassQuad(rootPass, childPass, 0, filter, gfx::Transform()); | 1110 AddRenderPassQuad(root_pass, child_pass, 0, filter, gfx::Transform()); |
| 1105 AddRenderPassQuad(childPass, grandChildPass); | 1111 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1106 | 1112 |
| 1107 renderer_->DecideRenderPassAllocationsForFrame( | 1113 renderer_->DecideRenderPassAllocationsForFrame( |
| 1108 *mock_client_.render_passes_in_draw_order()); | 1114 *mock_client_.render_passes_in_draw_order()); |
| 1109 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1115 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1110 TestRenderPassColorMatrixProgram(); | 1116 TestRenderPassColorMatrixProgram(); |
| 1111 | 1117 |
| 1112 // RenderPassMaskProgram | 1118 // RenderPassMaskProgram |
| 1113 renderPasses->clear(); | 1119 render_passes->clear(); |
| 1114 | 1120 |
| 1115 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1121 grand_child_pass = AddRenderPass(render_passes, |
| 1116 gfx::Transform()); | 1122 grand_child_pass_id, |
| 1117 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1123 grand_child_rect, |
| 1124 gfx::Transform()); |
| 1125 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1118 | 1126 |
| 1119 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1127 child_pass = AddRenderPass( |
| 1120 gfx::Transform()); | 1128 render_passes, child_pass_id, child_rect, gfx::Transform()); |
| 1121 AddQuad(childPass, childRect, SK_ColorBLUE); | 1129 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1122 | 1130 |
| 1123 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1131 root_pass = AddRenderPass( |
| 1124 gfx::Transform()); | 1132 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1125 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1133 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1126 | 1134 |
| 1127 AddRenderPassQuad(rootPass, childPass, mask, skia::RefPtr<SkImageFilter>(), | 1135 AddRenderPassQuad(root_pass, |
| 1128 gfx::Transform()); | 1136 child_pass, |
| 1129 AddRenderPassQuad(childPass, grandChildPass); | 1137 mask, |
| 1138 skia::RefPtr<SkImageFilter>(), |
| 1139 gfx::Transform()); |
| 1140 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1130 | 1141 |
| 1131 renderer_->DecideRenderPassAllocationsForFrame( | 1142 renderer_->DecideRenderPassAllocationsForFrame( |
| 1132 *mock_client_.render_passes_in_draw_order()); | 1143 *mock_client_.render_passes_in_draw_order()); |
| 1133 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1144 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1134 TestRenderPassMaskProgram(); | 1145 TestRenderPassMaskProgram(); |
| 1135 | 1146 |
| 1136 // RenderPassMaskColorMatrixProgram | 1147 // RenderPassMaskColorMatrixProgram |
| 1137 renderPasses->clear(); | 1148 render_passes->clear(); |
| 1138 | 1149 |
| 1139 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1150 grand_child_pass = AddRenderPass( |
| 1140 gfx::Transform()); | 1151 render_passes, grand_child_pass_id, grand_child_rect, gfx::Transform()); |
| 1141 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1152 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1142 | 1153 |
| 1143 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1154 child_pass = AddRenderPass( |
| 1144 gfx::Transform()); | 1155 render_passes, child_pass_id, child_rect, gfx::Transform()); |
| 1145 AddQuad(childPass, childRect, SK_ColorBLUE); | 1156 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1146 | 1157 |
| 1147 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1158 root_pass = AddRenderPass( |
| 1148 gfx::Transform()); | 1159 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1149 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1160 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1150 | 1161 |
| 1151 AddRenderPassQuad(rootPass, childPass, mask, filter, gfx::Transform()); | 1162 AddRenderPassQuad(root_pass, child_pass, mask, filter, gfx::Transform()); |
| 1152 AddRenderPassQuad(childPass, grandChildPass); | 1163 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1153 | 1164 |
| 1154 renderer_->DecideRenderPassAllocationsForFrame( | 1165 renderer_->DecideRenderPassAllocationsForFrame( |
| 1155 *mock_client_.render_passes_in_draw_order()); | 1166 *mock_client_.render_passes_in_draw_order()); |
| 1156 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1167 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1157 TestRenderPassMaskColorMatrixProgram(); | 1168 TestRenderPassMaskColorMatrixProgram(); |
| 1158 | 1169 |
| 1159 // RenderPassProgramAA | 1170 // RenderPassProgramAA |
| 1160 renderPasses->clear(); | 1171 render_passes->clear(); |
| 1161 | 1172 |
| 1162 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1173 grand_child_pass = AddRenderPass(render_passes, |
| 1163 transform_causing_aa); | 1174 grand_child_pass_id, |
| 1164 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1175 grand_child_rect, |
| 1176 transform_causing_aa); |
| 1177 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1165 | 1178 |
| 1166 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1179 child_pass = AddRenderPass( |
| 1167 transform_causing_aa); | 1180 render_passes, child_pass_id, child_rect, transform_causing_aa); |
| 1168 AddQuad(childPass, childRect, SK_ColorBLUE); | 1181 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1169 | 1182 |
| 1170 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1183 root_pass = AddRenderPass( |
| 1171 gfx::Transform()); | 1184 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1172 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1185 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1173 | 1186 |
| 1174 AddRenderPassQuad(rootPass, childPass, 0, skia::RefPtr<SkImageFilter>(), | 1187 AddRenderPassQuad(root_pass, |
| 1175 transform_causing_aa); | 1188 child_pass, |
| 1176 AddRenderPassQuad(childPass, grandChildPass); | 1189 0, |
| 1190 skia::RefPtr<SkImageFilter>(), |
| 1191 transform_causing_aa); |
| 1192 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1177 | 1193 |
| 1178 renderer_->DecideRenderPassAllocationsForFrame( | 1194 renderer_->DecideRenderPassAllocationsForFrame( |
| 1179 *mock_client_.render_passes_in_draw_order()); | 1195 *mock_client_.render_passes_in_draw_order()); |
| 1180 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1196 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1181 TestRenderPassProgramAA(); | 1197 TestRenderPassProgramAA(); |
| 1182 | 1198 |
| 1183 // RenderPassColorMatrixProgramAA | 1199 // RenderPassColorMatrixProgramAA |
| 1184 renderPasses->clear(); | 1200 render_passes->clear(); |
| 1185 | 1201 |
| 1186 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1202 grand_child_pass = AddRenderPass(render_passes, |
| 1187 transform_causing_aa); | 1203 grand_child_pass_id, |
| 1188 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1204 grand_child_rect, |
| 1205 transform_causing_aa); |
| 1206 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1189 | 1207 |
| 1190 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1208 child_pass = AddRenderPass( |
| 1191 transform_causing_aa); | 1209 render_passes, child_pass_id, child_rect, transform_causing_aa); |
| 1192 AddQuad(childPass, childRect, SK_ColorBLUE); | 1210 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1193 | 1211 |
| 1194 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1212 root_pass = AddRenderPass( |
| 1195 gfx::Transform()); | 1213 render_passes, root_pass_id, viewport_rect, gfx::Transform()); |
| 1196 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | 1214 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1197 | 1215 |
| 1198 AddRenderPassQuad(rootPass, childPass, 0, filter, transform_causing_aa); | 1216 AddRenderPassQuad(root_pass, child_pass, 0, filter, transform_causing_aa); |
| 1199 AddRenderPassQuad(childPass, grandChildPass); | 1217 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1200 | 1218 |
| 1201 renderer_->DecideRenderPassAllocationsForFrame( | 1219 renderer_->DecideRenderPassAllocationsForFrame( |
| 1202 *mock_client_.render_passes_in_draw_order()); | 1220 *mock_client_.render_passes_in_draw_order()); |
| 1203 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1221 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1204 TestRenderPassColorMatrixProgramAA(); | 1222 TestRenderPassColorMatrixProgramAA(); |
| 1205 | 1223 |
| 1206 // RenderPassMaskProgramAA | 1224 // RenderPassMaskProgramAA |
| 1207 renderPasses->clear(); | 1225 render_passes->clear(); |
| 1208 | 1226 |
| 1209 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1227 grand_child_pass = AddRenderPass(render_passes, |
| 1228 grand_child_pass_id, |
| 1229 grand_child_rect, |
| 1230 transform_causing_aa); |
| 1231 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1232 |
| 1233 child_pass = AddRenderPass(render_passes, child_pass_id, child_rect, |
| 1210 transform_causing_aa); | 1234 transform_causing_aa); |
| 1211 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1235 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1212 | 1236 |
| 1213 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1237 root_pass = AddRenderPass(render_passes, root_pass_id, viewport_rect, |
| 1238 gfx::Transform()); |
| 1239 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1240 |
| 1241 AddRenderPassQuad(root_pass, child_pass, mask, skia::RefPtr<SkImageFilter>(), |
| 1214 transform_causing_aa); | 1242 transform_causing_aa); |
| 1215 AddQuad(childPass, childRect, SK_ColorBLUE); | 1243 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1216 | |
| 1217 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | |
| 1218 gfx::Transform()); | |
| 1219 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | |
| 1220 | |
| 1221 AddRenderPassQuad(rootPass, childPass, mask, skia::RefPtr<SkImageFilter>(), | |
| 1222 transform_causing_aa); | |
| 1223 AddRenderPassQuad(childPass, grandChildPass); | |
| 1224 | 1244 |
| 1225 renderer_->DecideRenderPassAllocationsForFrame( | 1245 renderer_->DecideRenderPassAllocationsForFrame( |
| 1226 *mock_client_.render_passes_in_draw_order()); | 1246 *mock_client_.render_passes_in_draw_order()); |
| 1227 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1247 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1228 TestRenderPassMaskProgramAA(); | 1248 TestRenderPassMaskProgramAA(); |
| 1229 | 1249 |
| 1230 // RenderPassMaskColorMatrixProgramAA | 1250 // RenderPassMaskColorMatrixProgramAA |
| 1231 renderPasses->clear(); | 1251 render_passes->clear(); |
| 1232 | 1252 |
| 1233 grandChildPass = AddRenderPass(renderPasses, grandChildPassId, grandChildRect, | 1253 grand_child_pass = AddRenderPass(render_passes, |
| 1254 grand_child_pass_id, |
| 1255 grand_child_rect, |
| 1256 transform_causing_aa); |
| 1257 AddClippedQuad(grand_child_pass, grand_child_rect, SK_ColorYELLOW); |
| 1258 |
| 1259 child_pass = AddRenderPass(render_passes, child_pass_id, child_rect, |
| 1234 transform_causing_aa); | 1260 transform_causing_aa); |
| 1235 AddClippedQuad(grandChildPass, grandChildRect, SK_ColorYELLOW); | 1261 AddQuad(child_pass, child_rect, SK_ColorBLUE); |
| 1236 | 1262 |
| 1237 childPass = AddRenderPass(renderPasses, childPassId, childRect, | 1263 root_pass = AddRenderPass(render_passes, root_pass_id, viewport_rect, |
| 1238 transform_causing_aa); | 1264 transform_causing_aa); |
| 1239 AddQuad(childPass, childRect, SK_ColorBLUE); | 1265 AddQuad(root_pass, viewport_rect, SK_ColorGREEN); |
| 1240 | 1266 |
| 1241 rootPass = AddRenderPass(renderPasses, rootPassId, viewportRect, | 1267 AddRenderPassQuad(root_pass, child_pass, mask, filter, transform_causing_aa); |
| 1242 transform_causing_aa); | 1268 AddRenderPassQuad(child_pass, grand_child_pass); |
| 1243 AddQuad(rootPass, viewportRect, SK_ColorGREEN); | |
| 1244 | |
| 1245 AddRenderPassQuad(rootPass, childPass, mask, filter, transform_causing_aa); | |
| 1246 AddRenderPassQuad(childPass, grandChildPass); | |
| 1247 | 1269 |
| 1248 renderer_->DecideRenderPassAllocationsForFrame( | 1270 renderer_->DecideRenderPassAllocationsForFrame( |
| 1249 *mock_client_.render_passes_in_draw_order()); | 1271 *mock_client_.render_passes_in_draw_order()); |
| 1250 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); | 1272 renderer_->DrawFrame(mock_client_.render_passes_in_draw_order()); |
| 1251 TestRenderPassMaskColorMatrixProgramAA(); | 1273 TestRenderPassMaskColorMatrixProgramAA(); |
| 1252 } | 1274 } |
| 1253 | 1275 |
| 1254 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { | 1276 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { |
| 1255 public: | 1277 public: |
| 1256 // Specifically override methods even if they are unused (used in conjunction | 1278 // Specifically override methods even if they are unused (used in conjunction |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1311 TestRenderPass* render_pass = AddRenderPass( | 1333 TestRenderPass* render_pass = AddRenderPass( |
| 1312 render_passes, render_pass_id, viewport_rect, gfx::Transform()); | 1334 render_passes, render_pass_id, viewport_rect, gfx::Transform()); |
| 1313 AddQuad(render_pass, viewport_rect, SK_ColorGREEN); | 1335 AddQuad(render_pass, viewport_rect, SK_ColorGREEN); |
| 1314 | 1336 |
| 1315 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); | 1337 EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); |
| 1316 | 1338 |
| 1317 EXPECT_CALL(output_surface_, Reshape(_)).Times(1); | 1339 EXPECT_CALL(output_surface_, Reshape(_)).Times(1); |
| 1318 | 1340 |
| 1319 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); | 1341 EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); |
| 1320 | 1342 |
| 1321 EXPECT_CALL(*context(), drawElements(_, _, _, _)).Times(1); | 1343 EXPECT_CALL(*Context(), drawElements(_, _, _, _)).Times(1); |
| 1322 | 1344 |
| 1323 renderer_.DecideRenderPassAllocationsForFrame( | 1345 renderer_.DecideRenderPassAllocationsForFrame( |
| 1324 *render_passes_in_draw_order()); | 1346 *render_passes_in_draw_order()); |
| 1325 renderer_.DrawFrame(render_passes_in_draw_order()); | 1347 renderer_.DrawFrame(render_passes_in_draw_order()); |
| 1326 } | 1348 } |
| 1327 | 1349 |
| 1328 OutputSurfaceMockContext* context() { | 1350 OutputSurfaceMockContext* Context() { |
| 1329 return static_cast<OutputSurfaceMockContext*>(output_surface_.context3d()); | 1351 return static_cast<OutputSurfaceMockContext*>(output_surface_.context3d()); |
| 1330 } | 1352 } |
| 1331 | 1353 |
| 1332 StrictMock<MockOutputSurface> output_surface_; | 1354 StrictMock<MockOutputSurface> output_surface_; |
| 1333 scoped_ptr<ResourceProvider> resource_provider_; | 1355 scoped_ptr<ResourceProvider> resource_provider_; |
| 1334 FakeRendererGL renderer_; | 1356 FakeRendererGL renderer_; |
| 1335 }; | 1357 }; |
| 1336 | 1358 |
| 1337 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { | 1359 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { |
| 1338 DrawFrame(); | 1360 DrawFrame(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1367 } | 1389 } |
| 1368 }; | 1390 }; |
| 1369 | 1391 |
| 1370 TEST_F(MockOutputSurfaceTestWithSendCompositorFrame, DrawFrame) { | 1392 TEST_F(MockOutputSurfaceTestWithSendCompositorFrame, DrawFrame) { |
| 1371 EXPECT_CALL(output_surface_, SendFrameToParentCompositor(_)).Times(1); | 1393 EXPECT_CALL(output_surface_, SendFrameToParentCompositor(_)).Times(1); |
| 1372 DrawFrame(); | 1394 DrawFrame(); |
| 1373 } | 1395 } |
| 1374 | 1396 |
| 1375 } // namespace | 1397 } // namespace |
| 1376 } // namespace cc | 1398 } // namespace cc |
| OLD | NEW |