| //! \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 <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 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<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 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 | |
| }; | |