Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1264)

Unified Diff: gpu/command_buffer/service/framebuffer_manager_unittest.cc

Issue 8515023: Allow deleted resources to be used (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/framebuffer_manager.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « gpu/command_buffer/service/framebuffer_manager.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698