| 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 |