| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "gpu/command_buffer/service/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 namespace gpu { | 32 namespace gpu { |
| 33 namespace gles2 { | 33 namespace gles2 { |
| 34 | 34 |
| 35 class TextureTestHelper { | 35 class TextureTestHelper { |
| 36 public: | 36 public: |
| 37 static bool IsNPOT(const Texture* texture) { | 37 static bool IsNPOT(const Texture* texture) { |
| 38 return texture->npot(); | 38 return texture->npot(); |
| 39 } | 39 } |
| 40 static bool IsTextureComplete(const Texture* texture) { | 40 static bool IsTextureComplete(const Texture* texture) { |
| 41 return texture->texture_complete(); | 41 return texture->texture_2d_complete(); |
| 42 } | 42 } |
| 43 static bool IsCubeComplete(const Texture* texture) { | 43 static bool IsCubeComplete(const Texture* texture) { |
| 44 return texture->cube_complete(); | 44 return texture->cube_complete(); |
| 45 } | 45 } |
| 46 }; | 46 }; |
| 47 | 47 |
| 48 class TextureManagerTest : public GpuServiceTest { | 48 class TextureManagerTest : public GpuServiceTest { |
| 49 public: | 49 public: |
| 50 static const GLint kMaxTextureSize = 16; | 50 static const GLint kMaxTextureSize = 16; |
| 51 static const GLint kMaxCubeMapTextureSize = 8; | 51 static const GLint kMaxCubeMapTextureSize = 8; |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 .Times(1).RetiresOnSaturation() | 501 .Times(1).RetiresOnSaturation() |
| 502 | 502 |
| 503 TEST_F(TextureTest, Basic) { | 503 TEST_F(TextureTest, Basic) { |
| 504 Texture* texture = texture_ref_->texture(); | 504 Texture* texture = texture_ref_->texture(); |
| 505 EXPECT_EQ(0u, texture->target()); | 505 EXPECT_EQ(0u, texture->target()); |
| 506 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 506 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 507 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 507 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 508 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 508 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 509 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 509 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 510 EXPECT_EQ(0, texture->num_uncleared_mips()); | 510 EXPECT_EQ(0, texture->num_uncleared_mips()); |
| 511 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 511 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 512 EXPECT_TRUE(texture->SafeToRenderFrom()); | 512 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 513 EXPECT_FALSE(texture->IsImmutable()); | 513 EXPECT_FALSE(texture->IsImmutable()); |
| 514 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), | 514 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), |
| 515 texture->min_filter()); | 515 texture->min_filter()); |
| 516 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter()); | 516 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter()); |
| 517 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s()); | 517 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s()); |
| 518 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t()); | 518 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t()); |
| 519 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 519 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 520 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 520 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
| 521 EXPECT_EQ(0u, texture->estimated_size()); | 521 EXPECT_EQ(0u, texture->estimated_size()); |
| 522 } | 522 } |
| 523 | 523 |
| 524 TEST_F(TextureTest, SetTargetTexture2D) { | 524 TEST_F(TextureTest, SetTargetTexture2D) { |
| 525 Texture* texture = texture_ref_->texture(); | 525 Texture* texture = texture_ref_->texture(); |
| 526 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 526 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 527 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 527 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 528 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 528 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 529 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 529 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 530 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 530 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 531 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 531 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 532 EXPECT_TRUE(texture->SafeToRenderFrom()); | 532 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 533 EXPECT_FALSE(texture->IsImmutable()); | 533 EXPECT_FALSE(texture->IsImmutable()); |
| 534 } | 534 } |
| 535 | 535 |
| 536 TEST_F(TextureTest, SetTargetTextureExternalOES) { | 536 TEST_F(TextureTest, SetTargetTextureExternalOES) { |
| 537 Texture* texture = texture_ref_->texture(); | 537 Texture* texture = texture_ref_->texture(); |
| 538 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); | 538 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES); |
| 539 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 539 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 540 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 540 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 541 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 541 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 542 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 542 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
| 543 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 543 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 544 EXPECT_TRUE(texture->SafeToRenderFrom()); | 544 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 545 EXPECT_TRUE(texture->IsImmutable()); | 545 EXPECT_TRUE(texture->IsImmutable()); |
| 546 } | 546 } |
| 547 | 547 |
| 548 TEST_F(TextureTest, ZeroSizeCanNotRender) { | 548 TEST_F(TextureTest, ZeroSizeCanNotRender) { |
| 549 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 549 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 550 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 550 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 551 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, | 551 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, |
| 552 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(1, 1)); | 552 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(1, 1)); |
| 553 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 553 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 554 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 1, | 554 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 1, |
| 555 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 555 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 556 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 556 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 557 } | 557 } |
| 558 | 558 |
| 559 TEST_F(TextureTest, EstimatedSize) { | 559 TEST_F(TextureTest, EstimatedSize) { |
| 560 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 560 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 561 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 4, 1, | 561 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 8, 4, 1, |
| 562 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 4)); | 562 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 4)); |
| 563 EXPECT_EQ(8u * 4u * 4u, texture_ref_->texture()->estimated_size()); | 563 EXPECT_EQ(8u * 4u * 4u, texture_ref_->texture()->estimated_size()); |
| 564 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 4, 1, | 564 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 4, 1, |
| 565 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 4)); | 565 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 4)); |
| 566 EXPECT_EQ(8u * 4u * 4u * 2u, texture_ref_->texture()->estimated_size()); | 566 EXPECT_EQ(8u * 4u * 4u * 2u, texture_ref_->texture()->estimated_size()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 599 | 599 |
| 600 TEST_F(TextureTest, POT2D) { | 600 TEST_F(TextureTest, POT2D) { |
| 601 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 601 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 602 Texture* texture = texture_ref_->texture(); | 602 Texture* texture = texture_ref_->texture(); |
| 603 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 603 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 604 // Check Setting level 0 to POT | 604 // Check Setting level 0 to POT |
| 605 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 605 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 606 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 606 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 607 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 607 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 608 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 608 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 609 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 609 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 610 EXPECT_TRUE(texture->SafeToRenderFrom()); | 610 EXPECT_TRUE(texture->SafeToRenderFrom()); |
| 611 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 611 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 612 // Set filters to something that will work with a single mip. | 612 // Set filters to something that will work with a single mip. |
| 613 SetParameter( | 613 SetParameter( |
| 614 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); | 614 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
| 615 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 615 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 616 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 616 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 617 // Set them back. | 617 // Set them back. |
| 618 SetParameter(texture_ref_.get(), | 618 SetParameter(texture_ref_.get(), |
| 619 GL_TEXTURE_MIN_FILTER, | 619 GL_TEXTURE_MIN_FILTER, |
| 620 GL_LINEAR_MIPMAP_LINEAR, | 620 GL_LINEAR_MIPMAP_LINEAR, |
| 621 GL_NO_ERROR); | 621 GL_NO_ERROR); |
| 622 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 622 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 623 | 623 |
| 624 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 624 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 625 // Make mips. | 625 // Make mips. |
| 626 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 626 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 627 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 627 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 628 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 628 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 629 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 629 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 630 // Change a mip. | 630 // Change a mip. |
| 631 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, | 631 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, |
| 632 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 632 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 633 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 633 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 634 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 634 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 635 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 635 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 636 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 636 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 637 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 637 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 638 // Set a level past the number of mips that would get generated. | 638 // Set a level past the number of mips that would get generated. |
| 639 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, | 639 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, |
| 640 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 640 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 641 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 641 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 642 // Make mips. | 642 // Make mips. |
| 643 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 643 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 644 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 644 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 645 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 645 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 646 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 646 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 647 } | 647 } |
| 648 | 648 |
| 649 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { | 649 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { |
| 650 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 650 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 651 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64, MemoryTracker::kUnmanaged); | 651 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64, MemoryTracker::kUnmanaged); |
| 652 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 652 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 653 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 653 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 654 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0, MemoryTracker::kUnmanaged); | 654 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0, MemoryTracker::kUnmanaged); |
| 655 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84, MemoryTracker::kUnmanaged); | 655 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84, MemoryTracker::kUnmanaged); |
| 656 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 656 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 657 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0, MemoryTracker::kUnmanaged); | 657 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0, MemoryTracker::kUnmanaged); |
| 658 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0, MemoryTracker::kUnmanaged); | 658 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0, MemoryTracker::kUnmanaged); |
| 659 } | 659 } |
| 660 | 660 |
| 661 TEST_F(TextureTest, UnusedMips) { | 661 TEST_F(TextureTest, UnusedMips) { |
| 662 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 662 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 663 Texture* texture = texture_ref_->texture(); | 663 Texture* texture = texture_ref_->texture(); |
| 664 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 664 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 665 // Set level zero to large size. | 665 // Set level zero to large size. |
| 666 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 666 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 667 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 667 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 668 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 668 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 669 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 669 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 670 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 670 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 671 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 671 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 672 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 672 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 673 // Set level zero to large smaller (levels unused mips) | 673 // Set level zero to large smaller (levels unused mips) |
| 674 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, | 674 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, |
| 675 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 675 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
| 676 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 676 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 677 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 677 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 678 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 678 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 679 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 679 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 680 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 680 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 681 // Set an unused level to some size | 681 // Set an unused level to some size |
| 682 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, | 682 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, |
| 683 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); | 683 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); |
| 684 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 684 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 685 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 685 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 686 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 686 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 687 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 687 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 688 } | 688 } |
| 689 | 689 |
| 690 TEST_F(TextureTest, NPOT2D) { | 690 TEST_F(TextureTest, NPOT2D) { |
| 691 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 691 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 692 Texture* texture = texture_ref_->texture(); | 692 Texture* texture = texture_ref_->texture(); |
| 693 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 693 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 694 // Check Setting level 0 to NPOT | 694 // Check Setting level 0 to NPOT |
| 695 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, | 695 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, |
| 696 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 696 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
| 697 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 697 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
| 698 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 698 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 699 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 699 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 700 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 700 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 701 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 701 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 702 SetParameter( | 702 SetParameter( |
| 703 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); | 703 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
| 704 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 704 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 705 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 705 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 706 SetParameter( | 706 SetParameter( |
| 707 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 707 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
| 708 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 708 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 709 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 709 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 710 SetParameter( | 710 SetParameter( |
| 711 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 711 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
| 712 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 712 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 713 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 713 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 714 // Change it to POT. | 714 // Change it to POT. |
| 715 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 715 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
| 716 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 716 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
| 717 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 717 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 718 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 718 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 719 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 719 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 720 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 720 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 721 } | 721 } |
| 722 | 722 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 738 Texture* texture = texture_ref->texture(); | 738 Texture* texture = texture_ref->texture(); |
| 739 | 739 |
| 740 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 740 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 741 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 741 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 742 // Check Setting level 0 to NPOT | 742 // Check Setting level 0 to NPOT |
| 743 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, | 743 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, |
| 744 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 744 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
| 745 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 745 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
| 746 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 746 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 747 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); | 747 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); |
| 748 EXPECT_FALSE(manager.CanRender(texture_ref)); | 748 EXPECT_FALSE(manager.IsTextureComplete(texture_ref)); |
| 749 EXPECT_TRUE(manager.HaveUnrenderableTextures()); | 749 EXPECT_TRUE(manager.HaveUnrenderableTextures()); |
| 750 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref)); | 750 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref)); |
| 751 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 751 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 752 EXPECT_TRUE(manager.CanRender(texture_ref)); | 752 EXPECT_TRUE(manager.IsTextureComplete(texture_ref)); |
| 753 EXPECT_FALSE(manager.HaveUnrenderableTextures()); | 753 EXPECT_FALSE(manager.HaveUnrenderableTextures()); |
| 754 manager.Destroy(false); | 754 manager.Destroy(false); |
| 755 } | 755 } |
| 756 | 756 |
| 757 TEST_F(TextureTest, POTCubeMap) { | 757 TEST_F(TextureTest, POTCubeMap) { |
| 758 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); | 758 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); |
| 759 Texture* texture = texture_ref_->texture(); | 759 Texture* texture = texture_ref_->texture(); |
| 760 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); | 760 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); |
| 761 // Check Setting level 0 each face to POT | 761 // Check Setting level 0 each face to POT |
| 762 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, | 762 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, |
| 763 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 763 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 764 gfx::Rect(4, 4)); | 764 gfx::Rect(4, 4)); |
| 765 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 765 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 766 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 766 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 767 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 767 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 768 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 768 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 769 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 769 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 770 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 770 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 771 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, | 771 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, |
| 772 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 772 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 773 gfx::Rect(4, 4)); | 773 gfx::Rect(4, 4)); |
| 774 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 774 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 775 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 775 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 776 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 776 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 777 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 777 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 778 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 778 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 779 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 779 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 780 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, | 780 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, |
| 781 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 781 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 782 gfx::Rect(4, 4)); | 782 gfx::Rect(4, 4)); |
| 783 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 783 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 784 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 784 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 785 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 785 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 787 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 787 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 788 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 788 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 789 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, | 789 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, |
| 790 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 790 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 791 gfx::Rect(4, 4)); | 791 gfx::Rect(4, 4)); |
| 792 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 792 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 793 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 793 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 794 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 794 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 795 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 795 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 796 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 796 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 797 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 797 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 798 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, | 798 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, |
| 799 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 799 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 800 gfx::Rect(4, 4)); | 800 gfx::Rect(4, 4)); |
| 801 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 801 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 802 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 802 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 803 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 803 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
| 804 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 804 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 805 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 805 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 806 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 806 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 807 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, | 807 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, |
| 808 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 808 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 809 gfx::Rect(4, 4)); | 809 gfx::Rect(4, 4)); |
| 810 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 810 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 811 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 811 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 812 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 812 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
| 813 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 813 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 814 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 814 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref_.get())); |
| 815 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 815 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 816 | 816 |
| 817 // Make mips. | 817 // Make mips. |
| 818 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 818 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
| 819 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 819 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 820 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 820 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
| 821 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 821 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref_.get())); |
| 822 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 822 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 823 | 823 |
| 824 // Change a mip. | 824 // Change a mip. |
| 825 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, | 825 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, |
| 826 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 826 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
| 827 gfx::Rect(4, 4)); | 827 gfx::Rect(4, 4)); |
| 828 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 828 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 829 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 829 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 830 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 830 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
| 831 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 831 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 // Make the default texture renderable | 1268 // Make the default texture renderable |
| 1269 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1269 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1270 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, | 1270 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, |
| 1271 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1271 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1272 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 1272 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 1273 // Make a new texture | 1273 // Make a new texture |
| 1274 manager_->CreateTexture(kClient2Id, kService2Id); | 1274 manager_->CreateTexture(kClient2Id, kService2Id); |
| 1275 scoped_refptr<TextureRef> texture_ref( | 1275 scoped_refptr<TextureRef> texture_ref( |
| 1276 manager_->GetTexture(kClient2Id)); | 1276 manager_->GetTexture(kClient2Id)); |
| 1277 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D); | 1277 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D); |
| 1278 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); | 1278 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref.get())); |
| 1279 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 1279 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 1280 // Remove it. | 1280 // Remove it. |
| 1281 manager_->RemoveTexture(kClient2Id); | 1281 manager_->RemoveTexture(kClient2Id); |
| 1282 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); | 1282 EXPECT_FALSE(manager_->IsTextureComplete(texture_ref.get())); |
| 1283 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 1283 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 1284 // Check that we can still manipulate it and it effects the manager. | 1284 // Check that we can still manipulate it and it effects the manager. |
| 1285 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, | 1285 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, |
| 1286 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1286 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
| 1287 EXPECT_TRUE(manager_->CanRender(texture_ref.get())); | 1287 EXPECT_TRUE(manager_->IsTextureComplete(texture_ref.get())); |
| 1288 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 1288 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 1289 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) | 1289 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) |
| 1290 .Times(1) | 1290 .Times(1) |
| 1291 .RetiresOnSaturation(); | 1291 .RetiresOnSaturation(); |
| 1292 texture_ref = NULL; | 1292 texture_ref = NULL; |
| 1293 } | 1293 } |
| 1294 | 1294 |
| 1295 TEST_F(TextureTest, GetLevelImage) { | 1295 TEST_F(TextureTest, GetLevelImage) { |
| 1296 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1296 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 1297 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1297 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
| (...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2242 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); | 2242 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); |
| 2243 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); | 2243 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); |
| 2244 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, | 2244 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, |
| 2245 GL_DEPTH32F_STENCIL8); | 2245 GL_DEPTH32F_STENCIL8); |
| 2246 | 2246 |
| 2247 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); | 2247 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); |
| 2248 } | 2248 } |
| 2249 | 2249 |
| 2250 } // namespace gles2 | 2250 } // namespace gles2 |
| 2251 } // namespace gpu | 2251 } // namespace gpu |
| OLD | NEW |