summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/docs/gles2_cmd_format_docs.txt
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/docs/gles2_cmd_format_docs.txt')
-rw-r--r--gpu/command_buffer/docs/gles2_cmd_format_docs.txt2146
1 files changed, 2146 insertions, 0 deletions
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;
+};
+
+