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 |