| 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 "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "gpu/command_buffer/service/error_state_mock.h" | 8 #include "gpu/command_buffer/service/error_state_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/framebuffer_manager.h" | 10 #include "gpu/command_buffer/service/framebuffer_manager.h" |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 (kMaxCubeMapTextureSize >> level) * 2, | 311 (kMaxCubeMapTextureSize >> level) * 2, |
| 312 (kMaxCubeMapTextureSize >> level) * 2, | 312 (kMaxCubeMapTextureSize >> level) * 2, |
| 313 1)); | 313 1)); |
| 314 } | 314 } |
| 315 } | 315 } |
| 316 | 316 |
| 317 TEST_F(TextureManagerTest, ValidForTargetNPOT) { | 317 TEST_F(TextureManagerTest, ValidForTargetNPOT) { |
| 318 TestHelper::SetupFeatureInfoInitExpectations( | 318 TestHelper::SetupFeatureInfoInitExpectations( |
| 319 gl_.get(), "GL_OES_texture_npot"); | 319 gl_.get(), "GL_OES_texture_npot"); |
| 320 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 320 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 321 feature_info->Initialize(NULL); | 321 feature_info->Initialize(); |
| 322 TextureManager manager( | 322 TextureManager manager( |
| 323 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 323 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 324 // Check NPOT width on level 0 | 324 // Check NPOT width on level 0 |
| 325 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1)); | 325 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1)); |
| 326 // Check NPOT height on level 0 | 326 // Check NPOT height on level 0 |
| 327 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1)); | 327 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 2, 5, 1)); |
| 328 // Check NPOT width on level 1 | 328 // Check NPOT width on level 1 |
| 329 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); | 329 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 5, 2, 1)); |
| 330 // Check NPOT height on level 1 | 330 // Check NPOT height on level 1 |
| 331 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); | 331 EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 1, 2, 5, 1)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 349 } | 349 } |
| 350 | 350 |
| 351 protected: | 351 protected: |
| 352 void SetUpBase(MemoryTracker* memory_tracker, std::string extensions) { | 352 void SetUpBase(MemoryTracker* memory_tracker, std::string extensions) { |
| 353 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); | 353 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); |
| 354 ::gfx::GLInterface::SetGLInterface(gl_.get()); | 354 ::gfx::GLInterface::SetGLInterface(gl_.get()); |
| 355 | 355 |
| 356 if (!extensions.empty()) { | 356 if (!extensions.empty()) { |
| 357 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), | 357 TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), |
| 358 extensions.c_str()); | 358 extensions.c_str()); |
| 359 feature_info_->Initialize(NULL); | 359 feature_info_->Initialize(); |
| 360 } | 360 } |
| 361 | 361 |
| 362 manager_.reset(new TextureManager( | 362 manager_.reset(new TextureManager( |
| 363 memory_tracker, feature_info_.get(), | 363 memory_tracker, feature_info_.get(), |
| 364 kMaxTextureSize, kMaxCubeMapTextureSize)); | 364 kMaxTextureSize, kMaxCubeMapTextureSize)); |
| 365 decoder_.reset(new ::testing::StrictMock<gles2::MockGLES2Decoder>()); | 365 decoder_.reset(new ::testing::StrictMock<gles2::MockGLES2Decoder>()); |
| 366 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); | 366 error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
| 367 manager_->CreateTexture(kClient1Id, kService1Id); | 367 manager_->CreateTexture(kClient1Id, kService1Id); |
| 368 texture_ref_ = manager_->GetTexture(kClient1Id); | 368 texture_ref_ = manager_->GetTexture(kClient1Id); |
| 369 ASSERT_TRUE(texture_ref_.get() != NULL); | 369 ASSERT_TRUE(texture_ref_.get() != NULL); |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 789 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
| 790 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 790 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 791 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 791 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
| 792 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 792 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 793 } | 793 } |
| 794 | 794 |
| 795 TEST_F(TextureTest, NPOT2DNPOTOK) { | 795 TEST_F(TextureTest, NPOT2DNPOTOK) { |
| 796 TestHelper::SetupFeatureInfoInitExpectations( | 796 TestHelper::SetupFeatureInfoInitExpectations( |
| 797 gl_.get(), "GL_OES_texture_npot"); | 797 gl_.get(), "GL_OES_texture_npot"); |
| 798 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 798 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 799 feature_info->Initialize(NULL); | 799 feature_info->Initialize(); |
| 800 TextureManager manager( | 800 TextureManager manager( |
| 801 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 801 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 802 manager.CreateTexture(kClient1Id, kService1Id); | 802 manager.CreateTexture(kClient1Id, kService1Id); |
| 803 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 803 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 804 ASSERT_TRUE(texture_ref != NULL); | 804 ASSERT_TRUE(texture_ref != NULL); |
| 805 Texture* texture = texture_ref->texture(); | 805 Texture* texture = texture_ref->texture(); |
| 806 | 806 |
| 807 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 807 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 808 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 808 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 809 // Check Setting level 0 to NPOT | 809 // Check Setting level 0 to NPOT |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1080 GL_TEXTURE_2D, 1, 1, 1, 2, 3, GL_RGBA, GL_UNSIGNED_BYTE)); | 1080 GL_TEXTURE_2D, 1, 1, 1, 2, 3, GL_RGBA, GL_UNSIGNED_BYTE)); |
| 1081 manager_->RemoveTexture(kClient1Id); | 1081 manager_->RemoveTexture(kClient1Id); |
| 1082 EXPECT_TRUE(texture->ValidForTexture( | 1082 EXPECT_TRUE(texture->ValidForTexture( |
| 1083 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); | 1083 GL_TEXTURE_2D, 1, 0, 0, 4, 5, GL_RGBA, GL_UNSIGNED_BYTE)); |
| 1084 } | 1084 } |
| 1085 | 1085 |
| 1086 TEST_F(TextureTest, FloatNotLinear) { | 1086 TEST_F(TextureTest, FloatNotLinear) { |
| 1087 TestHelper::SetupFeatureInfoInitExpectations( | 1087 TestHelper::SetupFeatureInfoInitExpectations( |
| 1088 gl_.get(), "GL_OES_texture_float"); | 1088 gl_.get(), "GL_OES_texture_float"); |
| 1089 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1089 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1090 feature_info->Initialize(NULL); | 1090 feature_info->Initialize(); |
| 1091 TextureManager manager( | 1091 TextureManager manager( |
| 1092 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1092 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1093 manager.CreateTexture(kClient1Id, kService1Id); | 1093 manager.CreateTexture(kClient1Id, kService1Id); |
| 1094 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1094 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1095 ASSERT_TRUE(texture_ref != NULL); | 1095 ASSERT_TRUE(texture_ref != NULL); |
| 1096 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 1096 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 1097 Texture* texture = texture_ref->texture(); | 1097 Texture* texture = texture_ref->texture(); |
| 1098 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 1098 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 1099 manager.SetLevelInfo(texture_ref, | 1099 manager.SetLevelInfo(texture_ref, |
| 1100 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); | 1100 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); |
| 1101 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 1101 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 1102 TestHelper::SetTexParameterWithExpectations( | 1102 TestHelper::SetTexParameterWithExpectations( |
| 1103 gl_.get(), error_state_.get(), &manager, | 1103 gl_.get(), error_state_.get(), &manager, |
| 1104 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); | 1104 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); |
| 1105 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 1105 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 1106 TestHelper::SetTexParameterWithExpectations( | 1106 TestHelper::SetTexParameterWithExpectations( |
| 1107 gl_.get(), error_state_.get(), &manager, texture_ref, | 1107 gl_.get(), error_state_.get(), &manager, texture_ref, |
| 1108 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); | 1108 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); |
| 1109 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 1109 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 1110 manager.Destroy(false); | 1110 manager.Destroy(false); |
| 1111 } | 1111 } |
| 1112 | 1112 |
| 1113 TEST_F(TextureTest, FloatLinear) { | 1113 TEST_F(TextureTest, FloatLinear) { |
| 1114 TestHelper::SetupFeatureInfoInitExpectations( | 1114 TestHelper::SetupFeatureInfoInitExpectations( |
| 1115 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear"); | 1115 gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear"); |
| 1116 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1116 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1117 feature_info->Initialize(NULL); | 1117 feature_info->Initialize(); |
| 1118 TextureManager manager( | 1118 TextureManager manager( |
| 1119 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1119 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1120 manager.CreateTexture(kClient1Id, kService1Id); | 1120 manager.CreateTexture(kClient1Id, kService1Id); |
| 1121 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1121 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1122 ASSERT_TRUE(texture_ref != NULL); | 1122 ASSERT_TRUE(texture_ref != NULL); |
| 1123 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 1123 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 1124 Texture* texture = texture_ref->texture(); | 1124 Texture* texture = texture_ref->texture(); |
| 1125 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 1125 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 1126 manager.SetLevelInfo(texture_ref, | 1126 manager.SetLevelInfo(texture_ref, |
| 1127 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); | 1127 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_FLOAT, true); |
| 1128 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 1128 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 1129 manager.Destroy(false); | 1129 manager.Destroy(false); |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 TEST_F(TextureTest, HalfFloatNotLinear) { | 1132 TEST_F(TextureTest, HalfFloatNotLinear) { |
| 1133 TestHelper::SetupFeatureInfoInitExpectations( | 1133 TestHelper::SetupFeatureInfoInitExpectations( |
| 1134 gl_.get(), "GL_OES_texture_half_float"); | 1134 gl_.get(), "GL_OES_texture_half_float"); |
| 1135 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1135 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1136 feature_info->Initialize(NULL); | 1136 feature_info->Initialize(); |
| 1137 TextureManager manager( | 1137 TextureManager manager( |
| 1138 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1138 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1139 manager.CreateTexture(kClient1Id, kService1Id); | 1139 manager.CreateTexture(kClient1Id, kService1Id); |
| 1140 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1140 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1141 ASSERT_TRUE(texture_ref != NULL); | 1141 ASSERT_TRUE(texture_ref != NULL); |
| 1142 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 1142 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 1143 Texture* texture = texture_ref->texture(); | 1143 Texture* texture = texture_ref->texture(); |
| 1144 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 1144 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 1145 manager.SetLevelInfo(texture_ref, | 1145 manager.SetLevelInfo(texture_ref, |
| 1146 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); | 1146 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); |
| 1147 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 1147 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 1148 TestHelper::SetTexParameterWithExpectations( | 1148 TestHelper::SetTexParameterWithExpectations( |
| 1149 gl_.get(), error_state_.get(), &manager, | 1149 gl_.get(), error_state_.get(), &manager, |
| 1150 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); | 1150 texture_ref, GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); |
| 1151 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 1151 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
| 1152 TestHelper::SetTexParameterWithExpectations( | 1152 TestHelper::SetTexParameterWithExpectations( |
| 1153 gl_.get(), error_state_.get(), &manager, texture_ref, | 1153 gl_.get(), error_state_.get(), &manager, texture_ref, |
| 1154 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); | 1154 GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST, GL_NO_ERROR); |
| 1155 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 1155 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 1156 manager.Destroy(false); | 1156 manager.Destroy(false); |
| 1157 } | 1157 } |
| 1158 | 1158 |
| 1159 TEST_F(TextureTest, HalfFloatLinear) { | 1159 TEST_F(TextureTest, HalfFloatLinear) { |
| 1160 TestHelper::SetupFeatureInfoInitExpectations( | 1160 TestHelper::SetupFeatureInfoInitExpectations( |
| 1161 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); | 1161 gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); |
| 1162 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1162 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1163 feature_info->Initialize(NULL); | 1163 feature_info->Initialize(); |
| 1164 TextureManager manager( | 1164 TextureManager manager( |
| 1165 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1165 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1166 manager.CreateTexture(kClient1Id, kService1Id); | 1166 manager.CreateTexture(kClient1Id, kService1Id); |
| 1167 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1167 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1168 ASSERT_TRUE(texture_ref != NULL); | 1168 ASSERT_TRUE(texture_ref != NULL); |
| 1169 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 1169 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 1170 Texture* texture = texture_ref->texture(); | 1170 Texture* texture = texture_ref->texture(); |
| 1171 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 1171 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 1172 manager.SetLevelInfo(texture_ref, | 1172 manager.SetLevelInfo(texture_ref, |
| 1173 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); | 1173 GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, GL_HALF_FLOAT_OES, true); |
| 1174 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 1174 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
| 1175 manager.Destroy(false); | 1175 manager.Destroy(false); |
| 1176 } | 1176 } |
| 1177 | 1177 |
| 1178 TEST_F(TextureTest, EGLImageExternal) { | 1178 TEST_F(TextureTest, EGLImageExternal) { |
| 1179 TestHelper::SetupFeatureInfoInitExpectations( | 1179 TestHelper::SetupFeatureInfoInitExpectations( |
| 1180 gl_.get(), "GL_OES_EGL_image_external"); | 1180 gl_.get(), "GL_OES_EGL_image_external"); |
| 1181 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1181 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1182 feature_info->Initialize(NULL); | 1182 feature_info->Initialize(); |
| 1183 TextureManager manager( | 1183 TextureManager manager( |
| 1184 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1184 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1185 manager.CreateTexture(kClient1Id, kService1Id); | 1185 manager.CreateTexture(kClient1Id, kService1Id); |
| 1186 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1186 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1187 ASSERT_TRUE(texture_ref != NULL); | 1187 ASSERT_TRUE(texture_ref != NULL); |
| 1188 manager.SetTarget(texture_ref, GL_TEXTURE_EXTERNAL_OES); | 1188 manager.SetTarget(texture_ref, GL_TEXTURE_EXTERNAL_OES); |
| 1189 Texture* texture = texture_ref->texture(); | 1189 Texture* texture = texture_ref->texture(); |
| 1190 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), texture->target()); | 1190 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_EXTERNAL_OES), texture->target()); |
| 1191 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); | 1191 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); |
| 1192 manager.Destroy(false); | 1192 manager.Destroy(false); |
| 1193 } | 1193 } |
| 1194 | 1194 |
| 1195 TEST_F(TextureTest, DepthTexture) { | 1195 TEST_F(TextureTest, DepthTexture) { |
| 1196 TestHelper::SetupFeatureInfoInitExpectations( | 1196 TestHelper::SetupFeatureInfoInitExpectations( |
| 1197 gl_.get(), "GL_ANGLE_depth_texture"); | 1197 gl_.get(), "GL_ANGLE_depth_texture"); |
| 1198 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 1198 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
| 1199 feature_info->Initialize(NULL); | 1199 feature_info->Initialize(); |
| 1200 TextureManager manager( | 1200 TextureManager manager( |
| 1201 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); | 1201 NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
| 1202 manager.CreateTexture(kClient1Id, kService1Id); | 1202 manager.CreateTexture(kClient1Id, kService1Id); |
| 1203 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 1203 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
| 1204 ASSERT_TRUE(texture_ref != NULL); | 1204 ASSERT_TRUE(texture_ref != NULL); |
| 1205 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 1205 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
| 1206 manager.SetLevelInfo( | 1206 manager.SetLevelInfo( |
| 1207 texture_ref, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4, 1, 0, | 1207 texture_ref, GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 4, 4, 1, 0, |
| 1208 GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, false); | 1208 GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, false); |
| 1209 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); | 1209 EXPECT_FALSE(manager.CanGenerateMipmaps(texture_ref)); |
| (...skipping 1134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2344 .Times(1) | 2344 .Times(1) |
| 2345 .RetiresOnSaturation(); | 2345 .RetiresOnSaturation(); |
| 2346 ref2 = NULL; | 2346 ref2 = NULL; |
| 2347 texture_manager2_->RemoveTexture(20); | 2347 texture_manager2_->RemoveTexture(20); |
| 2348 EXPECT_EQ(initial_memory2, | 2348 EXPECT_EQ(initial_memory2, |
| 2349 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); | 2349 memory_tracker2_->GetSize(MemoryTracker::kUnmanaged)); |
| 2350 } | 2350 } |
| 2351 | 2351 |
| 2352 } // namespace gles2 | 2352 } // namespace gles2 |
| 2353 } // namespace gpu | 2353 } // namespace gpu |
| OLD | NEW |