| 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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  117       &feature_info_, info, GL_TEXTURE_MAG_FILTER, GL_CLAMP_TO_EDGE)); |  117       &feature_info_, info, GL_TEXTURE_MAG_FILTER, GL_CLAMP_TO_EDGE)); | 
|  118   EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), info->min_filter()); |  118   EXPECT_EQ(static_cast<GLenum>(GL_NEAREST), info->min_filter()); | 
|  119   EXPECT_FALSE(manager_.SetParameter( |  119   EXPECT_FALSE(manager_.SetParameter( | 
|  120       &feature_info_, info, GL_TEXTURE_WRAP_S, GL_NEAREST)); |  120       &feature_info_, info, GL_TEXTURE_WRAP_S, GL_NEAREST)); | 
|  121   EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s()); |  121   EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_s()); | 
|  122   EXPECT_FALSE(manager_.SetParameter( |  122   EXPECT_FALSE(manager_.SetParameter( | 
|  123       &feature_info_, info, GL_TEXTURE_WRAP_T, GL_NEAREST)); |  123       &feature_info_, info, GL_TEXTURE_WRAP_T, GL_NEAREST)); | 
|  124   EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t()); |  124   EXPECT_EQ(static_cast<GLenum>(GL_CLAMP_TO_EDGE), info->wrap_t()); | 
|  125 } |  125 } | 
|  126  |  126  | 
 |  127 TEST_F(TextureManagerTest, TextureUsageExt) { | 
 |  128   TestHelper::SetupTextureManagerInitExpectations(gl_.get(), | 
 |  129                                                   "GL_ANGLE_texture_usage"); | 
 |  130   manager_.Initialize(&feature_info_); | 
 |  131   const GLuint kClient1Id = 1; | 
 |  132   const GLuint kService1Id = 11; | 
 |  133   // Check we can create texture. | 
 |  134   manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); | 
 |  135   // Check texture got created. | 
 |  136   TextureManager::TextureInfo* info = manager_.GetTextureInfo(kClient1Id); | 
 |  137   ASSERT_TRUE(info != NULL); | 
 |  138   EXPECT_TRUE(manager_.SetParameter( | 
 |  139       &feature_info_, info, GL_TEXTURE_USAGE_ANGLE, | 
 |  140       GL_FRAMEBUFFER_ATTACHMENT_ANGLE)); | 
 |  141   EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_ATTACHMENT_ANGLE), | 
 |  142             info->usage()); | 
 |  143 } | 
 |  144  | 
