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

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

Issue 10440019: Add support for GL_CHROMIUM_pixel_transfer_buffer_object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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
Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
index e76cc96522eb45c859354f783e22678a8693eeef..535762a0141159cda7af7b6cd0682a8c59b067c0 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
@@ -7050,6 +7050,48 @@ TEST_F(GLES2DecoderTest, IsEnabledReturnsCachedValue) {
}
}
+TEST_F(GLES2DecoderTest, PixelTransferBufferObjectCHROMIUM) {
+ GLenum target = GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM;
+ const uint8 data[] = {4, 3, 2, 1};
+ BindBuffer bind_cmd;
+ bind_cmd.Init(target, client_buffer_id_);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(bind_cmd));
+ BufferManager* manager = group().buffer_manager();
+ BufferManager::BufferInfo* info =
+ manager->GetBufferInfo(client_buffer_id_);
+ ASSERT_TRUE(info != NULL);
+ EXPECT_EQ(0, info->size());
+
+ int8* shm_buf = static_cast<int8*>(shared_memory_address_);
+ memcpy(shm_buf, data, sizeof(data));
+ BufferData data_cmd;
+ data_cmd.Init(target, sizeof(data), shared_memory_id_, shared_memory_offset_,
+ GL_STREAM_DRAW);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(data_cmd));
+
+ // Check if buffer data is set correctly.
+ const uint8* buf = static_cast<const uint8*>(
+ info->GetRange(0, sizeof(data)));
+ ASSERT_TRUE(buf != NULL);
+ ASSERT_EQ(data[0], buf[0]);
+ ASSERT_EQ(data[sizeof(data) - 1], buf[sizeof(data) - 1]);
+
+ // Check if shared memory buffer is used for texture upload.
+ DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
+ EXPECT_CALL(*gl_, GetError())
+ .WillRepeatedly(Return(GL_NO_ERROR));
+ TexImage2D cmd1;
+ EXPECT_CALL(*gl_, TexImage2D(
+ GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, shm_buf))
+ .Times(1)
+ .RetiresOnSaturation();
+ cmd1.Init(
+ GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, 0, 0);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+}
+
// TODO(gman): Complete this test.
// TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) {
// }

Powered by Google App Engine
This is Rietveld 408576698