Index: gpu/command_buffer/service/texture_manager_unittest.cc |
diff --git a/gpu/command_buffer/service/texture_manager_unittest.cc b/gpu/command_buffer/service/texture_manager_unittest.cc |
index ae88a99d02647f2b54c4435b178ccd54a5778625..873511d3d359e46ad596c27de72e5bf7a628f587 100644 |
--- a/gpu/command_buffer/service/texture_manager_unittest.cc |
+++ b/gpu/command_buffer/service/texture_manager_unittest.cc |
@@ -47,10 +47,9 @@ class TextureManagerTest : public testing::Test { |
static const GLint kMax2dLevels = 5; |
static const GLint kMaxCubeMapLevels = 4; |
static const GLint kMaxExternalLevels = 1; |
+ static const bool kUseDefaultTextures = false; |
- TextureManagerTest() |
- : feature_info_(new FeatureInfo()) { |
- } |
+ TextureManagerTest() : feature_info_(new FeatureInfo()) {} |
virtual ~TextureManagerTest() { |
} |
@@ -60,10 +59,13 @@ class TextureManagerTest : public testing::Test { |
gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); |
::gfx::MockGLInterface::SetGLInterface(gl_.get()); |
- manager_.reset(new TextureManager( |
- NULL, feature_info_.get(), |
- kMaxTextureSize, kMaxCubeMapTextureSize)); |
- TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); |
+ manager_.reset(new TextureManager(NULL, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures)); |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "", kUseDefaultTextures); |
manager_->Initialize(); |
error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
} |
@@ -162,11 +164,54 @@ TEST_F(TextureManagerTest, SetParameter) { |
SetParameter(texture_ref, GL_TEXTURE_MAX_ANISOTROPY_EXT, 0, GL_INVALID_VALUE); |
} |
+TEST_F(TextureManagerTest, UseDefaultTexturesTrue) { |
+ bool use_default_textures = true; |
+ scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
+ |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "GL_ANGLE_texture_usage", use_default_textures); |
+ TextureManager manager(NULL, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ use_default_textures); |
+ manager.Initialize(); |
+ |
+ EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) != NULL); |
+ EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) != NULL); |
+ |
+ // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. |
+ |
+ manager.Destroy(false); |
+} |
+ |
+TEST_F(TextureManagerTest, UseDefaultTexturesFalse) { |
+ bool use_default_textures = false; |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "GL_ANGLE_texture_usage", use_default_textures); |
+ TextureManager manager(NULL, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ use_default_textures); |
+ manager.Initialize(); |
+ |
+ EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_2D) == NULL); |
+ EXPECT_TRUE(manager.GetDefaultTextureInfo(GL_TEXTURE_CUBE_MAP) == NULL); |
+ |
+ // TODO(vmiura): Test GL_TEXTURE_EXTERNAL_OES & GL_TEXTURE_RECTANGLE_ARB. |
+ |
+ manager.Destroy(false); |
+} |
+ |
TEST_F(TextureManagerTest, TextureUsageExt) { |
- TestHelper::SetupTextureManagerInitExpectations(gl_.get(), |
- "GL_ANGLE_texture_usage"); |
- TextureManager manager( |
- NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "GL_ANGLE_texture_usage", kUseDefaultTextures); |
+ TextureManager manager(NULL, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.Initialize(); |
const GLuint kClient1Id = 1; |
const GLuint kService1Id = 11; |
@@ -186,9 +231,13 @@ TEST_F(TextureManagerTest, TextureUsageExt) { |
TEST_F(TextureManagerTest, Destroy) { |
const GLuint kClient1Id = 1; |
const GLuint kService1Id = 11; |
- TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); |
- TextureManager manager( |
- NULL, feature_info_.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "", kUseDefaultTextures); |
+ TextureManager manager(NULL, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.Initialize(); |
// Check we can create texture. |
manager.CreateTexture(kClient1Id, kService1Id); |
@@ -198,7 +247,8 @@ TEST_F(TextureManagerTest, Destroy) { |
EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService1Id))) |
.Times(1) |
.RetiresOnSaturation(); |
- TestHelper::SetupTextureManagerDestructionExpectations(gl_.get(), ""); |
+ TestHelper::SetupTextureManagerDestructionExpectations( |
+ gl_.get(), "", kUseDefaultTextures); |
manager.Destroy(true); |
// Check that resources got freed. |
texture = manager.GetTexture(kClient1Id); |
@@ -319,8 +369,11 @@ TEST_F(TextureManagerTest, ValidForTargetNPOT) { |
gl_.get(), "GL_OES_texture_npot"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
// Check NPOT width on level 0 |
EXPECT_TRUE(manager.ValidForTarget(GL_TEXTURE_2D, 0, 5, 2, 1)); |
// Check NPOT height on level 0 |
@@ -340,6 +393,7 @@ class TextureTestBase : public testing::Test { |
static const GLint kMaxCubeMapLevels = 4; |
static const GLuint kClient1Id = 1; |
static const GLuint kService1Id = 11; |
+ static const bool kUseDefaultTextures = false; |
TextureTestBase() |
: feature_info_(new FeatureInfo()) { |
@@ -359,9 +413,11 @@ class TextureTestBase : public testing::Test { |
feature_info_->Initialize(); |
} |
- manager_.reset(new TextureManager( |
- memory_tracker, feature_info_.get(), |
- kMaxTextureSize, kMaxCubeMapTextureSize)); |
+ manager_.reset(new TextureManager(memory_tracker, |
+ feature_info_.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures)); |
decoder_.reset(new ::testing::StrictMock<gles2::MockGLES2Decoder>()); |
error_state_.reset(new ::testing::StrictMock<gles2::MockErrorState>()); |
manager_->CreateTexture(kClient1Id, kService1Id); |
@@ -795,8 +851,11 @@ TEST_F(TextureTest, NPOT2DNPOTOK) { |
gl_.get(), "GL_OES_texture_npot"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1083,8 +1142,11 @@ TEST_F(TextureTest, FloatNotLinear) { |
gl_.get(), "GL_OES_texture_float"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1110,8 +1172,11 @@ TEST_F(TextureTest, FloatLinear) { |
gl_.get(), "GL_OES_texture_float GL_OES_texture_float_linear"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1129,8 +1194,11 @@ TEST_F(TextureTest, HalfFloatNotLinear) { |
gl_.get(), "GL_OES_texture_half_float"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1156,8 +1224,11 @@ TEST_F(TextureTest, HalfFloatLinear) { |
gl_.get(), "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1175,8 +1246,11 @@ TEST_F(TextureTest, EGLImageExternal) { |
gl_.get(), "GL_OES_EGL_image_external"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -1192,8 +1266,11 @@ TEST_F(TextureTest, DepthTexture) { |
gl_.get(), "GL_ANGLE_depth_texture"); |
scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
feature_info->Initialize(); |
- TextureManager manager( |
- NULL, feature_info.get(), kMaxTextureSize, kMaxCubeMapTextureSize); |
+ TextureManager manager(NULL, |
+ feature_info.get(), |
+ kMaxTextureSize, |
+ kMaxCubeMapTextureSize, |
+ kUseDefaultTextures); |
manager.CreateTexture(kClient1Id, kService1Id); |
TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
ASSERT_TRUE(texture_ref != NULL); |
@@ -2126,9 +2203,9 @@ class CountingMemoryTracker : public MemoryTracker { |
class SharedTextureTest : public testing::Test { |
public: |
- SharedTextureTest() |
- : feature_info_(new FeatureInfo()) { |
- } |
+ static const bool kUseDefaultTextures = false; |
+ |
+ SharedTextureTest() : feature_info_(new FeatureInfo()) {} |
virtual ~SharedTextureTest() { |
} |
@@ -2142,16 +2219,20 @@ class SharedTextureTest : public testing::Test { |
new TextureManager(memory_tracker1_.get(), |
feature_info_.get(), |
TextureManagerTest::kMaxTextureSize, |
- TextureManagerTest::kMaxCubeMapTextureSize)); |
+ TextureManagerTest::kMaxCubeMapTextureSize, |
+ kUseDefaultTextures)); |
memory_tracker2_ = new CountingMemoryTracker; |
texture_manager2_.reset( |
new TextureManager(memory_tracker2_.get(), |
feature_info_.get(), |
TextureManagerTest::kMaxTextureSize, |
- TextureManagerTest::kMaxCubeMapTextureSize)); |
- TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); |
+ TextureManagerTest::kMaxCubeMapTextureSize, |
+ kUseDefaultTextures)); |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "", kUseDefaultTextures); |
texture_manager1_->Initialize(); |
- TestHelper::SetupTextureManagerInitExpectations(gl_.get(), ""); |
+ TestHelper::SetupTextureManagerInitExpectations( |
+ gl_.get(), "", kUseDefaultTextures); |
texture_manager2_->Initialize(); |
} |