|  127 TEST_F(TextureManagerTest, Destroy) { |  145 TEST_F(TextureManagerTest, Destroy) { | 
|  128   const GLuint kClient1Id = 1; |  146   const GLuint kClient1Id = 1; | 
|  129   const GLuint kService1Id = 11; |  147   const GLuint kService1Id = 11; | 
|  130   // Check we can create texture. |  148   // Check we can create texture. | 
|  131   manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); |  149   manager_.CreateTextureInfo(&feature_info_, kClient1Id, kService1Id); | 
|  132   // Check texture got created. |  150   // Check texture got created. | 
|  133   TextureManager::TextureInfo* info1 = manager_.GetTextureInfo(kClient1Id); |  151   TextureManager::TextureInfo* info1 = manager_.GetTextureInfo(kClient1Id); | 
|  134   ASSERT_TRUE(info1 != NULL); |  152   ASSERT_TRUE(info1 != NULL); | 
|  135   EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) |  153   EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) | 
|  136       .Times(1) |  154       .Times(1) | 
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  316  |  334  | 
|  317 TEST_F(TextureInfoTest, Basic) { |  335 TEST_F(TextureInfoTest, Basic) { | 
|  318   EXPECT_EQ(0u, info_->target()); |  336   EXPECT_EQ(0u, info_->target()); | 
|  319   EXPECT_FALSE(info_->texture_complete()); |  337   EXPECT_FALSE(info_->texture_complete()); | 
|  320   EXPECT_FALSE(info_->cube_complete()); |  338   EXPECT_FALSE(info_->cube_complete()); | 
|  321   EXPECT_FALSE(info_->CanGenerateMipmaps(&feature_info_)); |  339   EXPECT_FALSE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  322   EXPECT_FALSE(info_->npot()); |  340   EXPECT_FALSE(info_->npot()); | 
|  323   EXPECT_EQ(0, info_->num_uncleared_mips()); |  341   EXPECT_EQ(0, info_->num_uncleared_mips()); | 
|  324   EXPECT_FALSE(info_->CanRender(&feature_info_)); |  342   EXPECT_FALSE(info_->CanRender(&feature_info_)); | 
|  325   EXPECT_TRUE(info_->SafeToRenderFrom()); |  343   EXPECT_TRUE(info_->SafeToRenderFrom()); | 
 |  344   EXPECT_FALSE(info_->IsImmutable()); | 
|  326   EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), info_->min_filter()); |  345   EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), info_->min_filter()); | 
|  327   EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), info_->mag_filter()); |  346   EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), info_->mag_filter()); | 
|  328   EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_s()); |  347   EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_s()); | 
|  329   EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_t()); |  348   EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), info_->wrap_t()); | 
|  330   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |  349   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 
|  331   EXPECT_FALSE(manager_.HaveUnsafeTextures()); |  350   EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 
|  332 } |  351 } | 
|  333  |  352  | 
|  334 TEST_F(TextureInfoTest, POT2D) { |  353 TEST_F(TextureInfoTest, POT2D) { | 
|  335   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |  354   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  347       &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |  366       &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 
|  348   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  367   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  349   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  368   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  350   // Set them back. |  369   // Set them back. | 
|  351   manager_.SetParameter( |  370   manager_.SetParameter( | 
|  352       &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |  371       &feature_info_, info_, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); | 
|  353   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |  372   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 
|  354  |  373  | 
|  355   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  374   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  356   // Make mips. |  375   // Make mips. | 
|  357   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  376   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  358   EXPECT_TRUE(info_->texture_complete()); |  377   EXPECT_TRUE(info_->texture_complete()); | 
|  359   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  378   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  360   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  379   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  361   // Change a mip. |  380   // Change a mip. | 
|  362   manager_.SetLevelInfo(&feature_info_, info_, |  381   manager_.SetLevelInfo(&feature_info_, info_, | 
|  363       GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  382       GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  364   EXPECT_FALSE(info_->npot()); |  383   EXPECT_FALSE(info_->npot()); | 
|  365   EXPECT_FALSE(info_->texture_complete()); |  384   EXPECT_FALSE(info_->texture_complete()); | 
|  366   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  385   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  367   EXPECT_FALSE(info_->CanRender(&feature_info_)); |  386   EXPECT_FALSE(info_->CanRender(&feature_info_)); | 
|  368   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |  387   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 
|  369   // Set a level past the number of mips that would get generated. |  388   // Set a level past the number of mips that would get generated. | 
|  370   manager_.SetLevelInfo(&feature_info_, info_, |  389   manager_.SetLevelInfo(&feature_info_, info_, | 
|  371       GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  390       GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  372   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  391   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  373   // Make mips. |  392   // Make mips. | 
|  374   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  393   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  375   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  394   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  376   EXPECT_TRUE(info_->texture_complete()); |  395   EXPECT_TRUE(info_->texture_complete()); | 
|  377   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  396   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  378 } |  397 } | 
|  379  |  398  | 
|  380 TEST_F(TextureInfoTest, UnusedMips) { |  399 TEST_F(TextureInfoTest, UnusedMips) { | 
|  381   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |  400   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 
|  382   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info_->target()); |  401   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info_->target()); | 
|  383   // Set level zero to large size. |  402   // Set level zero to large size. | 
|  384   manager_.SetLevelInfo(&feature_info_, info_, |  403   manager_.SetLevelInfo(&feature_info_, info_, | 
|  385       GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  404       GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  386   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  405   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  387   EXPECT_FALSE(info_->npot()); |  406   EXPECT_FALSE(info_->npot()); | 
|  388   EXPECT_TRUE(info_->texture_complete()); |  407   EXPECT_TRUE(info_->texture_complete()); | 
|  389   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  408   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  390   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  409   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  391   // Set level zero to large smaller (levels unused mips) |  410   // Set level zero to large smaller (levels unused mips) | 
|  392   manager_.SetLevelInfo(&feature_info_, info_, |  411   manager_.SetLevelInfo(&feature_info_, info_, | 
|  393       GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  412       GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  394   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  413   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  395   EXPECT_FALSE(info_->npot()); |  414   EXPECT_FALSE(info_->npot()); | 
|  396   EXPECT_TRUE(info_->texture_complete()); |  415   EXPECT_TRUE(info_->texture_complete()); | 
|  397   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  416   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  398   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  417   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  399   // Set an unused level to some size |  418   // Set an unused level to some size | 
|  400   manager_.SetLevelInfo(&feature_info_, info_, |  419   manager_.SetLevelInfo(&feature_info_, info_, | 
|  401       GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  420       GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  402   EXPECT_FALSE(info_->npot()); |  421   EXPECT_FALSE(info_->npot()); | 
|  403   EXPECT_TRUE(info_->texture_complete()); |  422   EXPECT_TRUE(info_->texture_complete()); | 
|  404   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  423   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  450   manager.SetInfoTarget(&feature_info_, info, GL_TEXTURE_2D); |  469   manager.SetInfoTarget(&feature_info_, info, GL_TEXTURE_2D); | 
|  451   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); |  470   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), info->target()); | 
|  452   // Check Setting level 0 to NPOT |  471   // Check Setting level 0 to NPOT | 
|  453   manager.SetLevelInfo(&feature_info, info, |  472   manager.SetLevelInfo(&feature_info, info, | 
|  454       GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  473       GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  455   EXPECT_TRUE(info->npot()); |  474   EXPECT_TRUE(info->npot()); | 
|  456   EXPECT_FALSE(info->texture_complete()); |  475   EXPECT_FALSE(info->texture_complete()); | 
|  457   EXPECT_TRUE(info->CanGenerateMipmaps(&feature_info)); |  476   EXPECT_TRUE(info->CanGenerateMipmaps(&feature_info)); | 
|  458   EXPECT_FALSE(info->CanRender(&feature_info)); |  477   EXPECT_FALSE(info->CanRender(&feature_info)); | 
|  459   EXPECT_TRUE(manager.HaveUnrenderableTextures()); |  478   EXPECT_TRUE(manager.HaveUnrenderableTextures()); | 
|  460   EXPECT_TRUE(manager.MarkMipmapsGenerated(&feature_info, info)); |  479   EXPECT_TRUE(manager.MarkMipmapsGenerated(&feature_info, info, true)); | 
|  461   EXPECT_TRUE(info->texture_complete()); |  480   EXPECT_TRUE(info->texture_complete()); | 
|  462   EXPECT_TRUE(info->CanRender(&feature_info)); |  481   EXPECT_TRUE(info->CanRender(&feature_info)); | 
|  463   EXPECT_FALSE(manager.HaveUnrenderableTextures()); |  482   EXPECT_FALSE(manager.HaveUnrenderableTextures()); | 
|  464   manager.Destroy(false); |  483   manager.Destroy(false); | 
|  465 } |  484 } | 
|  466  |  485  | 
|  467 TEST_F(TextureInfoTest, POTCubeMap) { |  486 TEST_F(TextureInfoTest, POTCubeMap) { | 
|  468   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_CUBE_MAP); |  487   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_CUBE_MAP); | 
|  469   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), info_->target()); |  488   EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), info_->target()); | 
|  470   // Check Setting level 0 each face to POT |  489   // Check Setting level 0 each face to POT | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  517       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |  536       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 
|  518       0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  537       0, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  519   EXPECT_FALSE(info_->npot()); |  538   EXPECT_FALSE(info_->npot()); | 
|  520   EXPECT_FALSE(info_->texture_complete()); |  539   EXPECT_FALSE(info_->texture_complete()); | 
|  521   EXPECT_TRUE(info_->cube_complete()); |  540   EXPECT_TRUE(info_->cube_complete()); | 
|  522   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  541   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  523   EXPECT_FALSE(info_->CanRender(&feature_info_)); |  542   EXPECT_FALSE(info_->CanRender(&feature_info_)); | 
|  524   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); |  543   EXPECT_TRUE(manager_.HaveUnrenderableTextures()); | 
|  525  |  544  | 
|  526   // Make mips. |  545   // Make mips. | 
|  527   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  546   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  528   EXPECT_TRUE(info_->texture_complete()); |  547   EXPECT_TRUE(info_->texture_complete()); | 
|  529   EXPECT_TRUE(info_->cube_complete()); |  548   EXPECT_TRUE(info_->cube_complete()); | 
|  530   EXPECT_TRUE(info_->CanRender(&feature_info_)); |  549   EXPECT_TRUE(info_->CanRender(&feature_info_)); | 
|  531   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); |  550   EXPECT_FALSE(manager_.HaveUnrenderableTextures()); | 
|  532  |  551  | 
|  533   // Change a mip. |  552   // Change a mip. | 
|  534   manager_.SetLevelInfo(&feature_info_, info_, |  553   manager_.SetLevelInfo(&feature_info_, info_, | 
|  535       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |  554       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 
|  536       1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  555       1, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  537   EXPECT_FALSE(info_->npot()); |  556   EXPECT_FALSE(info_->npot()); | 
|  538   EXPECT_FALSE(info_->texture_complete()); |  557   EXPECT_FALSE(info_->texture_complete()); | 
|  539   EXPECT_TRUE(info_->cube_complete()); |  558   EXPECT_TRUE(info_->cube_complete()); | 
|  540   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  559   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  541   // Set a level past the number of mips that would get generated. |  560   // Set a level past the number of mips that would get generated. | 
|  542   manager_.SetLevelInfo(&feature_info_, info_, |  561   manager_.SetLevelInfo(&feature_info_, info_, | 
|  543       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, |  562       GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, | 
|  544       3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  563       3, GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  545   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); |  564   EXPECT_TRUE(info_->CanGenerateMipmaps(&feature_info_)); | 
|  546   // Make mips. |  565   // Make mips. | 
|  547   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_)); |  566   EXPECT_TRUE(manager_.MarkMipmapsGenerated(&feature_info_, info_, true)); | 
|  548   EXPECT_TRUE(info_->texture_complete()); |  567   EXPECT_TRUE(info_->texture_complete()); | 
|  549   EXPECT_TRUE(info_->cube_complete()); |  568   EXPECT_TRUE(info_->cube_complete()); | 
|  550 } |  569 } | 
|  551  |  570  | 
|  552 TEST_F(TextureInfoTest, GetLevelSize) { |  571 TEST_F(TextureInfoTest, GetLevelSize) { | 
|  553   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); |  572   manager_.SetInfoTarget(&feature_info_, info_, GL_TEXTURE_2D); | 
|  554   manager_.SetLevelInfo(&feature_info_, info_, |  573   manager_.SetLevelInfo(&feature_info_, info_, | 
|  555       GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); |  574       GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, true); | 
|  556   GLsizei width = -1; |  575   GLsizei width = -1; | 
|  557   GLsizei height = -1; |  576   GLsizei height = -1; | 
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  771   EXPECT_TRUE(info_->SafeToRenderFrom()); |  790   EXPECT_TRUE(info_->SafeToRenderFrom()); | 
|  772   EXPECT_FALSE(manager_.HaveUnsafeTextures()); |  791   EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 
|  773   EXPECT_FALSE(manager_.HaveUnclearedMips()); |  792   EXPECT_FALSE(manager_.HaveUnclearedMips()); | 
|  774   EXPECT_EQ(0, info_->num_uncleared_mips()); |  793   EXPECT_EQ(0, info_->num_uncleared_mips()); | 
|  775   manager_.SetLevelInfo(&feature_info_, info_, |  794   manager_.SetLevelInfo(&feature_info_, info_, | 
|  776       GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, false); |  795       GL_TEXTURE_2D, 1, GL_RGBA, 8, 8, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, false); | 
|  777   EXPECT_FALSE(info_->SafeToRenderFrom()); |  796   EXPECT_FALSE(info_->SafeToRenderFrom()); | 
|  778   EXPECT_TRUE(manager_.HaveUnsafeTextures()); |  797   EXPECT_TRUE(manager_.HaveUnsafeTextures()); | 
|  779   EXPECT_TRUE(manager_.HaveUnclearedMips()); |  798   EXPECT_TRUE(manager_.HaveUnclearedMips()); | 
|  780   EXPECT_EQ(1, info_->num_uncleared_mips()); |  799   EXPECT_EQ(1, info_->num_uncleared_mips()); | 
|  781   manager_.MarkMipmapsGenerated(&feature_info_, info_); |  800   manager_.MarkMipmapsGenerated(&feature_info_, info_, true); | 
|  782   EXPECT_TRUE(info_->SafeToRenderFrom()); |  801   EXPECT_TRUE(info_->SafeToRenderFrom()); | 
|  783   EXPECT_FALSE(manager_.HaveUnsafeTextures()); |  802   EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 
|  784   EXPECT_FALSE(manager_.HaveUnclearedMips()); |  803   EXPECT_FALSE(manager_.HaveUnclearedMips()); | 
|  785   EXPECT_EQ(0, info_->num_uncleared_mips()); |  804   EXPECT_EQ(0, info_->num_uncleared_mips()); | 
|  786  |  805  | 
|  787   manager_.CreateTextureInfo(&feature_info_, kClient2Id, kService2Id); |  806   manager_.CreateTextureInfo(&feature_info_, kClient2Id, kService2Id); | 
|  788   TextureManager::TextureInfo::Ref info2 = manager_.GetTextureInfo(kClient2Id); |  807   TextureManager::TextureInfo::Ref info2 = manager_.GetTextureInfo(kClient2Id); | 
|  789   ASSERT_TRUE(info2.get() != NULL); |  808   ASSERT_TRUE(info2.get() != NULL); | 
|  790   manager_.SetInfoTarget(&feature_info_, info2, GL_TEXTURE_2D); |  809   manager_.SetInfoTarget(&feature_info_, info2, GL_TEXTURE_2D); | 
|  791   EXPECT_FALSE(manager_.HaveUnsafeTextures()); |  810   EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  871   EXPECT_TRUE(info_->SafeToRenderFrom()); |  890   EXPECT_TRUE(info_->SafeToRenderFrom()); | 
|  872   EXPECT_FALSE(manager_.HaveUnsafeTextures()); |  891   EXPECT_FALSE(manager_.HaveUnsafeTextures()); | 
|  873   EXPECT_FALSE(manager_.HaveUnclearedMips()); |  892   EXPECT_FALSE(manager_.HaveUnclearedMips()); | 
|  874   EXPECT_EQ(0, info_->num_uncleared_mips()); |  893   EXPECT_EQ(0, info_->num_uncleared_mips()); | 
|  875 } |  894 } | 
|  876  |  895  | 
|  877 }  // namespace gles2 |  896 }  // namespace gles2 | 
|  878 }  // namespace gpu |  897 }  // namespace gpu | 
|  879  |  898  | 
|  880  |  899  | 
| OLD | NEW |