| Index: gpu/command_buffer/service/framebuffer_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/framebuffer_manager_unittest.cc b/gpu/command_buffer/service/framebuffer_manager_unittest.cc
|
| index 264245fd59f16f2052d0db74994d10eba99e58ef..f7aa23a283e0c4eee7fa60a9379f358e309cef5b 100644
|
| --- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc
|
| @@ -492,6 +492,79 @@ TEST_F(FramebufferInfoTest, AttachTexture) {
|
| EXPECT_TRUE(info_->IsCleared());
|
| }
|
|
|
| +TEST_F(FramebufferInfoTest, UnbindRenderbuffer) {
|
| + const GLuint kRenderbufferClient1Id = 33;
|
| + const GLuint kRenderbufferService1Id = 333;
|
| + const GLuint kRenderbufferClient2Id = 34;
|
| + const GLuint kRenderbufferService2Id = 334;
|
| +
|
| + renderbuffer_manager_.CreateRenderbufferInfo(
|
| + kRenderbufferClient1Id, kRenderbufferService1Id);
|
| + RenderbufferManager::RenderbufferInfo* rb_info1 =
|
| + renderbuffer_manager_.GetRenderbufferInfo(kRenderbufferClient1Id);
|
| + ASSERT_TRUE(rb_info1 != NULL);
|
| + renderbuffer_manager_.CreateRenderbufferInfo(
|
| + kRenderbufferClient2Id, kRenderbufferService2Id);
|
| + RenderbufferManager::RenderbufferInfo* rb_info2 =
|
| + renderbuffer_manager_.GetRenderbufferInfo(kRenderbufferClient2Id);
|
| + ASSERT_TRUE(rb_info2 != NULL);
|
| +
|
| + // Attach to 2 attachment points.
|
| + info_->AttachRenderbuffer(GL_COLOR_ATTACHMENT0, rb_info1);
|
| + info_->AttachRenderbuffer(GL_DEPTH_ATTACHMENT, rb_info1);
|
| + // Check they were attached.
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) != NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) != NULL);
|
| + // Unbind unattached renderbuffer.
|
| + info_->UnbindRenderbuffer(GL_RENDERBUFFER, rb_info2);
|
| + // Should be no-op.
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) != NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) != NULL);
|
| + // Unbind renderbuffer.
|
| + info_->UnbindRenderbuffer(GL_RENDERBUFFER, rb_info1);
|
| + // Check they were detached
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) == NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) == NULL);
|
| +}
|
| +
|
| +TEST_F(FramebufferInfoTest, UnbindTexture) {
|
| + const GLuint kTextureClient1Id = 33;
|
| + const GLuint kTextureService1Id = 333;
|
| + const GLuint kTextureClient2Id = 34;
|
| + const GLuint kTextureService2Id = 334;
|
| + const GLenum kTarget1 = GL_TEXTURE_2D;
|
| + const GLint kLevel1 = 0;
|
| +
|
| + FeatureInfo feature_info;
|
| + texture_manager_.CreateTextureInfo(
|
| + &feature_info, kTextureClient1Id, kTextureService1Id);
|
| + TextureManager::TextureInfo* tex_info1 =
|
| + texture_manager_.GetTextureInfo(kTextureClient1Id);
|
| + ASSERT_TRUE(tex_info1 != NULL);
|
| + texture_manager_.CreateTextureInfo(
|
| + &feature_info, kTextureClient2Id, kTextureService2Id);
|
| + TextureManager::TextureInfo* tex_info2 =
|
| + texture_manager_.GetTextureInfo(kTextureClient2Id);
|
| + ASSERT_TRUE(tex_info2 != NULL);
|
| +
|
| + // Attach to 2 attachment points.
|
| + info_->AttachTexture(GL_COLOR_ATTACHMENT0, tex_info1, kTarget1, kLevel1);
|
| + info_->AttachTexture(GL_DEPTH_ATTACHMENT, tex_info1, kTarget1, kLevel1);
|
| + // Check they were attached.
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) != NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) != NULL);
|
| + // Unbind unattached texture.
|
| + info_->UnbindTexture(kTarget1, tex_info2);
|
| + // Should be no-op.
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) != NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) != NULL);
|
| + // Unbind texture.
|
| + info_->UnbindTexture(kTarget1, tex_info1);
|
| + // Check they were detached
|
| + EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) == NULL);
|
| + EXPECT_TRUE(info_->GetAttachment(GL_DEPTH_ATTACHMENT) == NULL);
|
| +}
|
| +
|
| } // namespace gles2
|
| } // namespace gpu
|
|
|
|
|