//! \file //! //! The public interface for 3D graphics is based on a command buffer. //! //! This was chosen because it provides an easy way to separate the process of //! writing commands from the process of 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 //! represents. The last 11 bits specify the command. //! //! Commands that send a variable amount of data have 1 to 3 ways to send that //! data. //! //! Many commands 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. //! //! Some 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 identified 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 (in the transfer buffer) is not initialized to the //! failure case. For example, any command that returns a SizedResult //! will take a shared memory id and offset to where to store the result. //! That size field of the result must be set to 0 before issuing the //! the command. That way, if the command buffer service fails the //! client will see a 0 size. //! //! 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 at the command buffer level //! so DrawArrays and VertexAttribPointer only take offsets into buffers. //! - 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. //! - For shared resources, it's still up to the client to make up ids. //! but to help keep them in sync with other threads the commands //! GenSharedIds, RegisterSharedIds and DeleteSharedIds can be used. //! //! 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 retrieve 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 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 no-op. 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 }; //! Bucket version of command that corresponds to glCompressedTexImage2D. struct CompressedTexImage2DBucket { static const CommandId kCmdId = 443; CommandHeader header; uint32 target; //!< GLenum int32 level; //!< GLint uint32 internalformat; //!< GLenum int32 width; //!< GLsizei int32 height; //!< GLsizei int32 border; //!< GLint uint32 bucket_id; //!< GLuint }; //! 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 }; //! Bucket version of command that corresponds to glCompressedTexSubImage2D. struct CompressedTexSubImage2DBucket { static const CommandId kCmdId = 444; CommandHeader header; uint32 target; //!< GLenum int32 level; //!< GLint int32 xoffset; //!< GLint int32 yoffset; //!< GLint int32 width; //!< GLsizei int32 height; //!< GLsizei uint32 format; //!< GLenum uint32 bucket_id; //!< GLuint }; //! 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 glReleaseShaderCompiler. struct ReleaseShaderCompiler { static const CommandId kCmdId = 437; CommandHeader header; }; //! 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 glShaderBinary. struct ShaderBinary { static const CommandId kCmdId = 436; CommandHeader header; int32 n; //!< GLsizei uint32 shaders_shm_id; //!< uint32 uint32 shaders_shm_offset; //!< uint32 uint32 binaryformat; //!< GLenum uint32 binary_shm_id; //!< uint32 uint32 binary_shm_offset; //!< uint32 int32 length; //!< 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; }; //! Command that corresponds to GetMaxValueInBuffer. struct GetMaxValueInBuffer { static const CommandId kCmdId = 436; typedef GLuint Result; CommandHeader header; uint32 buffer_id; //!< GLuint int32 count; //!< GLsizei uint32 type; //!< GLenum uint32 offset; //!< GLuint uint32 result_shm_id; //!< uint32 uint32 result_shm_offset; //!< uint32 }; //! Command that generates shared ids for contexts that share resources. struct GenSharedIds { static const CommandId kCmdId = 439; CommandHeader header; uint32 namespace_id; //!< GLuint uint32 id_offset; //!< GLuint int32 n; //!< GLsizei uint32 ids_shm_id; //!< uint32 uint32 ids_shm_offset; //!< uint32 }; //! Command that deletes shared ids. struct DeleteSharedIds { static const CommandId kCmdId = 440; CommandHeader header; uint32 namespace_id; //!< GLuint int32 n; //!< GLsizei uint32 ids_shm_id; //!< uint32 uint32 ids_shm_offset; //!< uint32 }; //! Command that registers shared ids. It is an error to attempt //! to register an id that is already registered. struct RegisterSharedIds { static const CommandId kCmdId = 441; CommandHeader header; uint32 namespace_id; //!< GLuint int32 n; //!< GLsizei uint32 ids_shm_id; //!< uint32 uint32 ids_shm_offset; //!< uint32 }; //! Command that enables features. The bucket should contain the feature string. struct CommandBufferEnable { static const CommandId kCmdId = 442; typedef GLint Result; CommandHeader header; uint32 bucket_id; //!< GLuint uint32 result_shm_id; //!< uint32 uint32 result_shm_offset; //!< uint32 };