diff options
-rwxr-xr-x | gpu/command_buffer/build_gles2_cmd_buffer.py | 62 | ||||
-rw-r--r-- | gpu/command_buffer/docs/gles2_cmd_format_docs.txt | 2146 |
2 files changed, 2207 insertions, 1 deletions
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 6d11c08..8bd3035 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py @@ -1360,7 +1360,6 @@ class TypeHandler(object): if bucket: generator.AddFunction(BucketFunction(func)) - def WriteStruct(self, func, file): """Writes a structure that matches the arguments to a function.""" comment = func.GetInfo('cmd_comment') @@ -1422,6 +1421,32 @@ COMPILE_ASSERT(offsetof(%(cmd_name)s::Result, %(field_name)s) == %(offset)d, offset += _SIZE_OF_UINT32 file.Write("\n") + def WriteDocs(self, func, file): + """Writes a structure for docs.""" + func.WriteCommandDescription(file) + comment = func.GetInfo('cmd_comment') + if not comment == None: + file.Write(comment.replace('//', '//!')) + file.Write("struct %s {\n" % func.name) + file.Write(" static const CommandId kCmdId = %d;\n\n" % + _CMD_ID_TABLE[func.name]) + result = func.GetInfo('result') + if not result == None: + if len(result) == 1: + file.Write(" typedef %s Result;\n\n" % result[0]) + else: + file.Write(" struct Result {\n") + for line in result: + file.Write(" %s;\n" % line) + file.Write(" };\n\n") + + file.Write(" CommandHeader header;\n") + args = func.GetCmdArgs() + for arg in args: + file.Write(" %s %s; //!< %s\n" % (arg.cmd_type, arg.name, arg.type)) + file.Write("};\n") + file.Write("\n") + def WriteHandlerImplementation(self, func, file): """Writes the handler implementation for this command.""" file.Write(" %s(%s);\n" % @@ -1812,6 +1837,10 @@ class HandWrittenHandler(CustomHandler): """Overrriden from TypeHandler.""" pass + def WriteDocs(self, func, file): + """Overrriden from TypeHandler.""" + pass + def WriteServiceUnitTest(self, func, file): """Overrriden from TypeHandler.""" file.Write("// TODO(gman): %s\n\n" % func.name) @@ -3837,6 +3866,10 @@ class Function(object): ["%s%s" % (prefix, arg.name) for arg in args]) return self.__GetArgList(arg_string, add_comma) + def WriteCommandDescription(self, file): + """Writes a description of the command.""" + file.Write("//! Command that corresponds to gl%s.\n" % self.original_name) + def WriteHandlerValidation(self, file): """Writes validation code for the function.""" for arg in self.GetOriginalArgs(): @@ -3893,6 +3926,9 @@ class Function(object): def WriteStruct(self, file): self.type_handler.WriteStruct(self, file) + def WriteDocs(self, file): + self.type_handler.WriteDocs(self, file) + def WriteCmdHelper(self, file): """Writes the cmd's helper.""" self.type_handler.WriteCmdHelper(self, file) @@ -3949,6 +3985,11 @@ class ImmediateFunction(Function): 0) self.is_immediate = True + def WriteCommandDescription(self, file): + """Overridden from Function""" + file.Write("//! Immediate version of command that corresponds to gl%s.\n" % + self.original_name) + def WriteServiceImplementation(self, file): """Overridden from Function""" self.type_handler.WriteImmediateServiceImplementation(self, file) @@ -4032,6 +4073,11 @@ class BucketFunction(Function): """Overridden from Function""" pass + def WriteCommandDescription(self, file): + """Overridden from Function""" + file.Write("//! Bucket version of command that corresponds to gl%s.\n" % + self.original_name) + def WriteServiceImplementation(self, file): """Overridden from Function""" pass @@ -4254,6 +4300,14 @@ class GLGenerator(object): file.Write("\n") file.Close() + def WriteDocs(self, filename): + """Writes the command buffer doc version of the commands""" + file = CWriter(filename) + for func in self.functions: + func.WriteDocs(file) + file.Write("\n") + file.Close() + def WriteFormatTest(self, filename): """Writes the command buffer format test.""" file = CHeaderWriter( @@ -4399,6 +4453,9 @@ def main(argv): "--generate-command-id-tests", action="store_true", help="generate tests for commands ids. Commands MUST not change ID!") parser.add_option( + "--generate-docs", action="store_true", + help="generate a docs friendly version of the command formats.") + parser.add_option( "-v", "--verbose", action="store_true", help="prints more output.") @@ -4421,6 +4478,9 @@ def main(argv): if options.generate_command_id_tests: gen.WriteCommandIdTest("common/gles2_cmd_id_test_autogen.h") + if options.generate_docs: + gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h") + if gen.errors > 0: print "%d errors" % gen.errors sys.exit(1) diff --git a/gpu/command_buffer/docs/gles2_cmd_format_docs.txt b/gpu/command_buffer/docs/gles2_cmd_format_docs.txt new file mode 100644 index 0000000..15fafc4 --- /dev/null +++ b/gpu/command_buffer/docs/gles2_cmd_format_docs.txt @@ -0,0 +1,2146 @@ +//! \file +//! +//! The public interface for 3D graphics is based on a commmand buffer. +//! +//! This was choosen because it provides an easy way to separate the process +//! writing commands from the process reading those commands without requiring +//! too much overhead to keep the two processes in sync. +//! +//! You can use this info to write commands yourself. Most developers will use +//! the provided OpenGL ES 2.0 implementation that issues these commands for +//! them. +//! +//! Each command starts with a header. The header is 32 bits where the first 21 +//! bits define the number of 32 bit entries, including the header, the command +//! represnts. The last 11 bits specify the specific command. +//! +//! Commands that send a variable amount of data have 1 to 3 ways to send that +//! data. +//! +//! For many commands they can send their data in shared memory. The command +//! will take an id of the shared memory and an offset into that shared memory +//! of where the data lives. Commands are executed asynchronously so the client +//! program must be careful to leave the data available until the command has +//! executed. +//! +//! Other commands have an 'immediate' version where the data appears directly +//! after the command in memory. +//! +//! A 3rd way of passing data is through Buckets. Buckets are indentified by +//! number. You create a bucket with the command SetBucketSize, you can then +//! fill the bucket with SetBucketData commands. Once you've sent all your +//! data you can then issue a command that uses the bucket and takes a bucket +//! id for which bucket to use. +//! +//! Receiving data works similarly. Some commands return their data to shared +//! memory. Other commands return their data through buckets which can then be +//! queried with the GetBucketSize and GetBucketData commands. In either case +//! the data will not be available until the command executes. +//! +//! All commands and arguments are validated. If a command fails validation the +//! service will stop processing commands. It is the responsibility of the +//! client to never issue an invalid command. +//! +//! Examples of invalid commands. +//! - A command's size does not match the command. +//! - A command's size would address memory outside the command buffer +//! - A shared memory id is invalid +//! - A shared memory offset is out of range for the given shared memory +//! - The size of the data a command would access in shared memory is out of +//! range for the given shared memory buffer. +//! - A result buffer is not initialized to the failure case. +//! +//! The docs are a little terse. For any command that corresponds to an OpenGL +//! ES 2.0 function the arguments should be clear by looking at the OpenGL ES +//! 2.0 documentation with minor caveats. +//! +//! - Client side arrays are not supported so DrawArrays and +//! VertexAttribPointer only take offsets into buffers. +//! - A Buffer can not be bound to both GL_ARRAY_BUFFER and +//! GL_ELEMENT_ARRAY_BUFFER. Only 1 is allowed per buffer. +//! - You can not bind to arbitrary names with the glBind functions. You must +//! register an id with GenBuffers, GenTextures, etc. +//! - The commands GenBuffers, GetTextures, CreateProgram, CreateShader, etc +//! take client side ids and register them with the service. It's up to the +//! client to make up the ids. +//! + +//! The command header. +struct CommandHeader { + Uint32 size:21; + Uint32 command:11; +}; + + +//! Used for some glGetXXX commands that return a result through a pointer. We +//! need to know if the command succeeded or not and the size of the result. If +//! the command failed its result size will 0. You must set the size to 0 +//! before issuing the command. +//! +//! To retreive the data you might do something like this pseudo code: +//! +//! GetAttachedShaders::Result* result = address-of-shared-memory +//! int num_results = result->size / sizeof(GLuint); // the type returned +//! GLuint* results = &result->data; +//! for (int ii = 0; ii < num_results; ++ii) { +//! printf("%d\n", results[ii]); +//! } +//! +template <typename T> +struct SizedResult { + uint32 size; // in bytes. + T data; // this is just here to get an offset. +}; + + +//! A Noop command. +struct Noop { + static const CommandId kCmdId = 0; + + CommandHeader header; +}; + +//! The SetToken command puts a token in the command stream that you can +//! use to check if that token has been passed in the command stream. +struct SetToken { + static const CommandId kCmdId = 1; + + CommandHeader header; + uint32 token; +}; + +//! The Jump command jumps to another place in the command buffer. +struct Jump { + static const CommandId kCmdId = 3; + + CommandHeader header; + uint32 offset; +}; + +//! The JumpRelative command jumps to another place in the command buffer +//! relative to the end of this command. In other words. JumpRelative with an +//! offset of zero is effectively a noop. +struct JumpRelative { + static const CommandId kCmdId = 4; + + CommandHeader header; + int32 offset; +}; + +//! The Call command jumps to a subroutine which can be returned from with the +//! Return command. +struct Call { + static const CommandId kCmdId = 5; + + CommandHeader header; + uint32 offset; +}; + +//! The CallRelative command jumps to a subroutine using a relative offset. The +//! offset is relative to the end of this command.. +struct CallRelative { + static const CommandId kCmdId = 6; + + CommandHeader header; + int32 offset; +}; + +//! Returns from a subroutine called by the Call or CallRelative commands. +struct Return { + static const CommandId kCmdId = 7; + + CommandHeader header; +}; + +//! Sets the size of a bucket for collecting data on the service side. +//! This is a utility for gathering data on the service side so it can be used +//! all at once when some service side API is called. It removes the need to +//! add special commands just to support a particular API. For example, any API +//! command that needs a string needs a way to send that string to the API over +//! the command buffers. While you can require that the command buffer or +//! transfer buffer be large enough to hold the largest string you can send, +//! using this command removes that restriction by letting you send smaller +//! pieces over and build up the data on the service side. +//! +//! You can clear a bucket on the service side and thereby free memory by +//! sending a size of 0. +struct SetBucketSize { + static const CommandId kCmdId = 8; + + CommandHeader header; + uint32 bucket_id; + uint32 size; +}; + +//! Sets the contents of a portion of a bucket on the service side from data in +//! shared memory. +//! See SetBucketSize. +struct SetBucketData { + static const CommandId kCmdId = 9; + + CommandHeader header; + uint32 bucket_id; + uint32 offset; + uint32 size; + uint32 shared_memory_id; + uint32 shared_memory_offset; +}; + +//! Sets the contents of a portion of a bucket on the service side from data in +//! the command buffer. +//! See SetBucketSize. +struct SetBucketDataImmediate { + static const CommandId kCmdId = 10; + + CommandHeader header; + uint32 bucket_id; + uint32 offset; + uint32 size; +}; + +//! Gets the size of a bucket the service has available. Sending a variable +//! size result back to the client, for example any API that returns a string, +//! is problematic since the largest thing you can send back is the size of +//! your shared memory. This command along with GetBucketData implements a way +//! to get a result a piece at a time to help solve that problem in a generic +//! way. +struct GetBucketSize { + static const CommandId kCmdId = 11; + + typedef uint32 Result; + + CommandHeader header; + uint32 bucket_id; + uint32 shared_memory_id; + uint32 shared_memory_offset; +}; + +//! Gets a piece of a result the service has available. +//! See GetBucketSize. +struct GetBucketData { + static const CommandId kCmdId = 12; + + CommandHeader header; + uint32 bucket_id; + uint32 offset; + uint32 size; + uint32 shared_memory_id; + uint32 shared_memory_offset; +}; + +// OpenGL ES 2.0 related commands. + +//! Command that corresponds to glActiveTexture. +struct ActiveTexture { + static const CommandId kCmdId = 256; + + CommandHeader header; + uint32 texture; //!< GLenum +}; + +//! Command that corresponds to glAttachShader. +struct AttachShader { + static const CommandId kCmdId = 257; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 shader; //!< GLuint +}; + +//! Command that corresponds to glBindAttribLocation. +struct BindAttribLocation { + static const CommandId kCmdId = 258; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 index; //!< GLuint + uint32 name_shm_id; //!< uint32 + uint32 name_shm_offset; //!< uint32 + uint32 data_size; //!< uint32 +}; + +//! Immediate version of command that corresponds to glBindAttribLocation. +struct BindAttribLocationImmediate { + static const CommandId kCmdId = 259; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 index; //!< GLuint + uint32 data_size; //!< uint32 +}; + +//! Bucket version of command that corresponds to glBindAttribLocation. +struct BindAttribLocationBucket { + static const CommandId kCmdId = 432; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 index; //!< GLuint + uint32 name_bucket_id; //!< uint32 +}; + +//! Command that corresponds to glBindBuffer. +struct BindBuffer { + static const CommandId kCmdId = 260; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 buffer; //!< GLuint +}; + +//! Command that corresponds to glBindFramebuffer. +struct BindFramebuffer { + static const CommandId kCmdId = 261; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 framebuffer; //!< GLuint +}; + +//! Command that corresponds to glBindRenderbuffer. +struct BindRenderbuffer { + static const CommandId kCmdId = 262; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 renderbuffer; //!< GLuint +}; + +//! Command that corresponds to glBindTexture. +struct BindTexture { + static const CommandId kCmdId = 263; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 texture; //!< GLuint +}; + +//! Command that corresponds to glBlendColor. +struct BlendColor { + static const CommandId kCmdId = 264; + + CommandHeader header; + float red; //!< GLclampf + float green; //!< GLclampf + float blue; //!< GLclampf + float alpha; //!< GLclampf +}; + +//! Command that corresponds to glBlendEquation. +struct BlendEquation { + static const CommandId kCmdId = 265; + + CommandHeader header; + uint32 mode; //!< GLenum +}; + +//! Command that corresponds to glBlendEquationSeparate. +struct BlendEquationSeparate { + static const CommandId kCmdId = 266; + + CommandHeader header; + uint32 modeRGB; //!< GLenum + uint32 modeAlpha; //!< GLenum +}; + +//! Command that corresponds to glBlendFunc. +struct BlendFunc { + static const CommandId kCmdId = 267; + + CommandHeader header; + uint32 sfactor; //!< GLenum + uint32 dfactor; //!< GLenum +}; + +//! Command that corresponds to glBlendFuncSeparate. +struct BlendFuncSeparate { + static const CommandId kCmdId = 268; + + CommandHeader header; + uint32 srcRGB; //!< GLenum + uint32 dstRGB; //!< GLenum + uint32 srcAlpha; //!< GLenum + uint32 dstAlpha; //!< GLenum +}; + +//! Command that corresponds to glBufferData. +struct BufferData { + static const CommandId kCmdId = 269; + + CommandHeader header; + uint32 target; //!< GLenum + int32 size; //!< GLsizeiptr + uint32 data_shm_id; //!< uint32 + uint32 data_shm_offset; //!< uint32 + uint32 usage; //!< GLenum +}; + +//! Immediate version of command that corresponds to glBufferData. +struct BufferDataImmediate { + static const CommandId kCmdId = 270; + + CommandHeader header; + uint32 target; //!< GLenum + int32 size; //!< GLsizeiptr + uint32 usage; //!< GLenum +}; + +//! Command that corresponds to glBufferSubData. +struct BufferSubData { + static const CommandId kCmdId = 271; + + CommandHeader header; + uint32 target; //!< GLenum + int32 offset; //!< GLintptr + int32 size; //!< GLsizeiptr + uint32 data_shm_id; //!< uint32 + uint32 data_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glBufferSubData. +struct BufferSubDataImmediate { + static const CommandId kCmdId = 272; + + CommandHeader header; + uint32 target; //!< GLenum + int32 offset; //!< GLintptr + int32 size; //!< GLsizeiptr +}; + +//! Command that corresponds to glCheckFramebufferStatus. +struct CheckFramebufferStatus { + static const CommandId kCmdId = 273; + + typedef GLenum Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glClear. +struct Clear { + static const CommandId kCmdId = 274; + + CommandHeader header; + uint32 mask; //!< GLbitfield +}; + +//! Command that corresponds to glClearColor. +struct ClearColor { + static const CommandId kCmdId = 275; + + CommandHeader header; + float red; //!< GLclampf + float green; //!< GLclampf + float blue; //!< GLclampf + float alpha; //!< GLclampf +}; + +//! Command that corresponds to glClearDepthf. +struct ClearDepthf { + static const CommandId kCmdId = 276; + + CommandHeader header; + float depth; //!< GLclampf +}; + +//! Command that corresponds to glClearStencil. +struct ClearStencil { + static const CommandId kCmdId = 277; + + CommandHeader header; + int32 s; //!< GLint +}; + +//! Command that corresponds to glColorMask. +struct ColorMask { + static const CommandId kCmdId = 278; + + CommandHeader header; + uint32 red; //!< GLboolean + uint32 green; //!< GLboolean + uint32 blue; //!< GLboolean + uint32 alpha; //!< GLboolean +}; + +//! Command that corresponds to glCompileShader. +struct CompileShader { + static const CommandId kCmdId = 279; + + CommandHeader header; + uint32 shader; //!< GLuint +}; + +//! Command that corresponds to glCompressedTexImage2D. +struct CompressedTexImage2D { + static const CommandId kCmdId = 280; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + uint32 internalformat; //!< GLenum + int32 width; //!< GLsizei + int32 height; //!< GLsizei + int32 border; //!< GLint + int32 imageSize; //!< GLsizei + uint32 data_shm_id; //!< uint32 + uint32 data_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glCompressedTexImage2D. +struct CompressedTexImage2DImmediate { + static const CommandId kCmdId = 281; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + uint32 internalformat; //!< GLenum + int32 width; //!< GLsizei + int32 height; //!< GLsizei + int32 border; //!< GLint + int32 imageSize; //!< GLsizei +}; + +//! Command that corresponds to glCompressedTexSubImage2D. +struct CompressedTexSubImage2D { + static const CommandId kCmdId = 282; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 xoffset; //!< GLint + int32 yoffset; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + uint32 format; //!< GLenum + int32 imageSize; //!< GLsizei + uint32 data_shm_id; //!< uint32 + uint32 data_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glCompressedTexSubImage2D. +struct CompressedTexSubImage2DImmediate { + static const CommandId kCmdId = 283; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 xoffset; //!< GLint + int32 yoffset; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + uint32 format; //!< GLenum + int32 imageSize; //!< GLsizei +}; + +//! Command that corresponds to glCopyTexImage2D. +struct CopyTexImage2D { + static const CommandId kCmdId = 284; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + uint32 internalformat; //!< GLenum + int32 x; //!< GLint + int32 y; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + int32 border; //!< GLint +}; + +//! Command that corresponds to glCopyTexSubImage2D. +struct CopyTexSubImage2D { + static const CommandId kCmdId = 285; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 xoffset; //!< GLint + int32 yoffset; //!< GLint + int32 x; //!< GLint + int32 y; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei +}; + +//! Command that corresponds to glCreateProgram. +struct CreateProgram { + static const CommandId kCmdId = 286; + + CommandHeader header; + uint32 client_id; //!< uint32 +}; + +//! Command that corresponds to glCreateShader. +struct CreateShader { + static const CommandId kCmdId = 287; + + CommandHeader header; + uint32 type; //!< GLenum + uint32 client_id; //!< uint32 +}; + +//! Command that corresponds to glCullFace. +struct CullFace { + static const CommandId kCmdId = 288; + + CommandHeader header; + uint32 mode; //!< GLenum +}; + +//! Command that corresponds to glDeleteBuffers. +struct DeleteBuffers { + static const CommandId kCmdId = 289; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 buffers_shm_id; //!< uint32 + uint32 buffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glDeleteBuffers. +struct DeleteBuffersImmediate { + static const CommandId kCmdId = 290; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glDeleteFramebuffers. +struct DeleteFramebuffers { + static const CommandId kCmdId = 291; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 framebuffers_shm_id; //!< uint32 + uint32 framebuffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glDeleteFramebuffers. +struct DeleteFramebuffersImmediate { + static const CommandId kCmdId = 292; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glDeleteProgram. +struct DeleteProgram { + static const CommandId kCmdId = 293; + + CommandHeader header; + uint32 program; //!< GLuint +}; + +//! Command that corresponds to glDeleteRenderbuffers. +struct DeleteRenderbuffers { + static const CommandId kCmdId = 294; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 renderbuffers_shm_id; //!< uint32 + uint32 renderbuffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glDeleteRenderbuffers. +struct DeleteRenderbuffersImmediate { + static const CommandId kCmdId = 295; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glDeleteShader. +struct DeleteShader { + static const CommandId kCmdId = 296; + + CommandHeader header; + uint32 shader; //!< GLuint +}; + +//! Command that corresponds to glDeleteTextures. +struct DeleteTextures { + static const CommandId kCmdId = 297; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 textures_shm_id; //!< uint32 + uint32 textures_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glDeleteTextures. +struct DeleteTexturesImmediate { + static const CommandId kCmdId = 298; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glDepthFunc. +struct DepthFunc { + static const CommandId kCmdId = 299; + + CommandHeader header; + uint32 func; //!< GLenum +}; + +//! Command that corresponds to glDepthMask. +struct DepthMask { + static const CommandId kCmdId = 300; + + CommandHeader header; + uint32 flag; //!< GLboolean +}; + +//! Command that corresponds to glDepthRangef. +struct DepthRangef { + static const CommandId kCmdId = 301; + + CommandHeader header; + float zNear; //!< GLclampf + float zFar; //!< GLclampf +}; + +//! Command that corresponds to glDetachShader. +struct DetachShader { + static const CommandId kCmdId = 302; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 shader; //!< GLuint +}; + +//! Command that corresponds to glDisable. +struct Disable { + static const CommandId kCmdId = 303; + + CommandHeader header; + uint32 cap; //!< GLenum +}; + +//! Command that corresponds to glDisableVertexAttribArray. +struct DisableVertexAttribArray { + static const CommandId kCmdId = 304; + + CommandHeader header; + uint32 index; //!< GLuint +}; + +//! Command that corresponds to glDrawArrays. +struct DrawArrays { + static const CommandId kCmdId = 305; + + CommandHeader header; + uint32 mode; //!< GLenum + int32 first; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glDrawElements. +struct DrawElements { + static const CommandId kCmdId = 306; + + CommandHeader header; + uint32 mode; //!< GLenum + int32 count; //!< GLsizei + uint32 type; //!< GLenum + uint32 index_offset; //!< GLuint +}; + +//! Command that corresponds to glEnable. +struct Enable { + static const CommandId kCmdId = 307; + + CommandHeader header; + uint32 cap; //!< GLenum +}; + +//! Command that corresponds to glEnableVertexAttribArray. +struct EnableVertexAttribArray { + static const CommandId kCmdId = 308; + + CommandHeader header; + uint32 index; //!< GLuint +}; + +//! Command that corresponds to glFinish. +struct Finish { + static const CommandId kCmdId = 309; + + CommandHeader header; +}; + +//! Command that corresponds to glFlush. +struct Flush { + static const CommandId kCmdId = 310; + + CommandHeader header; +}; + +//! Command that corresponds to glFramebufferRenderbuffer. +struct FramebufferRenderbuffer { + static const CommandId kCmdId = 311; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 attachment; //!< GLenum + uint32 renderbuffertarget; //!< GLenum + uint32 renderbuffer; //!< GLuint +}; + +//! Command that corresponds to glFramebufferTexture2D. +struct FramebufferTexture2D { + static const CommandId kCmdId = 312; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 attachment; //!< GLenum + uint32 textarget; //!< GLenum + uint32 texture; //!< GLuint + int32 level; //!< GLint +}; + +//! Command that corresponds to glFrontFace. +struct FrontFace { + static const CommandId kCmdId = 313; + + CommandHeader header; + uint32 mode; //!< GLenum +}; + +//! Command that corresponds to glGenBuffers. +struct GenBuffers { + static const CommandId kCmdId = 314; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 buffers_shm_id; //!< uint32 + uint32 buffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glGenBuffers. +struct GenBuffersImmediate { + static const CommandId kCmdId = 315; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glGenerateMipmap. +struct GenerateMipmap { + static const CommandId kCmdId = 316; + + CommandHeader header; + uint32 target; //!< GLenum +}; + +//! Command that corresponds to glGenFramebuffers. +struct GenFramebuffers { + static const CommandId kCmdId = 317; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 framebuffers_shm_id; //!< uint32 + uint32 framebuffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glGenFramebuffers. +struct GenFramebuffersImmediate { + static const CommandId kCmdId = 318; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glGenRenderbuffers. +struct GenRenderbuffers { + static const CommandId kCmdId = 319; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 renderbuffers_shm_id; //!< uint32 + uint32 renderbuffers_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glGenRenderbuffers. +struct GenRenderbuffersImmediate { + static const CommandId kCmdId = 320; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glGenTextures. +struct GenTextures { + static const CommandId kCmdId = 321; + + CommandHeader header; + int32 n; //!< GLsizei + uint32 textures_shm_id; //!< uint32 + uint32 textures_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glGenTextures. +struct GenTexturesImmediate { + static const CommandId kCmdId = 322; + + CommandHeader header; + int32 n; //!< GLsizei +}; + +//! Command that corresponds to glGetActiveAttrib. +struct GetActiveAttrib { + static const CommandId kCmdId = 323; + + struct Result { + int32 success; + int32 size; + uint32 type; + }; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 index; //!< GLuint + uint32 name_bucket_id; //!< uint32 + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetActiveUniform. +struct GetActiveUniform { + static const CommandId kCmdId = 324; + + struct Result { + int32 success; + int32 size; + uint32 type; + }; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 index; //!< GLuint + uint32 name_bucket_id; //!< uint32 + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetAttachedShaders. +struct GetAttachedShaders { + static const CommandId kCmdId = 325; + + typedef SizedResult<GLuint> Result; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 + uint32 result_size; //!< uint32 +}; + +//! Command that corresponds to glGetAttribLocation. +struct GetAttribLocation { + static const CommandId kCmdId = 326; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 name_shm_id; + uint32 name_shm_offset; + uint32 location_shm_id; + uint32 location_shm_offset; + uint32 data_size; +}; + +//! Immediate version of command that corresponds to glGetAttribLocation. +struct GetAttribLocationImmediate { + static const CommandId kCmdId = 327; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 location_shm_id; + uint32 location_shm_offset; + uint32 data_size; +}; + +//! Bucket version of command that corresponds to glGetAttribLocation. +struct GetAttribLocationBucket { + static const CommandId kCmdId = 434; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 name_bucket_id; + uint32 location_shm_id; + uint32 location_shm_offset; +}; + +//! Command that corresponds to glGetBooleanv. +struct GetBooleanv { + static const CommandId kCmdId = 328; + + typedef SizedResult<GLboolean> Result; + + CommandHeader header; + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetBufferParameteriv. +struct GetBufferParameteriv { + static const CommandId kCmdId = 329; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetError. +struct GetError { + static const CommandId kCmdId = 330; + + typedef GLenum Result; + + CommandHeader header; + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetFloatv. +struct GetFloatv { + static const CommandId kCmdId = 331; + + typedef SizedResult<GLfloat> Result; + + CommandHeader header; + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetFramebufferAttachmentParameteriv. +struct GetFramebufferAttachmentParameteriv { + static const CommandId kCmdId = 332; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 attachment; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetIntegerv. +struct GetIntegerv { + static const CommandId kCmdId = 333; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetProgramiv. +struct GetProgramiv { + static const CommandId kCmdId = 334; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetProgramInfoLog. +struct GetProgramInfoLog { + static const CommandId kCmdId = 335; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 bucket_id; //!< uint32 +}; + +//! Command that corresponds to glGetRenderbufferParameteriv. +struct GetRenderbufferParameteriv { + static const CommandId kCmdId = 336; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetShaderiv. +struct GetShaderiv { + static const CommandId kCmdId = 337; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetShaderInfoLog. +struct GetShaderInfoLog { + static const CommandId kCmdId = 338; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 bucket_id; //!< uint32 +}; + +//! Command that corresponds to glGetShaderPrecisionFormat. +struct GetShaderPrecisionFormat { + static const CommandId kCmdId = 339; + + struct Result { + int32 success; + int32 min_range; + int32 max_range; + int32 precision; + }; + + CommandHeader header; + uint32 shadertype; //!< GLenum + uint32 precisiontype; //!< GLenum + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetShaderSource. +struct GetShaderSource { + static const CommandId kCmdId = 340; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 bucket_id; //!< uint32 +}; + +//! Command that corresponds to glGetString. +struct GetString { + static const CommandId kCmdId = 341; + + CommandHeader header; + uint32 name; //!< GLenum + uint32 bucket_id; //!< uint32 +}; + +//! Command that corresponds to glGetTexParameterfv. +struct GetTexParameterfv { + static const CommandId kCmdId = 342; + + typedef SizedResult<GLfloat> Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetTexParameteriv. +struct GetTexParameteriv { + static const CommandId kCmdId = 343; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetUniformLocation. +struct GetUniformLocation { + static const CommandId kCmdId = 346; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 name_shm_id; + uint32 name_shm_offset; + uint32 location_shm_id; + uint32 location_shm_offset; + uint32 data_size; +}; + +//! Immediate version of command that corresponds to glGetUniformLocation. +struct GetUniformLocationImmediate { + static const CommandId kCmdId = 347; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 location_shm_id; + uint32 location_shm_offset; + uint32 data_size; +}; + +//! Bucket version of command that corresponds to glGetUniformLocation. +struct GetUniformLocationBucket { + static const CommandId kCmdId = 433; + + typedef GLint Result; + + CommandHeader header; + uint32 program; + uint32 name_bucket_id; + uint32 location_shm_id; + uint32 location_shm_offset; +}; + + +//! Command that corresponds to glGetUniformfv. +struct GetUniformfv { + static const CommandId kCmdId = 344; + + typedef SizedResult<GLfloat> Result; + + CommandHeader header; + uint32 program; //!< GLuint + int32 location; //!< GLint + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetUniformiv. +struct GetUniformiv { + static const CommandId kCmdId = 345; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 program; //!< GLuint + int32 location; //!< GLint + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetVertexAttribfv. +struct GetVertexAttribfv { + static const CommandId kCmdId = 348; + + typedef SizedResult<GLfloat> Result; + + CommandHeader header; + uint32 index; //!< GLuint + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetVertexAttribiv. +struct GetVertexAttribiv { + static const CommandId kCmdId = 349; + + typedef SizedResult<GLint> Result; + + CommandHeader header; + uint32 index; //!< GLuint + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glGetVertexAttribPointerv. +struct GetVertexAttribPointerv { + static const CommandId kCmdId = 350; + + typedef SizedResult<GLuint> Result; + + CommandHeader header; + uint32 index; //!< GLuint + uint32 pname; //!< GLenum + uint32 pointer_shm_id; //!< uint32 + uint32 pointer_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glHint. +struct Hint { + static const CommandId kCmdId = 351; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 mode; //!< GLenum +}; + +//! Command that corresponds to glIsBuffer. +struct IsBuffer { + static const CommandId kCmdId = 352; + + typedef uint32 Result; + + CommandHeader header; + uint32 buffer; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsEnabled. +struct IsEnabled { + static const CommandId kCmdId = 353; + + typedef uint32 Result; + + CommandHeader header; + uint32 cap; //!< GLenum + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsFramebuffer. +struct IsFramebuffer { + static const CommandId kCmdId = 354; + + typedef uint32 Result; + + CommandHeader header; + uint32 framebuffer; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsProgram. +struct IsProgram { + static const CommandId kCmdId = 355; + + typedef uint32 Result; + + CommandHeader header; + uint32 program; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsRenderbuffer. +struct IsRenderbuffer { + static const CommandId kCmdId = 356; + + typedef uint32 Result; + + CommandHeader header; + uint32 renderbuffer; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsShader. +struct IsShader { + static const CommandId kCmdId = 357; + + typedef uint32 Result; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glIsTexture. +struct IsTexture { + static const CommandId kCmdId = 358; + + typedef uint32 Result; + + CommandHeader header; + uint32 texture; //!< GLuint + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glLineWidth. +struct LineWidth { + static const CommandId kCmdId = 359; + + CommandHeader header; + float width; //!< GLfloat +}; + +//! Command that corresponds to glLinkProgram. +struct LinkProgram { + static const CommandId kCmdId = 360; + + CommandHeader header; + uint32 program; //!< GLuint +}; + +//! Command that corresponds to glPixelStorei. +struct PixelStorei { + static const CommandId kCmdId = 361; + + CommandHeader header; + uint32 pname; //!< GLenum + int32 param; //!< GLint +}; + +//! Command that corresponds to glPolygonOffset. +struct PolygonOffset { + static const CommandId kCmdId = 362; + + CommandHeader header; + float factor; //!< GLfloat + float units; //!< GLfloat +}; + +//! Command that corresponds to glReadPixels. +//! ReadPixels has the result separated from the pixel buffer so that +//! it is easier to specify the result going to some specific place +//! that exactly fits the rectangle of pixels. +struct ReadPixels { + static const CommandId kCmdId = 363; + + typedef uint32 Result; + + CommandHeader header; + int32 x; //!< GLint + int32 y; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + uint32 format; //!< GLenum + uint32 type; //!< GLenum + uint32 pixels_shm_id; //!< uint32 + uint32 pixels_shm_offset; //!< uint32 + uint32 result_shm_id; //!< uint32 + uint32 result_shm_offset; //!< uint32 +}; + +//! Command that corresponds to glRenderbufferStorage. +struct RenderbufferStorage { + static const CommandId kCmdId = 364; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 internalformat; //!< GLenum + int32 width; //!< GLsizei + int32 height; //!< GLsizei +}; + +//! Command that corresponds to glSampleCoverage. +struct SampleCoverage { + static const CommandId kCmdId = 365; + + CommandHeader header; + float value; //!< GLclampf + uint32 invert; //!< GLboolean +}; + +//! Command that corresponds to glScissor. +struct Scissor { + static const CommandId kCmdId = 366; + + CommandHeader header; + int32 x; //!< GLint + int32 y; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei +}; + +//! Command that corresponds to glShaderSource. +struct ShaderSource { + static const CommandId kCmdId = 367; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 data_shm_id; //!< uint32 + uint32 data_shm_offset; //!< uint32 + uint32 data_size; //!< uint32 +}; + +//! Immediate version of command that corresponds to glShaderSource. +struct ShaderSourceImmediate { + static const CommandId kCmdId = 368; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 data_size; //!< uint32 +}; + +//! Bucket version of command that corresponds to glShaderSource. +struct ShaderSourceBucket { + static const CommandId kCmdId = 435; + + CommandHeader header; + uint32 shader; //!< GLuint + uint32 data_bucket_id; //!< uint32 +}; + +//! Command that corresponds to glStencilFunc. +struct StencilFunc { + static const CommandId kCmdId = 369; + + CommandHeader header; + uint32 func; //!< GLenum + int32 ref; //!< GLint + uint32 mask; //!< GLuint +}; + +//! Command that corresponds to glStencilFuncSeparate. +struct StencilFuncSeparate { + static const CommandId kCmdId = 370; + + CommandHeader header; + uint32 face; //!< GLenum + uint32 func; //!< GLenum + int32 ref; //!< GLint + uint32 mask; //!< GLuint +}; + +//! Command that corresponds to glStencilMask. +struct StencilMask { + static const CommandId kCmdId = 371; + + CommandHeader header; + uint32 mask; //!< GLuint +}; + +//! Command that corresponds to glStencilMaskSeparate. +struct StencilMaskSeparate { + static const CommandId kCmdId = 372; + + CommandHeader header; + uint32 face; //!< GLenum + uint32 mask; //!< GLuint +}; + +//! Command that corresponds to glStencilOp. +struct StencilOp { + static const CommandId kCmdId = 373; + + CommandHeader header; + uint32 fail; //!< GLenum + uint32 zfail; //!< GLenum + uint32 zpass; //!< GLenum +}; + +//! Command that corresponds to glStencilOpSeparate. +struct StencilOpSeparate { + static const CommandId kCmdId = 374; + + CommandHeader header; + uint32 face; //!< GLenum + uint32 fail; //!< GLenum + uint32 zfail; //!< GLenum + uint32 zpass; //!< GLenum +}; + +//! Command that corresponds to glTexImage2D. +struct TexImage2D { + static const CommandId kCmdId = 375; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 internalformat; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + int32 border; //!< GLint + uint32 format; //!< GLenum + uint32 type; //!< GLenum + uint32 pixels_shm_id; //!< uint32 + uint32 pixels_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glTexImage2D. +struct TexImage2DImmediate { + static const CommandId kCmdId = 376; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 internalformat; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + int32 border; //!< GLint + uint32 format; //!< GLenum + uint32 type; //!< GLenum +}; + +//! Command that corresponds to glTexParameterf. +struct TexParameterf { + static const CommandId kCmdId = 377; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + float param; //!< GLfloat +}; + +//! Command that corresponds to glTexParameterfv. +struct TexParameterfv { + static const CommandId kCmdId = 378; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glTexParameterfv. +struct TexParameterfvImmediate { + static const CommandId kCmdId = 379; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum +}; + +//! Command that corresponds to glTexParameteri. +struct TexParameteri { + static const CommandId kCmdId = 380; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + int32 param; //!< GLint +}; + +//! Command that corresponds to glTexParameteriv. +struct TexParameteriv { + static const CommandId kCmdId = 381; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum + uint32 params_shm_id; //!< uint32 + uint32 params_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glTexParameteriv. +struct TexParameterivImmediate { + static const CommandId kCmdId = 382; + + CommandHeader header; + uint32 target; //!< GLenum + uint32 pname; //!< GLenum +}; + +//! Command that corresponds to glTexSubImage2D. +struct TexSubImage2D { + static const CommandId kCmdId = 383; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 xoffset; //!< GLint + int32 yoffset; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + uint32 format; //!< GLenum + uint32 type; //!< GLenum + uint32 pixels_shm_id; //!< uint32 + uint32 pixels_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glTexSubImage2D. +struct TexSubImage2DImmediate { + static const CommandId kCmdId = 384; + + CommandHeader header; + uint32 target; //!< GLenum + int32 level; //!< GLint + int32 xoffset; //!< GLint + int32 yoffset; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei + uint32 format; //!< GLenum + uint32 type; //!< GLenum +}; + +//! Command that corresponds to glUniform1f. +struct Uniform1f { + static const CommandId kCmdId = 385; + + CommandHeader header; + int32 location; //!< GLint + float x; //!< GLfloat +}; + +//! Command that corresponds to glUniform1fv. +struct Uniform1fv { + static const CommandId kCmdId = 386; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform1fv. +struct Uniform1fvImmediate { + static const CommandId kCmdId = 387; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform1i. +struct Uniform1i { + static const CommandId kCmdId = 388; + + CommandHeader header; + int32 location; //!< GLint + int32 x; //!< GLint +}; + +//! Command that corresponds to glUniform1iv. +struct Uniform1iv { + static const CommandId kCmdId = 389; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform1iv. +struct Uniform1ivImmediate { + static const CommandId kCmdId = 390; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform2f. +struct Uniform2f { + static const CommandId kCmdId = 391; + + CommandHeader header; + int32 location; //!< GLint + float x; //!< GLfloat + float y; //!< GLfloat +}; + +//! Command that corresponds to glUniform2fv. +struct Uniform2fv { + static const CommandId kCmdId = 392; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform2fv. +struct Uniform2fvImmediate { + static const CommandId kCmdId = 393; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform2i. +struct Uniform2i { + static const CommandId kCmdId = 394; + + CommandHeader header; + int32 location; //!< GLint + int32 x; //!< GLint + int32 y; //!< GLint +}; + +//! Command that corresponds to glUniform2iv. +struct Uniform2iv { + static const CommandId kCmdId = 395; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform2iv. +struct Uniform2ivImmediate { + static const CommandId kCmdId = 396; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform3f. +struct Uniform3f { + static const CommandId kCmdId = 397; + + CommandHeader header; + int32 location; //!< GLint + float x; //!< GLfloat + float y; //!< GLfloat + float z; //!< GLfloat +}; + +//! Command that corresponds to glUniform3fv. +struct Uniform3fv { + static const CommandId kCmdId = 398; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform3fv. +struct Uniform3fvImmediate { + static const CommandId kCmdId = 399; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform3i. +struct Uniform3i { + static const CommandId kCmdId = 400; + + CommandHeader header; + int32 location; //!< GLint + int32 x; //!< GLint + int32 y; //!< GLint + int32 z; //!< GLint +}; + +//! Command that corresponds to glUniform3iv. +struct Uniform3iv { + static const CommandId kCmdId = 401; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform3iv. +struct Uniform3ivImmediate { + static const CommandId kCmdId = 402; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform4f. +struct Uniform4f { + static const CommandId kCmdId = 403; + + CommandHeader header; + int32 location; //!< GLint + float x; //!< GLfloat + float y; //!< GLfloat + float z; //!< GLfloat + float w; //!< GLfloat +}; + +//! Command that corresponds to glUniform4fv. +struct Uniform4fv { + static const CommandId kCmdId = 404; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform4fv. +struct Uniform4fvImmediate { + static const CommandId kCmdId = 405; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniform4i. +struct Uniform4i { + static const CommandId kCmdId = 406; + + CommandHeader header; + int32 location; //!< GLint + int32 x; //!< GLint + int32 y; //!< GLint + int32 z; //!< GLint + int32 w; //!< GLint +}; + +//! Command that corresponds to glUniform4iv. +struct Uniform4iv { + static const CommandId kCmdId = 407; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 v_shm_id; //!< uint32 + uint32 v_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniform4iv. +struct Uniform4ivImmediate { + static const CommandId kCmdId = 408; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei +}; + +//! Command that corresponds to glUniformMatrix2fv. +struct UniformMatrix2fv { + static const CommandId kCmdId = 409; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean + uint32 value_shm_id; //!< uint32 + uint32 value_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniformMatrix2fv. +struct UniformMatrix2fvImmediate { + static const CommandId kCmdId = 410; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean +}; + +//! Command that corresponds to glUniformMatrix3fv. +struct UniformMatrix3fv { + static const CommandId kCmdId = 411; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean + uint32 value_shm_id; //!< uint32 + uint32 value_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniformMatrix3fv. +struct UniformMatrix3fvImmediate { + static const CommandId kCmdId = 412; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean +}; + +//! Command that corresponds to glUniformMatrix4fv. +struct UniformMatrix4fv { + static const CommandId kCmdId = 413; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean + uint32 value_shm_id; //!< uint32 + uint32 value_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glUniformMatrix4fv. +struct UniformMatrix4fvImmediate { + static const CommandId kCmdId = 414; + + CommandHeader header; + int32 location; //!< GLint + int32 count; //!< GLsizei + uint32 transpose; //!< GLboolean +}; + +//! Command that corresponds to glUseProgram. +struct UseProgram { + static const CommandId kCmdId = 415; + + CommandHeader header; + uint32 program; //!< GLuint +}; + +//! Command that corresponds to glValidateProgram. +struct ValidateProgram { + static const CommandId kCmdId = 416; + + CommandHeader header; + uint32 program; //!< GLuint +}; + +//! Command that corresponds to glVertexAttrib1f. +struct VertexAttrib1f { + static const CommandId kCmdId = 417; + + CommandHeader header; + uint32 indx; //!< GLuint + float x; //!< GLfloat +}; + +//! Command that corresponds to glVertexAttrib1fv. +struct VertexAttrib1fv { + static const CommandId kCmdId = 418; + + CommandHeader header; + uint32 indx; //!< GLuint + uint32 values_shm_id; //!< uint32 + uint32 values_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glVertexAttrib1fv. +struct VertexAttrib1fvImmediate { + static const CommandId kCmdId = 419; + + CommandHeader header; + uint32 indx; //!< GLuint +}; + +//! Command that corresponds to glVertexAttrib2f. +struct VertexAttrib2f { + static const CommandId kCmdId = 420; + + CommandHeader header; + uint32 indx; //!< GLuint + float x; //!< GLfloat + float y; //!< GLfloat +}; + +//! Command that corresponds to glVertexAttrib2fv. +struct VertexAttrib2fv { + static const CommandId kCmdId = 421; + + CommandHeader header; + uint32 indx; //!< GLuint + uint32 values_shm_id; //!< uint32 + uint32 values_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glVertexAttrib2fv. +struct VertexAttrib2fvImmediate { + static const CommandId kCmdId = 422; + + CommandHeader header; + uint32 indx; //!< GLuint +}; + +//! Command that corresponds to glVertexAttrib3f. +struct VertexAttrib3f { + static const CommandId kCmdId = 423; + + CommandHeader header; + uint32 indx; //!< GLuint + float x; //!< GLfloat + float y; //!< GLfloat + float z; //!< GLfloat +}; + +//! Command that corresponds to glVertexAttrib3fv. +struct VertexAttrib3fv { + static const CommandId kCmdId = 424; + + CommandHeader header; + uint32 indx; //!< GLuint + uint32 values_shm_id; //!< uint32 + uint32 values_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glVertexAttrib3fv. +struct VertexAttrib3fvImmediate { + static const CommandId kCmdId = 425; + + CommandHeader header; + uint32 indx; //!< GLuint +}; + +//! Command that corresponds to glVertexAttrib4f. +struct VertexAttrib4f { + static const CommandId kCmdId = 426; + + CommandHeader header; + uint32 indx; //!< GLuint + float x; //!< GLfloat + float y; //!< GLfloat + float z; //!< GLfloat + float w; //!< GLfloat +}; + +//! Command that corresponds to glVertexAttrib4fv. +struct VertexAttrib4fv { + static const CommandId kCmdId = 427; + + CommandHeader header; + uint32 indx; //!< GLuint + uint32 values_shm_id; //!< uint32 + uint32 values_shm_offset; //!< uint32 +}; + +//! Immediate version of command that corresponds to glVertexAttrib4fv. +struct VertexAttrib4fvImmediate { + static const CommandId kCmdId = 428; + + CommandHeader header; + uint32 indx; //!< GLuint +}; + +//! Command that corresponds to glVertexAttribPointer. +struct VertexAttribPointer { + static const CommandId kCmdId = 429; + + CommandHeader header; + uint32 indx; //!< GLuint + int32 size; //!< GLint + uint32 type; //!< GLenum + uint32 normalized; //!< GLboolean + int32 stride; //!< GLsizei + uint32 offset; //!< GLuint +}; + +//! Command that corresponds to glViewport. +struct Viewport { + static const CommandId kCmdId = 430; + + CommandHeader header; + int32 x; //!< GLint + int32 y; //!< GLint + int32 width; //!< GLsizei + int32 height; //!< GLsizei +}; + +//! Command that corresponds to SwapBuffers. +struct SwapBuffers { + static const CommandId kCmdId = 431; + + CommandHeader header; +}; + + |