| 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 857db18bb57709a68607fcfef8046cb2c06f4255..3245fa071864256d053576a6820c686efa935b4d 100644
|
| --- a/gpu/command_buffer/service/texture_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/texture_manager_unittest.cc
|
| @@ -178,6 +178,8 @@ class GLStreamTextureImageStub : public GLStreamTextureImage {
|
| ~GLStreamTextureImageStub() override {}
|
| };
|
|
|
| +// TODO(yunchao) add test cases for 3D texture and 2D_ARRAY texture
|
| +
|
| TEST_F(TextureManagerTest, Basic) {
|
| const GLuint kClient1Id = 1;
|
| const GLuint kService1Id = 11;
|
| @@ -1280,38 +1282,38 @@ TEST_F(TextureTest, GetLevelType) {
|
|
|
| TEST_F(TextureTest, ValidForTexture) {
|
| manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D);
|
| - manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 6,
|
| + manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 5, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5));
|
| // Check bad face.
|
| Texture* texture = texture_ref_->texture();
|
| EXPECT_FALSE(texture->ValidForTexture(
|
| - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 0, 0, 0, 4, 5, 6));
|
| + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, 0, 0, 0, 4, 5, 1));
|
| // Check bad level.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 0, 0, 0, 0, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 0, 0, 0, 0, 4, 5, 1));
|
| // Check bad xoffset.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, -1, 0, 0, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, -1, 0, 0, 4, 5, 1));
|
| // Check bad xoffset + width > width.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 0, 0, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 0, 0, 4, 5, 1));
|
| // Check bad yoffset.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, -1, 0, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, -1, 0, 4, 5, 1));
|
| // Check bad yoffset + height > height.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 1, 0, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 1, 0, 4, 5, 1));
|
| // Check bad zoffset.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, -1, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, -1, 4, 5, 1));
|
| // Check bad zoffset + depth > depth.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 1, 4, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 1, 4, 5, 1));
|
| // Check bad width.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 5, 5, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 5, 5, 1));
|
| // Check bad height.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 6, 6));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 6, 1));
|
| // Check bad depth.
|
| - EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 7));
|
| + EXPECT_FALSE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 2));
|
| // Check valid full size
|
| - EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6));
|
| + EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 1));
|
| // Check valid particial size.
|
| - EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 1, 2, 3, 4));
|
| + EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 1, 1, 0, 2, 3, 1));
|
| manager_->RemoveTexture(kClient1Id);
|
| - EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 6));
|
| + EXPECT_TRUE(texture->ValidForTexture(GL_TEXTURE_2D, 1, 0, 0, 0, 4, 5, 1));
|
| }
|
|
|
| TEST_F(TextureTest, FloatNotLinear) {
|
| @@ -1491,7 +1493,7 @@ TEST_F(TextureTest, SafeUnsafe) {
|
| EXPECT_TRUE(manager_->HaveUnsafeTextures());
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(1, texture->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, true);
|
| + manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, true);
|
| EXPECT_TRUE(texture->SafeToRenderFrom());
|
| EXPECT_FALSE(manager_->HaveUnsafeTextures());
|
| EXPECT_FALSE(manager_->HaveUnclearedMips());
|
| @@ -1502,7 +1504,7 @@ TEST_F(TextureTest, SafeUnsafe) {
|
| EXPECT_TRUE(manager_->HaveUnsafeTextures());
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(1, texture->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, true);
|
| + manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, true);
|
| EXPECT_TRUE(texture->SafeToRenderFrom());
|
| EXPECT_FALSE(manager_->HaveUnsafeTextures());
|
| EXPECT_FALSE(manager_->HaveUnclearedMips());
|
| @@ -1515,12 +1517,12 @@ TEST_F(TextureTest, SafeUnsafe) {
|
| EXPECT_TRUE(manager_->HaveUnsafeTextures());
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(2, texture->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, true);
|
| + manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, true);
|
| EXPECT_FALSE(texture->SafeToRenderFrom());
|
| EXPECT_TRUE(manager_->HaveUnsafeTextures());
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(1, texture->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, true);
|
| + manager_->SetLevelCleared(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, true);
|
| EXPECT_TRUE(texture->SafeToRenderFrom());
|
| EXPECT_FALSE(manager_->HaveUnsafeTextures());
|
| EXPECT_FALSE(manager_->HaveUnclearedMips());
|
| @@ -1569,11 +1571,11 @@ TEST_F(TextureTest, SafeUnsafe) {
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| Texture* texture3 = texture_ref3->texture();
|
| EXPECT_EQ(1, texture3->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref2.get(), GL_TEXTURE_2D, 0, true);
|
| + manager_->SetLevelCleared(texture_ref2.get(), GL_TEXTURE_2D, 0, 0, true);
|
| EXPECT_TRUE(manager_->HaveUnsafeTextures());
|
| EXPECT_TRUE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(0, texture2->num_uncleared_mips());
|
| - manager_->SetLevelCleared(texture_ref3.get(), GL_TEXTURE_2D, 0, true);
|
| + manager_->SetLevelCleared(texture_ref3.get(), GL_TEXTURE_2D, 0, 0, true);
|
| EXPECT_FALSE(manager_->HaveUnsafeTextures());
|
| EXPECT_FALSE(manager_->HaveUnclearedMips());
|
| EXPECT_EQ(0, texture3->num_uncleared_mips());
|
| @@ -1681,24 +1683,24 @@ TEST_F(TextureTest, GetLevelImage) {
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
|
| Texture* texture = texture_ref_->texture();
|
| - EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| // Set image.
|
| scoped_refptr<gl::GLImage> image(new gl::GLImageStub);
|
| - manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get(),
|
| + manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, image.get(),
|
| Texture::BOUND);
|
| - EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
|
| - EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1) == NULL);
|
| + EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| // Remove it.
|
| - manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, nullptr,
|
| + manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, nullptr,
|
| Texture::UNBOUND);
|
| - EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
|
| - manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, image.get(),
|
| + EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| + manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 1, 0, image.get(),
|
| Texture::UNBOUND);
|
| // Image should be reset when SetLevelInfo is called.
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
|
| - EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1) == NULL);
|
| - EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_2D, 1, 0) == NULL);
|
| }
|
|
|
| TEST_F(TextureTest, GetLevelStreamTextureImage) {
|
| @@ -1711,30 +1713,31 @@ TEST_F(TextureTest, GetLevelStreamTextureImage) {
|
| // Set image.
|
| scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub);
|
| manager_->SetLevelStreamTextureImage(texture_ref_.get(),
|
| - GL_TEXTURE_EXTERNAL_OES, 0, image.get(),
|
| - Texture::BOUND, 0);
|
| - EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL);
|
| + GL_TEXTURE_EXTERNAL_OES, 0, 0,
|
| + image.get(), Texture::BOUND, 0);
|
| + EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL);
|
| EXPECT_FALSE(
|
| - texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL);
|
| + texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) ==
|
| + NULL);
|
|
|
| // Replace it as a normal image.
|
| scoped_refptr<gl::GLImage> image2(new gl::GLImageStub);
|
| - manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0,
|
| + manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0,
|
| image2.get(), Texture::BOUND);
|
| - EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL);
|
| - EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) ==
|
| - NULL);
|
| + EXPECT_FALSE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0)
|
| + == NULL);
|
|
|
| // Image should be reset when SetLevelInfo is called.
|
| manager_->SetLevelStreamTextureImage(texture_ref_.get(),
|
| - GL_TEXTURE_EXTERNAL_OES, 0, image.get(),
|
| - Texture::UNBOUND, 0);
|
| + GL_TEXTURE_EXTERNAL_OES, 0, 0,
|
| + image.get(), Texture::UNBOUND, 0);
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0,
|
| GL_RGBA, 2, 2, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
| gfx::Rect(2, 2));
|
| - EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0) == NULL);
|
| - EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0) ==
|
| - NULL);
|
| + EXPECT_TRUE(texture->GetLevelImage(GL_TEXTURE_EXTERNAL_OES, 0, 0) == NULL);
|
| + EXPECT_TRUE(texture->GetLevelStreamTextureImage(GL_TEXTURE_EXTERNAL_OES, 0, 0)
|
| + == NULL);
|
| }
|
|
|
| TEST_F(TextureTest, SetLevelImageState) {
|
| @@ -1744,14 +1747,14 @@ TEST_F(TextureTest, SetLevelImageState) {
|
| Texture* texture = texture_ref_->texture();
|
| // Set image, initially BOUND.
|
| scoped_refptr<gl::GLImage> image(new gl::GLImageStub);
|
| - manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 0, image.get(),
|
| + manager_->SetLevelImage(texture_ref_.get(), GL_TEXTURE_2D, 0, 0, image.get(),
|
| Texture::BOUND);
|
| Texture::ImageState state;
|
| - texture->GetLevelImage(GL_TEXTURE_2D, 0, &state);
|
| + texture->GetLevelImage(GL_TEXTURE_2D, 0, 0, &state);
|
| EXPECT_EQ(state, Texture::BOUND);
|
| // Change the state.
|
| - texture->SetLevelImageState(GL_TEXTURE_2D, 0, Texture::COPIED);
|
| - texture->GetLevelImage(GL_TEXTURE_2D, 0, &state);
|
| + texture->SetLevelImageState(GL_TEXTURE_2D, 0, 0, Texture::COPIED);
|
| + texture->GetLevelImage(GL_TEXTURE_2D, 0, 0, &state);
|
| EXPECT_EQ(state, Texture::COPIED);
|
| }
|
|
|
| @@ -1771,7 +1774,7 @@ TEST_F(TextureTest, SetStreamTextureImageServiceID) {
|
| GLuint stream_texture_service_id = service_id + 1;
|
| scoped_refptr<GLStreamTextureImage> image(new GLStreamTextureImageStub);
|
| manager_->SetLevelStreamTextureImage(
|
| - texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, image.get(),
|
| + texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0, image.get(),
|
| Texture::BOUND, stream_texture_service_id);
|
|
|
| // Make sure that service_id() changed but owned_service_id() didn't.
|
| @@ -1780,8 +1783,8 @@ TEST_F(TextureTest, SetStreamTextureImageServiceID) {
|
|
|
| // Undo the override.
|
| manager_->SetLevelStreamTextureImage(texture_ref_.get(),
|
| - GL_TEXTURE_EXTERNAL_OES, 0, image.get(),
|
| - Texture::BOUND, 0);
|
| + GL_TEXTURE_EXTERNAL_OES, 0, 0,
|
| + image.get(), Texture::BOUND, 0);
|
|
|
| // The service IDs should be back as they were.
|
| EXPECT_EQ(service_id, texture->service_id());
|
| @@ -1789,7 +1792,7 @@ TEST_F(TextureTest, SetStreamTextureImageServiceID) {
|
|
|
| // Override again, so that we can check delete behavior.
|
| manager_->SetLevelStreamTextureImage(
|
| - texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, image.get(),
|
| + texture_ref_.get(), GL_TEXTURE_EXTERNAL_OES, 0, 0, image.get(),
|
| Texture::BOUND, stream_texture_service_id);
|
|
|
| // Remove the Texture. It should delete the texture id that it owns, even
|
| @@ -1817,7 +1820,8 @@ TEST_F(TextureTest, AddToSignature) {
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
|
| std::string signature1;
|
| std::string signature2;
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature1);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature1);
|
|
|
| std::set<std::string> string_set;
|
| EXPECT_FALSE(InSet(&string_set, signature1));
|
| @@ -1825,66 +1829,69 @@ TEST_F(TextureTest, AddToSignature) {
|
| // check changing 1 thing makes a different signature.
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 2));
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| // check putting it back makes the same signature.
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2));
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_EQ(signature1, signature2);
|
|
|
| // Check setting cleared status does not change signature.
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_EQ(signature1, signature2);
|
|
|
| // Check changing other settings changes signature.
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 4, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| - EXPECT_FALSE(InSet(&string_set, signature2));
|
| -
|
| - manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 2,
|
| - 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| - signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 1, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGB, GL_UNSIGNED_BYTE, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_FLOAT, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| // put it back
|
| manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1,
|
| 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_EQ(signature1, signature2);
|
|
|
| // check changing parameters changes signature.
|
| SetParameter(
|
| texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR);
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| SetParameter(texture_ref_.get(),
|
| @@ -1894,7 +1901,8 @@ TEST_F(TextureTest, AddToSignature) {
|
| SetParameter(
|
| texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR);
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| SetParameter(
|
| @@ -1902,24 +1910,27 @@ TEST_F(TextureTest, AddToSignature) {
|
| SetParameter(
|
| texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR);
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_REPEAT, GL_NO_ERROR);
|
| SetParameter(
|
| texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR);
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_FALSE(InSet(&string_set, signature2));
|
|
|
| // Check putting it back genenerates the same signature
|
| SetParameter(texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_REPEAT, GL_NO_ERROR);
|
| signature2.clear();
|
| - manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D, 1, &signature2);
|
| + manager_->AddToSignature(texture_ref_.get(), GL_TEXTURE_2D,
|
| + 1, 0, &signature2);
|
| EXPECT_EQ(signature1, signature2);
|
|
|
| // Check the set was acutally getting different signatures.
|
| - EXPECT_EQ(11u, string_set.size());
|
| + EXPECT_EQ(10u, string_set.size());
|
| }
|
|
|
| class ProduceConsumeTextureTest : public TextureTest,
|
| @@ -2013,7 +2024,7 @@ class ProduceConsumeTextureTest : public TextureTest,
|
| &info.height, &info.depth));
|
| EXPECT_TRUE(texture->GetLevelType(target, level, &info.type,
|
| &info.format));
|
| - info.cleared_rect = texture->GetLevelClearedRect(target, level);
|
| + info.cleared_rect = texture->GetLevelClearedRect(target, level, 0);
|
| return info;
|
| }
|
|
|
| @@ -2141,7 +2152,7 @@ TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) {
|
| scoped_refptr<gl::GLImage> image(new gl::GLImageStub);
|
| manager_->SetLevelInfo(texture_ref_.get(), target, 0, GL_RGBA, 0, 0, 1, 0,
|
| GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect());
|
| - manager_->SetLevelImage(texture_ref_.get(), target, 0, image.get(),
|
| + manager_->SetLevelImage(texture_ref_.get(), target, 0, 0, image.get(),
|
| Texture::BOUND);
|
| GLuint service_id = texture->service_id();
|
| Texture* produced_texture = Produce(texture_ref_.get());
|
| @@ -2152,7 +2163,8 @@ TEST_P(ProduceConsumeTextureTest, ProduceConsumeTextureWithImage) {
|
| scoped_refptr<TextureRef> restored_texture = manager_->GetTexture(client_id);
|
| EXPECT_EQ(produced_texture, restored_texture->texture());
|
| EXPECT_EQ(service_id, restored_texture->service_id());
|
| - EXPECT_EQ(image.get(), restored_texture->texture()->GetLevelImage(target, 0));
|
| + EXPECT_EQ(image.get(),
|
| + restored_texture->texture()->GetLevelImage(target, 0, 0));
|
| }
|
|
|
| static const GLenum kTextureTargets[] = {GL_TEXTURE_2D, GL_TEXTURE_EXTERNAL_OES,
|
| @@ -2325,7 +2337,7 @@ TEST_F(SharedTextureTest, TextureSafetyAccounting) {
|
| EXPECT_TRUE(texture_manager2_->HaveUnclearedMips());
|
|
|
| // Make texture cleared on one texture manager, should affect other one.
|
| - texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true);
|
| + texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, 0, true);
|
| EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures());
|
| EXPECT_FALSE(texture_manager1_->HaveUnclearedMips());
|
| EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures());
|
| @@ -2461,15 +2473,15 @@ TEST_F(SharedTextureTest, Images) {
|
| EXPECT_FALSE(texture_manager1_->HaveImages());
|
| EXPECT_FALSE(texture_manager2_->HaveImages());
|
| scoped_refptr<gl::GLImage> image1(new gl::GLImageStub);
|
| - texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image1.get(),
|
| - Texture::BOUND);
|
| + texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, 0,
|
| + image1.get(), Texture::BOUND);
|
| EXPECT_TRUE(ref1->texture()->HasImages());
|
| EXPECT_TRUE(ref2->texture()->HasImages());
|
| EXPECT_TRUE(texture_manager1_->HaveImages());
|
| EXPECT_TRUE(texture_manager2_->HaveImages());
|
| scoped_refptr<gl::GLImage> image2(new gl::GLImageStub);
|
| - texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, image2.get(),
|
| - Texture::BOUND);
|
| + texture_manager1_->SetLevelImage(ref1.get(), GL_TEXTURE_2D, 1, 0,
|
| + image2.get(), Texture::BOUND);
|
| EXPECT_TRUE(ref1->texture()->HasImages());
|
| EXPECT_TRUE(ref2->texture()->HasImages());
|
| EXPECT_TRUE(texture_manager1_->HaveImages());
|
|
|