| 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 <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 resource_provider_ = FakeResourceProvider::Create( | 377 resource_provider_ = FakeResourceProvider::Create( |
| 378 output_surface_->context_provider(), shared_bitmap_manager_.get()); | 378 output_surface_->context_provider(), shared_bitmap_manager_.get()); |
| 379 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), | 379 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(), |
| 380 resource_provider_.get())); | 380 resource_provider_.get())); |
| 381 renderer_->Initialize(); | 381 renderer_->Initialize(); |
| 382 renderer_->SetVisible(true); | 382 renderer_->SetVisible(true); |
| 383 } | 383 } |
| 384 | 384 |
| 385 void TestRenderPassProgram(TexCoordPrecision precision, | 385 void TestRenderPassProgram(TexCoordPrecision precision, |
| 386 BlendMode blend_mode) { | 386 BlendMode blend_mode) { |
| 387 EXPECT_PROGRAM_VALID( | 387 const GLRenderer::Program* program = renderer_->GetProgramForTesting( |
| 388 &renderer_->render_pass_program_[precision][blend_mode]); | 388 ProgramKey::RenderPass(precision, SAMPLER_TYPE_2D, blend_mode, NO_AA, |
| 389 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(), | 389 NO_MASK, false, false)); |
| 390 renderer_->program_shadow_); | 390 EXPECT_PROGRAM_VALID(program); |
| 391 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 391 } | 392 } |
| 392 | 393 |
| 393 void TestRenderPassColorMatrixProgram(TexCoordPrecision precision, | 394 void TestRenderPassColorMatrixProgram(TexCoordPrecision precision, |
| 394 BlendMode blend_mode) { | 395 BlendMode blend_mode) { |
| 395 EXPECT_PROGRAM_VALID( | 396 const GLRenderer::Program* program = renderer_->GetProgramForTesting( |
| 396 &renderer_->render_pass_color_matrix_program_[precision][blend_mode]); | 397 ProgramKey::RenderPass(precision, SAMPLER_TYPE_2D, blend_mode, NO_AA, |
| 397 EXPECT_EQ( | 398 NO_MASK, false, true)); |
| 398 renderer_->render_pass_color_matrix_program_[precision][blend_mode] | 399 EXPECT_PROGRAM_VALID(program); |
| 399 .program(), | 400 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 400 renderer_->program_shadow_); | |
| 401 } | 401 } |
| 402 | 402 |
| 403 void TestRenderPassMaskProgram(TexCoordPrecision precision, | 403 void TestRenderPassMaskProgram(TexCoordPrecision precision, |
| 404 SamplerType sampler, | 404 SamplerType sampler, |
| 405 BlendMode blend_mode) { | 405 BlendMode blend_mode) { |
| 406 EXPECT_PROGRAM_VALID( | 406 const GLRenderer::Program* program = |
| 407 &renderer_->render_pass_mask_program_[precision] | 407 renderer_->GetProgramForTesting(ProgramKey::RenderPass( |
| 408 [sampler] | 408 precision, sampler, blend_mode, NO_AA, HAS_MASK, false, false)); |
| 409 [blend_mode] | 409 EXPECT_PROGRAM_VALID(program); |
| 410 [NO_MASK]); | 410 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 411 EXPECT_EQ( | |
| 412 renderer_->render_pass_mask_program_[precision] | |
| 413 [sampler] | |
| 414 [blend_mode] | |
| 415 [NO_MASK].program(), | |
| 416 renderer_->program_shadow_); | |
| 417 } | 411 } |
| 418 | 412 |
| 419 void TestRenderPassMaskColorMatrixProgram(TexCoordPrecision precision, | 413 void TestRenderPassMaskColorMatrixProgram(TexCoordPrecision precision, |
| 420 SamplerType sampler, | 414 SamplerType sampler, |
| 421 BlendMode blend_mode) { | 415 BlendMode blend_mode) { |
| 422 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_ | 416 const GLRenderer::Program* program = |
| 423 [precision][sampler][blend_mode][NO_MASK]); | 417 renderer_->GetProgramForTesting(ProgramKey::RenderPass( |
| 424 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_ | 418 precision, sampler, blend_mode, NO_AA, HAS_MASK, false, true)); |
| 425 [precision][sampler][blend_mode][NO_MASK].program(), | 419 EXPECT_PROGRAM_VALID(program); |
| 426 renderer_->program_shadow_); | 420 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 427 } | 421 } |
| 428 | 422 |
| 429 void TestRenderPassProgramAA(TexCoordPrecision precision, | 423 void TestRenderPassProgramAA(TexCoordPrecision precision, |
| 430 BlendMode blend_mode) { | 424 BlendMode blend_mode) { |
| 431 EXPECT_PROGRAM_VALID( | 425 const GLRenderer::Program* program = renderer_->GetProgramForTesting( |
| 432 &renderer_->render_pass_program_aa_[precision][blend_mode]); | 426 ProgramKey::RenderPass(precision, SAMPLER_TYPE_2D, blend_mode, USE_AA, |
| 433 EXPECT_EQ( | 427 NO_MASK, false, false)); |
| 434 renderer_->render_pass_program_aa_[precision][blend_mode].program(), | 428 EXPECT_PROGRAM_VALID(program); |
| 435 renderer_->program_shadow_); | 429 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 436 } | 430 } |
| 437 | 431 |
| 438 void TestRenderPassColorMatrixProgramAA(TexCoordPrecision precision, | 432 void TestRenderPassColorMatrixProgramAA(TexCoordPrecision precision, |
| 439 BlendMode blend_mode) { | 433 BlendMode blend_mode) { |
| 440 EXPECT_PROGRAM_VALID( | 434 const GLRenderer::Program* program = renderer_->GetProgramForTesting( |
| 441 &renderer_ | 435 ProgramKey::RenderPass(precision, SAMPLER_TYPE_2D, blend_mode, USE_AA, |
| 442 ->render_pass_color_matrix_program_aa_[precision][blend_mode]); | 436 NO_MASK, false, true)); |
| 443 EXPECT_EQ( | 437 EXPECT_PROGRAM_VALID(program); |
| 444 renderer_->render_pass_color_matrix_program_aa_[precision][blend_mode] | 438 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 445 .program(), | |
| 446 renderer_->program_shadow_); | |
| 447 } | 439 } |
| 448 | 440 |
| 449 void TestRenderPassMaskProgramAA(TexCoordPrecision precision, | 441 void TestRenderPassMaskProgramAA(TexCoordPrecision precision, |
| 450 SamplerType sampler, | 442 SamplerType sampler, |
| 451 BlendMode blend_mode) { | 443 BlendMode blend_mode) { |
| 452 EXPECT_PROGRAM_VALID( | 444 const GLRenderer::Program* program = |
| 453 &renderer_ | 445 renderer_->GetProgramForTesting(ProgramKey::RenderPass( |
| 454 ->render_pass_mask_program_aa_ | 446 precision, sampler, blend_mode, USE_AA, HAS_MASK, false, false)); |
| 455 [precision][sampler][blend_mode][NO_MASK]); | 447 EXPECT_PROGRAM_VALID(program); |
| 456 EXPECT_EQ( | 448 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 457 renderer_->render_pass_mask_program_aa_[precision][sampler][blend_mode] | |
| 458 [NO_MASK].program(), | |
| 459 renderer_->program_shadow_); | |
| 460 } | 449 } |
| 461 | 450 |
| 462 void TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision, | 451 void TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision, |
| 463 SamplerType sampler, | 452 SamplerType sampler, |
| 464 BlendMode blend_mode) { | 453 BlendMode blend_mode) { |
| 465 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_aa_ | 454 const GLRenderer::Program* program = |
| 466 [precision][sampler][blend_mode][NO_MASK]); | 455 renderer_->GetProgramForTesting(ProgramKey::RenderPass( |
| 467 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_ | 456 precision, sampler, blend_mode, USE_AA, HAS_MASK, false, true)); |
| 468 [precision][sampler][blend_mode][NO_MASK].program(), | 457 EXPECT_PROGRAM_VALID(program); |
| 469 renderer_->program_shadow_); | 458 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 470 } | 459 } |
| 471 | 460 |
| 472 void TestSolidColorProgramAA() { | 461 void TestSolidColorProgramAA() { |
| 473 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_); | 462 const GLRenderer::Program* program = |
| 474 EXPECT_EQ(renderer_->solid_color_program_aa_.program(), | 463 renderer_->GetProgramForTesting(ProgramKey::SolidColor(USE_AA)); |
| 475 renderer_->program_shadow_); | 464 EXPECT_PROGRAM_VALID(program); |
| 465 EXPECT_EQ(program->program(), renderer_->program_shadow_); |
| 476 } | 466 } |
| 477 | 467 |
| 478 RendererSettings settings_; | 468 RendererSettings settings_; |
| 479 FakeOutputSurfaceClient output_surface_client_; | 469 FakeOutputSurfaceClient output_surface_client_; |
| 480 std::unique_ptr<FakeOutputSurface> output_surface_; | 470 std::unique_ptr<FakeOutputSurface> output_surface_; |
| 481 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; | 471 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; |
| 482 std::unique_ptr<ResourceProvider> resource_provider_; | 472 std::unique_ptr<ResourceProvider> resource_provider_; |
| 483 std::unique_ptr<FakeRendererGL> renderer_; | 473 std::unique_ptr<FakeRendererGL> renderer_; |
| 484 }; | 474 }; |
| 485 | 475 |
| (...skipping 1485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1971 renderer_->SetVisible(true); | 1961 renderer_->SetVisible(true); |
| 1972 Mock::VerifyAndClearExpectations(context_support_ptr_); | 1962 Mock::VerifyAndClearExpectations(context_support_ptr_); |
| 1973 | 1963 |
| 1974 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); | 1964 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); |
| 1975 renderer_->SetVisible(false); | 1965 renderer_->SetVisible(false); |
| 1976 Mock::VerifyAndClearExpectations(context_support_ptr_); | 1966 Mock::VerifyAndClearExpectations(context_support_ptr_); |
| 1977 } | 1967 } |
| 1978 | 1968 |
| 1979 } // namespace | 1969 } // namespace |
| 1980 } // namespace cc | 1970 } // namespace cc |
| OLD | NEW |