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

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

Issue 7099007: Enforce RGB even on buggy drivers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add checks for reading GL_ALPHA_BITS etc. Created 9 years, 6 months 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 d3c387909e2e53fa4fe3763e460ac91f38bd66bd..77c6622ae829f9e75d6b20d3636b419518d58a88 100644
--- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc
+++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -122,6 +122,9 @@ TEST_F(FramebufferInfoTest, Basic) {
EXPECT_TRUE(NULL == info_->GetAttachment(GL_DEPTH_ATTACHMENT));
EXPECT_TRUE(NULL == info_->GetAttachment(GL_STENCIL_ATTACHMENT));
EXPECT_TRUE(NULL == info_->GetAttachment(GL_DEPTH_STENCIL_ATTACHMENT));
+ EXPECT_FALSE(info_->HasDepthAttachment());
+ EXPECT_FALSE(info_->HasStencilAttachment());
+ EXPECT_EQ(static_cast<GLenum>(0), info_->GetColorAttachmentFormat());
}
TEST_F(FramebufferInfoTest, AttachRenderbuffer) {
@@ -161,12 +164,23 @@ TEST_F(FramebufferInfoTest, AttachRenderbuffer) {
EXPECT_TRUE(info_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0));
EXPECT_FALSE(info_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT));
EXPECT_TRUE(info_->IsNotComplete());
+ EXPECT_EQ(static_cast<GLenum>(GL_RGBA4), info_->GetColorAttachmentFormat());
+ EXPECT_FALSE(info_->HasDepthAttachment());
+ EXPECT_FALSE(info_->HasStencilAttachment());
+
+ rb_info1->SetInfo(1, GL_RGB, 0, 0);
+ EXPECT_EQ(static_cast<GLenum>(GL_RGB), info_->GetColorAttachmentFormat());
+ EXPECT_FALSE(info_->HasDepthAttachment());
+ EXPECT_FALSE(info_->HasStencilAttachment());
// check adding another
info_->AttachRenderbuffer(GL_DEPTH_ATTACHMENT, rb_info1);
EXPECT_TRUE(info_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0));
EXPECT_TRUE(info_->HasUnclearedAttachment(GL_DEPTH_ATTACHMENT));
EXPECT_TRUE(info_->IsNotComplete());
+ EXPECT_EQ(static_cast<GLenum>(GL_RGB), info_->GetColorAttachmentFormat());
+ EXPECT_TRUE(info_->HasDepthAttachment());
+ EXPECT_FALSE(info_->HasStencilAttachment());
// check marking them as cleared.
info_->MarkAttachedRenderbuffersAsCleared();
@@ -177,10 +191,16 @@ TEST_F(FramebufferInfoTest, AttachRenderbuffer) {
// Check adding one that is already cleared.
info_->AttachRenderbuffer(GL_STENCIL_ATTACHMENT, rb_info1);
EXPECT_FALSE(info_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT));
+ EXPECT_EQ(static_cast<GLenum>(GL_RGB), info_->GetColorAttachmentFormat());
+ EXPECT_TRUE(info_->HasDepthAttachment());
+ EXPECT_TRUE(info_->HasStencilAttachment());
// Check marking the renderbuffer as unclared.
rb_info1->SetInfo(kSamples1, kFormat1, kWidth1, kHeight1);
EXPECT_FALSE(info_->IsNotComplete());
+ EXPECT_EQ(static_cast<GLenum>(kFormat1), info_->GetColorAttachmentFormat());
+ EXPECT_TRUE(info_->HasDepthAttachment());
+ EXPECT_TRUE(info_->HasStencilAttachment());
const FramebufferManager::FramebufferInfo::Attachment* attachment =
info_->GetAttachment(GL_COLOR_ATTACHMENT0);
@@ -230,6 +250,9 @@ TEST_F(FramebufferInfoTest, AttachRenderbuffer) {
// Check removing it.
info_->AttachRenderbuffer(GL_STENCIL_ATTACHMENT, NULL);
EXPECT_FALSE(info_->HasUnclearedAttachment(GL_STENCIL_ATTACHMENT));
+ EXPECT_EQ(static_cast<GLenum>(kFormat1), info_->GetColorAttachmentFormat());
+ EXPECT_TRUE(info_->HasDepthAttachment());
+ EXPECT_FALSE(info_->HasStencilAttachment());
rb_manager.Destroy(false);
}
@@ -278,12 +301,14 @@ TEST_F(FramebufferInfoTest, AttachTexture) {
info_->AttachTexture(GL_COLOR_ATTACHMENT0, tex_info1, kTarget1, kLevel1);
EXPECT_FALSE(info_->HasUnclearedAttachment(GL_COLOR_ATTACHMENT0));
EXPECT_TRUE(info_->IsNotComplete());
+ EXPECT_EQ(static_cast<GLenum>(0), info_->GetColorAttachmentFormat());
tex_manager.SetInfoTarget(tex_info1, GL_TEXTURE_2D);
tex_manager.SetLevelInfo(
&feature_info, tex_info1, GL_TEXTURE_2D, kLevel1,
kFormat1, kWidth1, kHeight1, kDepth, kBorder, kFormat1, kType);
EXPECT_FALSE(info_->IsNotComplete());
+ EXPECT_EQ(static_cast<GLenum>(kFormat1), info_->GetColorAttachmentFormat());
const FramebufferManager::FramebufferInfo::Attachment* attachment =
info_->GetAttachment(GL_COLOR_ATTACHMENT0);
@@ -306,6 +331,7 @@ TEST_F(FramebufferInfoTest, AttachTexture) {
kFormat2, kWidth2, kHeight2, kDepth, kBorder, kFormat2, kType);
info_->AttachTexture(GL_COLOR_ATTACHMENT0, tex_info2, kTarget2, kLevel2);
+ EXPECT_EQ(static_cast<GLenum>(kFormat2), info_->GetColorAttachmentFormat());
attachment = info_->GetAttachment(GL_COLOR_ATTACHMENT0);
ASSERT_TRUE(attachment != NULL);
@@ -326,10 +352,12 @@ TEST_F(FramebufferInfoTest, AttachTexture) {
EXPECT_EQ(kSamples3, attachment->samples());
EXPECT_EQ(kFormat3, attachment->internal_format());
EXPECT_TRUE(attachment->cleared());
+ EXPECT_EQ(static_cast<GLenum>(kFormat3), info_->GetColorAttachmentFormat());
// Check removing it.
info_->AttachTexture(GL_COLOR_ATTACHMENT0, NULL, 0, 0);
EXPECT_TRUE(info_->GetAttachment(GL_COLOR_ATTACHMENT0) == NULL);
+ EXPECT_EQ(static_cast<GLenum>(0), info_->GetColorAttachmentFormat());
tex_manager.Destroy(false);
}
« 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