| 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();
|
| }
|
|
|
|
|