OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "gpu/command_buffer/common/gl_mock.h" | 8 #include "gpu/command_buffer/common/gl_mock.h" |
9 #include "gpu/command_buffer/service/feature_info.h" | 9 #include "gpu/command_buffer/service/feature_info.h" |
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" | 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 565 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
566 GLsizei width = -1; | 566 GLsizei width = -1; |
567 GLsizei height = -1; | 567 GLsizei height = -1; |
568 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, -1, &width, &height)); | 568 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, -1, &width, &height)); |
569 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, 1000, &width, &height)); | 569 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, 1000, &width, &height)); |
570 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height)); | 570 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height)); |
571 EXPECT_TRUE(info_->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height)); | 571 EXPECT_TRUE(info_->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height)); |
572 EXPECT_EQ(4, width); | 572 EXPECT_EQ(4, width); |
573 EXPECT_EQ(5, height); | 573 EXPECT_EQ(5, height); |
574 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); | 574 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); |
575 EXPECT_FALSE(info_->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height)); | 575 EXPECT_TRUE(info_->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height)); |
| 576 EXPECT_EQ(4, width); |
| 577 EXPECT_EQ(5, height); |
576 } | 578 } |
577 | 579 |
578 TEST_F(TextureInfoTest, GetLevelType) { | 580 TEST_F(TextureInfoTest, GetLevelType) { |
579 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 581 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |
580 manager_.SetLevelInfo(&feature_info_, info_, | 582 manager_.SetLevelInfo(&feature_info_, info_, |
581 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 583 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
582 GLenum type = -1; | 584 GLenum type = -1; |
583 GLenum format = -1; | 585 GLenum format = -1; |
584 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, -1, &type, &format)); | 586 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, -1, &type, &format)); |
585 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, 1000, &type, &format)); | 587 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, 1000, &type, &format)); |
586 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, 0, &type, &format)); | 588 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, 0, &type, &format)); |
587 EXPECT_TRUE(info_->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); | 589 EXPECT_TRUE(info_->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); |
588 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); | 590 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); |
589 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); | 591 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); |
590 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); | 592 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); |
591 EXPECT_FALSE(info_->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); | 593 EXPECT_TRUE(info_->GetLevelType(GL_TEXTURE_2D, 1, &type, &format)); |
| 594 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); |
| 595 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), format); |
592 } | 596 } |
593 | 597 |
594 TEST_F(TextureInfoTest, ValidForTexture) { | 598 TEST_F(TextureInfoTest, ValidForTexture) { |
595 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 599 manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |
596 manager_.SetLevelInfo(&feature_info_, info_, | 600 manager_.SetLevelInfo(&feature_info_, info_, |
597 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 601 GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |
598 // Check bad face. | 602 // Check bad face. |
599 EXPECT_FALSE(info_->ValidForTexture( | 603 EXPECT_FALSE(info_->ValidForTexture( |
600 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 604 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |
601 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); | 605 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); |
(...skipping 24 matching lines...) Expand all Loading... |
626 // Check bad type. | 630 // Check bad type. |
627 EXPECT_FALSE(info_->ValidForTexture( | 631 EXPECT_FALSE(info_->ValidForTexture( |
628 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4)); | 632 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4)); |
629 // Check valid full size | 633 // Check valid full size |
630 EXPECT_TRUE(info_->ValidForTexture( | 634 EXPECT_TRUE(info_->ValidForTexture( |
631 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); | 635 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); |
632 // Check valid particial size. | 636 // Check valid particial size. |
633 EXPECT_TRUE(info_->ValidForTexture( | 637 EXPECT_TRUE(info_->ValidForTexture( |
634 GL_TEXTURE_2D, 1, 1, 1, 2, 3, GL_RGBA, GL_UNSIGNED_BYTE)); | 638 GL_TEXTURE_2D, 1, 1, 1, 2, 3, GL_RGBA, GL_UNSIGNED_BYTE)); |
635 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); | 639 manager_.RemoveTextureInfo(&feature_info_, kClient1Id); |
636 EXPECT_FALSE(info_->ValidForTexture( | 640 EXPECT_TRUE(info_->ValidForTexture( |
637 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); | 641 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); |
638 } | 642 } |
639 | 643 |
640 TEST_F(TextureInfoTest, FloatNotLinear) { | 644 TEST_F(TextureInfoTest, FloatNotLinear) { |
641 TextureManager manager(kMaxTextureSize, kMaxCubeMapTextureSize); | 645 TextureManager manager(kMaxTextureSize, kMaxCubeMapTextureSize); |
642 TestHelper::SetupFeatureInfoInitExpectations( | 646 TestHelper::SetupFeatureInfoInitExpectations( |
643 gl_.get(), "GL_OES_texture_float"); | 647 gl_.get(), "GL_OES_texture_float"); |
644 FeatureInfo feature_info; | 648 FeatureInfo feature_info; |
645 feature_info.Initialize(NULL); | 649 feature_info.Initialize(NULL); |
646 manager.CreateTextureInfo(&feature_info, kClient1Id, kService1Id); | 650 manager.CreateTextureInfo(&feature_info, kClient1Id, kService1Id); |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 EXPECT_TRUE(info_->SafeToRenderFrom()); | 881 EXPECT_TRUE(info_->SafeToRenderFrom()); |
878 EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 882 EXPECT_FALSE(manager_.HaveUnsafeTextures()); |
879 EXPECT_FALSE(manager_.HaveUnclearedMips()); | 883 EXPECT_FALSE(manager_.HaveUnclearedMips()); |
880 EXPECT_EQ(0, info_->num_uncleared_mips()); | 884 EXPECT_EQ(0, info_->num_uncleared_mips()); |
881 } | 885 } |
882 | 886 |
883 } // namespace gles2 | 887 } // namespace gles2 |
884 } // namespace gpu | 888 } // namespace gpu |
885 | 889 |
886 | 890 |
OLD | NEW |