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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 10106015: Allow textures to be moved from one GL context group to another. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 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_autogen.h
===================================================================
--- gpu/command_buffer/service/gles2_cmd_decoder_autogen.h (revision 133771)
+++ gpu/command_buffer/service/gles2_cmd_decoder_autogen.h (working copy)
@@ -2736,5 +2736,97 @@
return error::kNoError;
}
+error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUM(
+ uint32 immediate_data_size, const gles2::ProduceTextureCHROMIUM& c) {
+ GLenum target = static_cast<GLenum>(c.target);
+ uint32 data_size;
+ if (!ComputeDataSize(1, sizeof(char), 32, &data_size)) {
+ return error::kOutOfBounds;
+ }
+ const char* mailbox = GetSharedMemoryAs<const char*>(
+ c.mailbox_shm_id, c.mailbox_shm_offset, data_size);
+ if (!validators_->texture_target.IsValid(target)) {
+ SetGLError(
+ GL_INVALID_ENUM, "glProduceTextureCHROMIUM: target GL_INVALID_ENUM");
+ return error::kNoError;
+ }
+ if (mailbox == NULL) {
+ return error::kOutOfBounds;
+ }
+ DoProduceTextureCHROMIUM(target, mailbox);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate(
+ uint32 immediate_data_size,
+ const gles2::ProduceTextureCHROMIUMImmediate& c) {
+ GLenum target = static_cast<GLenum>(c.target);
+ uint32 data_size;
+ if (!ComputeDataSize(1, sizeof(char), 32, &data_size)) {
+ return error::kOutOfBounds;
+ }
+ if (data_size > immediate_data_size) {
+ return error::kOutOfBounds;
+ }
+ const char* mailbox = GetImmediateDataAs<const char*>(
+ c, data_size, immediate_data_size);
+ if (!validators_->texture_target.IsValid(target)) {
+ SetGLError(
+ GL_INVALID_ENUM, "glProduceTextureCHROMIUM: target GL_INVALID_ENUM");
+ return error::kNoError;
+ }
+ if (mailbox == NULL) {
+ return error::kOutOfBounds;
+ }
+ DoProduceTextureCHROMIUM(target, mailbox);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUM(
+ uint32 immediate_data_size, const gles2::ConsumeTextureCHROMIUM& c) {
+ GLenum target = static_cast<GLenum>(c.target);
+ uint32 data_size;
+ if (!ComputeDataSize(1, sizeof(char), 32, &data_size)) {
+ return error::kOutOfBounds;
+ }
+ const char* mailbox = GetSharedMemoryAs<const char*>(
+ c.mailbox_shm_id, c.mailbox_shm_offset, data_size);
+ if (!validators_->texture_target.IsValid(target)) {
+ SetGLError(
+ GL_INVALID_ENUM, "glConsumeTextureCHROMIUM: target GL_INVALID_ENUM");
+ return error::kNoError;
+ }
+ if (mailbox == NULL) {
+ return error::kOutOfBounds;
+ }
+ DoConsumeTextureCHROMIUM(target, mailbox);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate(
+ uint32 immediate_data_size,
+ const gles2::ConsumeTextureCHROMIUMImmediate& c) {
+ GLenum target = static_cast<GLenum>(c.target);
+ uint32 data_size;
+ if (!ComputeDataSize(1, sizeof(char), 32, &data_size)) {
+ return error::kOutOfBounds;
+ }
+ if (data_size > immediate_data_size) {
+ return error::kOutOfBounds;
+ }
+ const char* mailbox = GetImmediateDataAs<const char*>(
+ c, data_size, immediate_data_size);
+ if (!validators_->texture_target.IsValid(target)) {
+ SetGLError(
+ GL_INVALID_ENUM, "glConsumeTextureCHROMIUM: target GL_INVALID_ENUM");
+ return error::kNoError;
+ }
+ if (mailbox == NULL) {
+ return error::kOutOfBounds;
+ }
+ DoConsumeTextureCHROMIUM(target, mailbox);
+ return error::kNoError;
+}
+
#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_

Powered by Google App Engine
This is Rietveld 408576698