blob: 67306abe2dbc5348c56f33bb712201a20614a116 [file] [log] [blame]
//! \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
};