command_buffer: Table based command dispatch.
Changing command dispatch from a "switch" dispatch to table
based dispatch makes DoCommand about 2 times faster on
Android, and also seems to be reducing times in other
command_buffer code due to code size reduction.
BUG=394570
Review URL: https://codereview.chromium.org/540053004
Cr-Commit-Position: refs/heads/master@{#293721}
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py
index 6720998..d0d5b9c 100755
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -2934,13 +2934,18 @@
file.Write(" %s(%s);\n" %
(func.GetGLFunctionName(), func.MakeOriginalArgString("")))
+ def WriteServiceHandlerFunctionHeader(self, func, file):
+ """Writes function header for service implementation handlers."""
+ file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s(
+ uint32_t immediate_data_size, const void* cmd_data) {
+ const gles2::cmds::%(name)s& c =
+ *static_cast<const gles2::cmds::%(name)s*>(cmd_data);
+ (void)c;
+ """ % {'name': func.name})
+
def WriteServiceImplementation(self, func, file):
"""Writes the service implementation for a command."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
self.WriteHandlerExtensionCheck(func, file)
self.WriteHandlerDeferReadWrite(func, file);
if len(func.GetOriginalArgs()) > 0:
@@ -2958,11 +2963,7 @@
def WriteImmediateServiceImplementation(self, func, file):
"""Writes the service implementation for an immediate version of command."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
self.WriteHandlerExtensionCheck(func, file)
self.WriteHandlerDeferReadWrite(func, file);
last_arg = func.GetLastOriginalArg()
@@ -2979,11 +2980,7 @@
def WriteBucketServiceImplementation(self, func, file):
"""Writes the service implementation for a bucket version of command."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
self.WriteHandlerExtensionCheck(func, file)
self.WriteHandlerDeferReadWrite(func, file);
last_arg = func.GetLastOriginalArg()
@@ -3723,11 +3720,7 @@
def WriteServiceImplementation(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
file.Write(" // TODO: for now this is a no-op\n")
file.Write(
" LOCAL_SET_GL_ERROR("
@@ -4739,11 +4732,7 @@
def WriteServiceImplementation(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
last_arg = func.GetLastOriginalArg()
all_but_last_args = func.GetOriginalArgs()[:-1]
@@ -5749,8 +5738,8 @@
def WriteServiceImplementation(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s(
- uint32_t immediate_data_size, const gles2::cmds::%(name)s& c) {
+ self.WriteServiceHandlerFunctionHeader(func, file)
+ file.Write("""
GLuint bucket_id = static_cast<GLuint>(c.%(bucket_id)s);
Bucket* bucket = GetBucket(bucket_id);
if (!bucket || bucket->size() == 0) {
@@ -5833,11 +5822,7 @@
def WriteServiceImplementation(self, func, file):
"""Overrriden from TypeHandler."""
- file.Write(
- "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
- file.Write(
- " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" %
- func.name)
+ self.WriteServiceHandlerFunctionHeader(func, file)
args = func.GetOriginalArgs()
for arg in args:
arg.WriteGetCode(file)
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 8c28900..d0b1c69 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -248,26 +248,6 @@
return true;
}
-// A struct to hold info about each command.
-struct CommandInfo {
- uint8 arg_flags; // How to handle the arguments for this command
- uint8 cmd_flags; // How to handle this command
- uint16 arg_count; // How many arguments are expected for this command.
-};
-
-// cmds::name::cmd_flags,
-// A table of CommandInfo for all the commands.
-const CommandInfo g_command_info[] = {
- #define GLES2_CMD_OP(name) { \
- cmds::name::kArgFlags, \
- cmds::name::cmd_flags, \
- sizeof(cmds::name) / sizeof(CommandBufferEntry) - 1, }, /* NOLINT */
-
- GLES2_COMMAND_LIST(GLES2_CMD_OP)
-
- #undef GLES2_CMD_OP
-};
-
// Return true if a character belongs to the ASCII subset as defined in
// GLSL ES 1.0 spec section 3.1.
static bool CharacterIsValidForGLES(unsigned char c) {
@@ -1664,10 +1644,8 @@
// Generate a member function prototype for each command in an automated and
// typesafe way.
- #define GLES2_CMD_OP(name) \
- Error Handle ## name( \
- uint32 immediate_data_size, \
- const cmds::name& args); \
+#define GLES2_CMD_OP(name) \
+ Error Handle##name(uint32 immediate_data_size, const void* data);
GLES2_COMMAND_LIST(GLES2_CMD_OP)
@@ -1836,9 +1814,36 @@
GLuint validation_fbo_multisample_;
GLuint validation_fbo_;
+ typedef gpu::gles2::GLES2Decoder::Error (GLES2DecoderImpl::*CmdHandler)(
+ uint32 immediate_data_size,
+ const void* data);
+
+ // A struct to hold info about each command.
+ struct CommandInfo {
+ CmdHandler cmd_handler;
+ uint8 arg_flags; // How to handle the arguments for this command
+ uint8 cmd_flags; // How to handle this command
+ uint16 arg_count; // How many arguments are expected for this command.
+ };
+
+ // A table of CommandInfo for all the commands.
+ static const CommandInfo command_info[kNumCommands - kStartPoint];
+
DISALLOW_COPY_AND_ASSIGN(GLES2DecoderImpl);
};
+const GLES2DecoderImpl::CommandInfo GLES2DecoderImpl::command_info[] = {
+#define GLES2_CMD_OP(name) \
+ { \
+ &GLES2DecoderImpl::Handle##name, cmds::name::kArgFlags, \
+ cmds::name::cmd_flags, \
+ sizeof(cmds::name) / sizeof(CommandBufferEntry) - 1, \
+ } \
+ , /* NOLINT */
+ GLES2_COMMAND_LIST(GLES2_CMD_OP)
+#undef GLES2_CMD_OP
+};
+
ScopedGLErrorSuppressor::ScopedGLErrorSuppressor(
const char* function_name, ErrorState* error_state)
: function_name_(function_name),
@@ -3694,8 +3699,10 @@
return true;
}
-error::Error GLES2DecoderImpl::HandleResizeCHROMIUM(
- uint32 immediate_data_size, const cmds::ResizeCHROMIUM& c) {
+error::Error GLES2DecoderImpl::HandleResizeCHROMIUM(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ResizeCHROMIUM& c =
+ *static_cast<const gles2::cmds::ResizeCHROMIUM*>(cmd_data);
if (!offscreen_target_frame_buffer_.get() && surface_->DeferDraws())
return error::kDeferCommandUntilLater;
@@ -3757,8 +3764,8 @@
<< GetCommandName(command);
}
unsigned int command_index = command - kStartPoint - 1;
- if (command_index < arraysize(g_command_info)) {
- const CommandInfo& info = g_command_info[command_index];
+ if (command_index < arraysize(command_info)) {
+ const CommandInfo& info = command_info[command_index];
unsigned int info_arg_count = static_cast<unsigned int>(info.arg_count);
if ((info.arg_flags == cmd::kFixed && arg_count == info_arg_count) ||
(info.arg_flags == cmd::kAtLeastN && arg_count >= info_arg_count)) {
@@ -3772,17 +3779,8 @@
uint32 immediate_data_size =
(arg_count - info_arg_count) * sizeof(CommandBufferEntry); // NOLINT
- switch (command) {
- #define GLES2_CMD_OP(name) \
- case cmds::name::kCmdId: \
- result = Handle ## name( \
- immediate_data_size, \
- *static_cast<const gles2::cmds::name*>(cmd_data)); \
- break; \
- GLES2_COMMAND_LIST(GLES2_CMD_OP)
- #undef GLES2_CMD_OP
- }
+ result = (this->*info.cmd_handler)(immediate_data_size, cmd_data);
if (doing_gpu_trace)
gpu_tracer_->End(kTraceDecoder);
@@ -4808,7 +4806,10 @@
}
error::Error GLES2DecoderImpl::HandleBindAttribLocationBucket(
- uint32 immediate_data_size, const cmds::BindAttribLocationBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BindAttribLocationBucket& c =
+ *static_cast<const gles2::cmds::BindAttribLocationBucket*>(cmd_data);
GLuint program = static_cast<GLuint>(c.program);
GLuint index = static_cast<GLuint>(c.index);
Bucket* bucket = GetBucket(c.name_bucket_id);
@@ -4859,7 +4860,10 @@
error::Error GLES2DecoderImpl::HandleBindUniformLocationCHROMIUMBucket(
uint32 immediate_data_size,
- const cmds::BindUniformLocationCHROMIUMBucket& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindUniformLocationCHROMIUMBucket& c =
+ *static_cast<const gles2::cmds::BindUniformLocationCHROMIUMBucket*>(
+ cmd_data);
GLuint program = static_cast<GLuint>(c.program);
GLint location = static_cast<GLint>(c.location);
Bucket* bucket = GetBucket(c.name_bucket_id);
@@ -4874,8 +4878,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDeleteShader(
- uint32 immediate_data_size, const cmds::DeleteShader& c) {
+error::Error GLES2DecoderImpl::HandleDeleteShader(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteShader& c =
+ *static_cast<const gles2::cmds::DeleteShader*>(cmd_data);
GLuint client_id = c.shader;
if (client_id) {
Shader* shader = GetShader(client_id);
@@ -4891,8 +4897,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDeleteProgram(
- uint32 immediate_data_size, const cmds::DeleteProgram& c) {
+error::Error GLES2DecoderImpl::HandleDeleteProgram(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteProgram& c =
+ *static_cast<const gles2::cmds::DeleteProgram*>(cmd_data);
GLuint client_id = c.program;
if (client_id) {
Program* program = GetProgram(client_id);
@@ -4917,7 +4925,10 @@
}
error::Error GLES2DecoderImpl::HandleDeleteSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::DeleteSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::DeleteSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLsizei n = static_cast<GLsizei>(c.n);
uint32 data_size;
@@ -4953,7 +4964,10 @@
}
error::Error GLES2DecoderImpl::HandleGenSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::GenSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GenSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::GenSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLuint id_offset = static_cast<GLuint>(c.id_offset);
GLsizei n = static_cast<GLsizei>(c.n);
@@ -4991,7 +5005,10 @@
}
error::Error GLES2DecoderImpl::HandleRegisterSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::RegisterSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::RegisterSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::RegisterSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLsizei n = static_cast<GLsizei>(c.n);
uint32 data_size;
@@ -6565,8 +6582,9 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDrawArrays(
- uint32 immediate_data_size, const cmds::DrawArrays& c) {
+error::Error GLES2DecoderImpl::HandleDrawArrays(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const cmds::DrawArrays& c = *static_cast<const cmds::DrawArrays*>(cmd_data);
return DoDrawArrays("glDrawArrays",
false,
static_cast<GLenum>(c.mode),
@@ -6576,7 +6594,10 @@
}
error::Error GLES2DecoderImpl::HandleDrawArraysInstancedANGLE(
- uint32 immediate_data_size, const cmds::DrawArraysInstancedANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawArraysInstancedANGLE& c =
+ *static_cast<const gles2::cmds::DrawArraysInstancedANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -6704,8 +6725,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDrawElements(
- uint32 immediate_data_size, const cmds::DrawElements& c) {
+error::Error GLES2DecoderImpl::HandleDrawElements(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawElements& c =
+ *static_cast<const gles2::cmds::DrawElements*>(cmd_data);
return DoDrawElements("glDrawElements",
false,
static_cast<GLenum>(c.mode),
@@ -6716,7 +6739,10 @@
}
error::Error GLES2DecoderImpl::HandleDrawElementsInstancedANGLE(
- uint32 immediate_data_size, const cmds::DrawElementsInstancedANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawElementsInstancedANGLE& c =
+ *static_cast<const gles2::cmds::DrawElementsInstancedANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -6770,7 +6796,10 @@
}
error::Error GLES2DecoderImpl::HandleShaderSourceBucket(
- uint32 immediate_data_size, const cmds::ShaderSourceBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ShaderSourceBucket& c =
+ *static_cast<const gles2::cmds::ShaderSourceBucket*>(cmd_data);
Bucket* bucket = GetBucket(c.data_bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -6825,8 +6854,10 @@
glGetShaderiv(shader->service_id(), pname, params);
}
-error::Error GLES2DecoderImpl::HandleGetShaderSource(
- uint32 immediate_data_size, const cmds::GetShaderSource& c) {
+error::Error GLES2DecoderImpl::HandleGetShaderSource(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderSource& c =
+ *static_cast<const gles2::cmds::GetShaderSource*>(cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6841,7 +6872,10 @@
error::Error GLES2DecoderImpl::HandleGetTranslatedShaderSourceANGLE(
uint32 immediate_data_size,
- const cmds::GetTranslatedShaderSourceANGLE& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetTranslatedShaderSourceANGLE& c =
+ *static_cast<const gles2::cmds::GetTranslatedShaderSourceANGLE*>(
+ cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6858,7 +6892,10 @@
}
error::Error GLES2DecoderImpl::HandleGetProgramInfoLog(
- uint32 immediate_data_size, const cmds::GetProgramInfoLog& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetProgramInfoLog& c =
+ *static_cast<const gles2::cmds::GetProgramInfoLog*>(cmd_data);
GLuint program_id = c.program;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6873,7 +6910,10 @@
}
error::Error GLES2DecoderImpl::HandleGetShaderInfoLog(
- uint32 immediate_data_size, const cmds::GetShaderInfoLog& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderInfoLog& c =
+ *static_cast<const gles2::cmds::GetShaderInfoLog*>(cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -7166,7 +7206,10 @@
}
error::Error GLES2DecoderImpl::HandleVertexAttribPointer(
- uint32 immediate_data_size, const cmds::VertexAttribPointer& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttribPointer& c =
+ *static_cast<const gles2::cmds::VertexAttribPointer*>(cmd_data);
if (!state_.bound_array_buffer.get() ||
state_.bound_array_buffer->IsDeleted()) {
@@ -7260,7 +7303,10 @@
}
error::Error GLES2DecoderImpl::HandleVertexAttribDivisorANGLE(
- uint32 immediate_data_size, const cmds::VertexAttribDivisorANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttribDivisorANGLE& c =
+ *static_cast<const gles2::cmds::VertexAttribDivisorANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -7411,9 +7457,10 @@
}
}
-
-error::Error GLES2DecoderImpl::HandleReadPixels(
- uint32 immediate_data_size, const cmds::ReadPixels& c) {
+error::Error GLES2DecoderImpl::HandleReadPixels(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ReadPixels& c =
+ *static_cast<const gles2::cmds::ReadPixels*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleReadPixels");
error::Error fbo_error = WillAccessBoundFramebufferForRead();
if (fbo_error != error::kNoError)
@@ -7579,8 +7626,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandlePixelStorei(
- uint32 immediate_data_size, const cmds::PixelStorei& c) {
+error::Error GLES2DecoderImpl::HandlePixelStorei(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PixelStorei& c =
+ *static_cast<const gles2::cmds::PixelStorei*>(cmd_data);
GLenum pname = c.pname;
GLenum param = c.param;
if (!validators_->pixel_store.IsValid(pname)) {
@@ -7628,7 +7677,10 @@
}
error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM(
- uint32 immediate_data_size, const cmds::PostSubBufferCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PostSubBufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::PostSubBufferCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandlePostSubBufferCHROMIUM");
{
TRACE_EVENT_SYNTHETIC_DELAY("gpu.PresentingFrame");
@@ -7658,7 +7710,9 @@
error::Error GLES2DecoderImpl::HandleScheduleOverlayPlaneCHROMIUM(
uint32 immediate_data_size,
- const cmds::ScheduleOverlayPlaneCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ScheduleOverlayPlaneCHROMIUM& c =
+ *static_cast<const gles2::cmds::ScheduleOverlayPlaneCHROMIUM*>(cmd_data);
TextureRef* ref = texture_manager()->GetTexture(c.overlay_texture_id);
if (!ref) {
LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
@@ -7727,7 +7781,10 @@
}
error::Error GLES2DecoderImpl::HandleGetAttribLocation(
- uint32 immediate_data_size, const cmds::GetAttribLocation& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetAttribLocation& c =
+ *static_cast<const gles2::cmds::GetAttribLocation*>(cmd_data);
Bucket* bucket = GetBucket(c.name_bucket_id);
if (!bucket) {
return error::kInvalidArguments;
@@ -7773,7 +7830,10 @@
}
error::Error GLES2DecoderImpl::HandleGetUniformLocation(
- uint32 immediate_data_size, const cmds::GetUniformLocation& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformLocation& c =
+ *static_cast<const gles2::cmds::GetUniformLocation*>(cmd_data);
Bucket* bucket = GetBucket(c.name_bucket_id);
if (!bucket) {
return error::kInvalidArguments;
@@ -7786,8 +7846,10 @@
c.program, c.location_shm_id, c.location_shm_offset, name_str);
}
-error::Error GLES2DecoderImpl::HandleGetString(
- uint32 immediate_data_size, const cmds::GetString& c) {
+error::Error GLES2DecoderImpl::HandleGetString(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetString& c =
+ *static_cast<const gles2::cmds::GetString*>(cmd_data);
GLenum name = static_cast<GLenum>(c.name);
if (!validators_->string_type.IsValid(name)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetString", name, "name");
@@ -7860,8 +7922,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBufferData(
- uint32 immediate_data_size, const cmds::BufferData& c) {
+error::Error GLES2DecoderImpl::HandleBufferData(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BufferData& c =
+ *static_cast<const gles2::cmds::BufferData*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLsizeiptr size = static_cast<GLsizeiptr>(c.size);
uint32 data_shm_id = static_cast<uint32>(c.data_shm_id);
@@ -8265,7 +8329,10 @@
}
error::Error GLES2DecoderImpl::HandleCompressedTexImage2D(
- uint32 immediate_data_size, const cmds::CompressedTexImage2D& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexImage2D& c =
+ *static_cast<const gles2::cmds::CompressedTexImage2D*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLenum internal_format = static_cast<GLenum>(c.internalformat);
@@ -8288,7 +8355,10 @@
}
error::Error GLES2DecoderImpl::HandleCompressedTexImage2DBucket(
- uint32 immediate_data_size, const cmds::CompressedTexImage2DBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexImage2DBucket& c =
+ *static_cast<const gles2::cmds::CompressedTexImage2DBucket*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLenum internal_format = static_cast<GLenum>(c.internalformat);
@@ -8312,7 +8382,9 @@
error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2DBucket(
uint32 immediate_data_size,
- const cmds::CompressedTexSubImage2DBucket& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexSubImage2DBucket& c =
+ *static_cast<const gles2::cmds::CompressedTexSubImage2DBucket*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLint xoffset = static_cast<GLint>(c.xoffset);
@@ -8360,8 +8432,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexImage2D(
- uint32 immediate_data_size, const cmds::TexImage2D& c) {
+error::Error GLES2DecoderImpl::HandleTexImage2D(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexImage2D& c =
+ *static_cast<const gles2::cmds::TexImage2D*>(cmd_data);
TRACE_EVENT2("gpu", "GLES2DecoderImpl::HandleTexImage2D",
"width", c.width, "height", c.height);
// Set as failed for now, but if it successed, this will be set to not failed.
@@ -8844,8 +8918,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexSubImage2D(
- uint32 immediate_data_size, const cmds::TexSubImage2D& c) {
+error::Error GLES2DecoderImpl::HandleTexSubImage2D(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexSubImage2D& c =
+ *static_cast<const gles2::cmds::TexSubImage2D*>(cmd_data);
TRACE_EVENT2("gpu", "GLES2DecoderImpl::HandleTexSubImage2D",
"width", c.width, "height", c.height);
GLboolean internal = static_cast<GLboolean>(c.internal);
@@ -8873,7 +8949,10 @@
}
error::Error GLES2DecoderImpl::HandleGetVertexAttribPointerv(
- uint32 immediate_data_size, const cmds::GetVertexAttribPointerv& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetVertexAttribPointerv& c =
+ *static_cast<const gles2::cmds::GetVertexAttribPointerv*>(cmd_data);
GLuint index = static_cast<GLuint>(c.index);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetVertexAttribPointerv::Result Result;
@@ -8962,8 +9041,10 @@
return true;
}
-error::Error GLES2DecoderImpl::HandleGetUniformiv(
- uint32 immediate_data_size, const cmds::GetUniformiv& c) {
+error::Error GLES2DecoderImpl::HandleGetUniformiv(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformiv& c =
+ *static_cast<const gles2::cmds::GetUniformiv*>(cmd_data);
GLuint program = c.program;
GLint fake_location = c.location;
GLuint service_id;
@@ -8981,8 +9062,10 @@
return error;
}
-error::Error GLES2DecoderImpl::HandleGetUniformfv(
- uint32 immediate_data_size, const cmds::GetUniformfv& c) {
+error::Error GLES2DecoderImpl::HandleGetUniformfv(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformfv& c =
+ *static_cast<const gles2::cmds::GetUniformfv*>(cmd_data);
GLuint program = c.program;
GLint fake_location = c.location;
GLuint service_id;
@@ -9012,7 +9095,10 @@
}
error::Error GLES2DecoderImpl::HandleGetShaderPrecisionFormat(
- uint32 immediate_data_size, const cmds::GetShaderPrecisionFormat& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderPrecisionFormat& c =
+ *static_cast<const gles2::cmds::GetShaderPrecisionFormat*>(cmd_data);
GLenum shader_type = static_cast<GLenum>(c.shadertype);
GLenum precision_type = static_cast<GLenum>(c.precisiontype);
typedef cmds::GetShaderPrecisionFormat::Result Result;
@@ -9050,7 +9136,10 @@
}
error::Error GLES2DecoderImpl::HandleGetAttachedShaders(
- uint32 immediate_data_size, const cmds::GetAttachedShaders& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetAttachedShaders& c =
+ *static_cast<const gles2::cmds::GetAttachedShaders*>(cmd_data);
uint32 result_size = c.result_size;
GLuint program_id = static_cast<GLuint>(c.program);
Program* program = GetProgramInfoNotShader(
@@ -9084,7 +9173,10 @@
}
error::Error GLES2DecoderImpl::HandleGetActiveUniform(
- uint32 immediate_data_size, const cmds::GetActiveUniform& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetActiveUniform& c =
+ *static_cast<const gles2::cmds::GetActiveUniform*>(cmd_data);
GLuint program_id = c.program;
GLuint index = c.index;
uint32 name_bucket_id = c.name_bucket_id;
@@ -9118,8 +9210,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetActiveAttrib(
- uint32 immediate_data_size, const cmds::GetActiveAttrib& c) {
+error::Error GLES2DecoderImpl::HandleGetActiveAttrib(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetActiveAttrib& c =
+ *static_cast<const gles2::cmds::GetActiveAttrib*>(cmd_data);
GLuint program_id = c.program;
GLuint index = c.index;
uint32 name_bucket_id = c.name_bucket_id;
@@ -9153,8 +9247,8 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleShaderBinary(
- uint32 immediate_data_size, const cmds::ShaderBinary& c) {
+error::Error GLES2DecoderImpl::HandleShaderBinary(uint32 immediate_data_size,
+ const void* cmd_data) {
#if 1 // No binary shader support.
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glShaderBinary", "not supported");
return error::kNoError;
@@ -9310,7 +9404,10 @@
}
error::Error GLES2DecoderImpl::HandleEnableFeatureCHROMIUM(
- uint32 immediate_data_size, const cmds::EnableFeatureCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::EnableFeatureCHROMIUM& c =
+ *static_cast<const gles2::cmds::EnableFeatureCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -9358,7 +9455,10 @@
error::Error GLES2DecoderImpl::HandleGetRequestableExtensionsCHROMIUM(
uint32 immediate_data_size,
- const cmds::GetRequestableExtensionsCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetRequestableExtensionsCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetRequestableExtensionsCHROMIUM*>(
+ cmd_data);
Bucket* bucket = CreateBucket(c.bucket_id);
scoped_refptr<FeatureInfo> info(new FeatureInfo());
info->Initialize(disallowed_features_);
@@ -9367,7 +9467,10 @@
}
error::Error GLES2DecoderImpl::HandleRequestExtensionCHROMIUM(
- uint32 immediate_data_size, const cmds::RequestExtensionCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::RequestExtensionCHROMIUM& c =
+ *static_cast<const gles2::cmds::RequestExtensionCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -9412,7 +9515,10 @@
}
error::Error GLES2DecoderImpl::HandleGetMultipleIntegervCHROMIUM(
- uint32 immediate_data_size, const cmds::GetMultipleIntegervCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetMultipleIntegervCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetMultipleIntegervCHROMIUM*>(cmd_data);
GLuint count = c.count;
uint32 pnames_size;
if (!SafeMultiplyUint32(count, sizeof(GLenum), &pnames_size)) {
@@ -9491,7 +9597,10 @@
}
error::Error GLES2DecoderImpl::HandleGetProgramInfoCHROMIUM(
- uint32 immediate_data_size, const cmds::GetProgramInfoCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetProgramInfoCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetProgramInfoCHROMIUM*>(cmd_data);
GLuint program_id = static_cast<GLuint>(c.program);
uint32 bucket_id = c.bucket_id;
Bucket* bucket = CreateBucket(bucket_id);
@@ -9560,12 +9669,16 @@
}
error::Error GLES2DecoderImpl::HandleInsertSyncPointCHROMIUM(
- uint32 immediate_data_size, const cmds::InsertSyncPointCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
return error::kUnknownCommand;
}
error::Error GLES2DecoderImpl::HandleWaitSyncPointCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitSyncPointCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::WaitSyncPointCHROMIUM& c =
+ *static_cast<const gles2::cmds::WaitSyncPointCHROMIUM*>(cmd_data);
group_->mailbox_manager()->PullTextureUpdates();
if (wait_sync_point_callback_.is_null())
return error::kNoError;
@@ -9575,7 +9688,8 @@
}
error::Error GLES2DecoderImpl::HandleDiscardBackbufferCHROMIUM(
- uint32 immediate_data_size, const cmds::DiscardBackbufferCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
if (surface_->DeferDraws())
return error::kDeferCommandUntilLater;
if (!surface_->SetBackbufferAllocation(false))
@@ -9658,8 +9772,10 @@
ProcessFinishedAsyncTransfers();
}
-error::Error GLES2DecoderImpl::HandleBeginQueryEXT(
- uint32 immediate_data_size, const cmds::BeginQueryEXT& c) {
+error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BeginQueryEXT& c =
+ *static_cast<const gles2::cmds::BeginQueryEXT*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLuint client_id = static_cast<GLuint>(c.id);
int32 sync_shm_id = static_cast<int32>(c.sync_data_shm_id);
@@ -9731,8 +9847,10 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleEndQueryEXT(
- uint32 immediate_data_size, const cmds::EndQueryEXT& c) {
+error::Error GLES2DecoderImpl::HandleEndQueryEXT(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::EndQueryEXT& c =
+ *static_cast<const gles2::cmds::EndQueryEXT*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
uint32 submit_count = static_cast<GLuint>(c.submit_count);
ContextState::QueryMap::iterator it = state_.current_queries.find(target);
@@ -10303,7 +10421,8 @@
}
error::Error GLES2DecoderImpl::HandleGenMailboxCHROMIUM(
- uint32 immediate_data_size, const cmds::GenMailboxCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
return error::kUnknownCommand;
}
@@ -10423,7 +10542,11 @@
error::Error GLES2DecoderImpl::HandleCreateAndConsumeTextureCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate& c =
+ *static_cast<
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate*>(
+ cmd_data);
GLenum target = static_cast<GLenum>(c.target);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
@@ -10596,7 +10719,10 @@
}
error::Error GLES2DecoderImpl::HandleTraceBeginCHROMIUM(
- uint32 immediate_data_size, const cmds::TraceBeginCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TraceBeginCHROMIUM& c =
+ *static_cast<const gles2::cmds::TraceBeginCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -10774,7 +10900,10 @@
}
error::Error GLES2DecoderImpl::HandleAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::AsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::AsyncTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::AsyncTexImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleAsyncTexImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
@@ -10878,7 +11007,10 @@
}
error::Error GLES2DecoderImpl::HandleAsyncTexSubImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::AsyncTexSubImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::AsyncTexSubImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::AsyncTexSubImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleAsyncTexSubImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
@@ -10975,7 +11107,10 @@
}
error::Error GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitAsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::WaitAsyncTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::WaitAsyncTexImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
@@ -11006,7 +11141,8 @@
}
error::Error GLES2DecoderImpl::HandleWaitAllAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitAllAsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* data) {
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM");
GetAsyncPixelTransferManager()->WaitAllAsyncTexImage2D();
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
index cb55cf3e..dade363 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
@@ -12,26 +12,32 @@
#ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
#define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
-error::Error GLES2DecoderImpl::HandleActiveTexture(
- uint32_t immediate_data_size,
- const gles2::cmds::ActiveTexture& c) {
+error::Error GLES2DecoderImpl::HandleActiveTexture(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ActiveTexture& c =
+ *static_cast<const gles2::cmds::ActiveTexture*>(cmd_data);
+ (void)c;
GLenum texture = static_cast<GLenum>(c.texture);
DoActiveTexture(texture);
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleAttachShader(
- uint32_t immediate_data_size,
- const gles2::cmds::AttachShader& c) {
+error::Error GLES2DecoderImpl::HandleAttachShader(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::AttachShader& c =
+ *static_cast<const gles2::cmds::AttachShader*>(cmd_data);
+ (void)c;
GLuint program = c.program;
GLuint shader = c.shader;
DoAttachShader(program, shader);
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBindBuffer(
- uint32_t immediate_data_size,
- const gles2::cmds::BindBuffer& c) {
+error::Error GLES2DecoderImpl::HandleBindBuffer(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BindBuffer& c =
+ *static_cast<const gles2::cmds::BindBuffer*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLuint buffer = c.buffer;
if (!validators_->buffer_target.IsValid(target)) {
@@ -44,7 +50,10 @@
error::Error GLES2DecoderImpl::HandleBindFramebuffer(
uint32_t immediate_data_size,
- const gles2::cmds::BindFramebuffer& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindFramebuffer& c =
+ *static_cast<const gles2::cmds::BindFramebuffer*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLuint framebuffer = c.framebuffer;
if (!validators_->frame_buffer_target.IsValid(target)) {
@@ -57,7 +66,10 @@
error::Error GLES2DecoderImpl::HandleBindRenderbuffer(
uint32_t immediate_data_size,
- const gles2::cmds::BindRenderbuffer& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindRenderbuffer& c =
+ *static_cast<const gles2::cmds::BindRenderbuffer*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLuint renderbuffer = c.renderbuffer;
if (!validators_->render_buffer_target.IsValid(target)) {
@@ -68,9 +80,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBindTexture(
- uint32_t immediate_data_size,
- const gles2::cmds::BindTexture& c) {
+error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BindTexture& c =
+ *static_cast<const gles2::cmds::BindTexture*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLuint texture = c.texture;
if (!validators_->texture_bind_target.IsValid(target)) {
@@ -81,9 +95,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBlendColor(
- uint32_t immediate_data_size,
- const gles2::cmds::BlendColor& c) {
+error::Error GLES2DecoderImpl::HandleBlendColor(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BlendColor& c =
+ *static_cast<const gles2::cmds::BlendColor*>(cmd_data);
+ (void)c;
GLclampf red = static_cast<GLclampf>(c.red);
GLclampf green = static_cast<GLclampf>(c.green);
GLclampf blue = static_cast<GLclampf>(c.blue);
@@ -99,9 +115,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBlendEquation(
- uint32_t immediate_data_size,
- const gles2::cmds::BlendEquation& c) {
+error::Error GLES2DecoderImpl::HandleBlendEquation(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BlendEquation& c =
+ *static_cast<const gles2::cmds::BlendEquation*>(cmd_data);
+ (void)c;
GLenum mode = static_cast<GLenum>(c.mode);
if (!validators_->equation.IsValid(mode)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquation", mode, "mode");
@@ -118,7 +136,10 @@
error::Error GLES2DecoderImpl::HandleBlendEquationSeparate(
uint32_t immediate_data_size,
- const gles2::cmds::BlendEquationSeparate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BlendEquationSeparate& c =
+ *static_cast<const gles2::cmds::BlendEquationSeparate*>(cmd_data);
+ (void)c;
GLenum modeRGB = static_cast<GLenum>(c.modeRGB);
GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha);
if (!validators_->equation.IsValid(modeRGB)) {
@@ -140,9 +161,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBlendFunc(
- uint32_t immediate_data_size,
- const gles2::cmds::BlendFunc& c) {
+error::Error GLES2DecoderImpl::HandleBlendFunc(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BlendFunc& c =
+ *static_cast<const gles2::cmds::BlendFunc*>(cmd_data);
+ (void)c;
GLenum sfactor = static_cast<GLenum>(c.sfactor);
GLenum dfactor = static_cast<GLenum>(c.dfactor);
if (!validators_->src_blend_factor.IsValid(sfactor)) {
@@ -167,7 +190,10 @@
error::Error GLES2DecoderImpl::HandleBlendFuncSeparate(
uint32_t immediate_data_size,
- const gles2::cmds::BlendFuncSeparate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BlendFuncSeparate& c =
+ *static_cast<const gles2::cmds::BlendFuncSeparate*>(cmd_data);
+ (void)c;
GLenum srcRGB = static_cast<GLenum>(c.srcRGB);
GLenum dstRGB = static_cast<GLenum>(c.dstRGB);
GLenum srcAlpha = static_cast<GLenum>(c.srcAlpha);
@@ -202,9 +228,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBufferSubData(
- uint32_t immediate_data_size,
- const gles2::cmds::BufferSubData& c) {
+error::Error GLES2DecoderImpl::HandleBufferSubData(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BufferSubData& c =
+ *static_cast<const gles2::cmds::BufferSubData*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLintptr offset = static_cast<GLintptr>(c.offset);
GLsizeiptr size = static_cast<GLsizeiptr>(c.size);
@@ -228,7 +256,10 @@
error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus(
uint32_t immediate_data_size,
- const gles2::cmds::CheckFramebufferStatus& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CheckFramebufferStatus& c =
+ *static_cast<const gles2::cmds::CheckFramebufferStatus*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
typedef cmds::CheckFramebufferStatus::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -246,7 +277,10 @@
}
error::Error GLES2DecoderImpl::HandleClear(uint32_t immediate_data_size,
- const gles2::cmds::Clear& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Clear& c =
+ *static_cast<const gles2::cmds::Clear*>(cmd_data);
+ (void)c;
error::Error error;
error = WillAccessBoundFramebufferForDraw();
if (error != error::kNoError)
@@ -256,9 +290,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleClearColor(
- uint32_t immediate_data_size,
- const gles2::cmds::ClearColor& c) {
+error::Error GLES2DecoderImpl::HandleClearColor(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ClearColor& c =
+ *static_cast<const gles2::cmds::ClearColor*>(cmd_data);
+ (void)c;
GLclampf red = static_cast<GLclampf>(c.red);
GLclampf green = static_cast<GLclampf>(c.green);
GLclampf blue = static_cast<GLclampf>(c.blue);
@@ -274,9 +310,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleClearDepthf(
- uint32_t immediate_data_size,
- const gles2::cmds::ClearDepthf& c) {
+error::Error GLES2DecoderImpl::HandleClearDepthf(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ClearDepthf& c =
+ *static_cast<const gles2::cmds::ClearDepthf*>(cmd_data);
+ (void)c;
GLclampf depth = static_cast<GLclampf>(c.depth);
if (state_.depth_clear != depth) {
state_.depth_clear = depth;
@@ -285,9 +323,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleClearStencil(
- uint32_t immediate_data_size,
- const gles2::cmds::ClearStencil& c) {
+error::Error GLES2DecoderImpl::HandleClearStencil(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ClearStencil& c =
+ *static_cast<const gles2::cmds::ClearStencil*>(cmd_data);
+ (void)c;
GLint s = static_cast<GLint>(c.s);
if (state_.stencil_clear != s) {
state_.stencil_clear = s;
@@ -296,9 +336,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleColorMask(
- uint32_t immediate_data_size,
- const gles2::cmds::ColorMask& c) {
+error::Error GLES2DecoderImpl::HandleColorMask(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ColorMask& c =
+ *static_cast<const gles2::cmds::ColorMask*>(cmd_data);
+ (void)c;
GLboolean red = static_cast<GLboolean>(c.red);
GLboolean green = static_cast<GLboolean>(c.green);
GLboolean blue = static_cast<GLboolean>(c.blue);
@@ -314,9 +356,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleCompileShader(
- uint32_t immediate_data_size,
- const gles2::cmds::CompileShader& c) {
+error::Error GLES2DecoderImpl::HandleCompileShader(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CompileShader& c =
+ *static_cast<const gles2::cmds::CompileShader*>(cmd_data);
+ (void)c;
GLuint shader = c.shader;
DoCompileShader(shader);
return error::kNoError;
@@ -324,7 +368,10 @@
error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D(
uint32_t immediate_data_size,
- const gles2::cmds::CompressedTexSubImage2D& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexSubImage2D& c =
+ *static_cast<const gles2::cmds::CompressedTexSubImage2D*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLint xoffset = static_cast<GLint>(c.xoffset);
@@ -371,7 +418,10 @@
error::Error GLES2DecoderImpl::HandleCopyTexImage2D(
uint32_t immediate_data_size,
- const gles2::cmds::CopyTexImage2D& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CopyTexImage2D& c =
+ *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data);
+ (void)c;
error::Error error;
error = WillAccessBoundFramebufferForRead();
if (error != error::kNoError)
@@ -407,7 +457,10 @@
error::Error GLES2DecoderImpl::HandleCopyTexSubImage2D(
uint32_t immediate_data_size,
- const gles2::cmds::CopyTexSubImage2D& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CopyTexSubImage2D& c =
+ *static_cast<const gles2::cmds::CopyTexSubImage2D*>(cmd_data);
+ (void)c;
error::Error error;
error = WillAccessBoundFramebufferForRead();
if (error != error::kNoError)
@@ -436,9 +489,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleCreateProgram(
- uint32_t immediate_data_size,
- const gles2::cmds::CreateProgram& c) {
+error::Error GLES2DecoderImpl::HandleCreateProgram(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CreateProgram& c =
+ *static_cast<const gles2::cmds::CreateProgram*>(cmd_data);
+ (void)c;
uint32_t client_id = c.client_id;
if (!CreateProgramHelper(client_id)) {
return error::kInvalidArguments;
@@ -446,9 +501,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleCreateShader(
- uint32_t immediate_data_size,
- const gles2::cmds::CreateShader& c) {
+error::Error GLES2DecoderImpl::HandleCreateShader(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CreateShader& c =
+ *static_cast<const gles2::cmds::CreateShader*>(cmd_data);
+ (void)c;
GLenum type = static_cast<GLenum>(c.type);
if (!validators_->shader_type.IsValid(type)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glCreateShader", type, "type");
@@ -462,7 +519,10 @@
}
error::Error GLES2DecoderImpl::HandleCullFace(uint32_t immediate_data_size,
- const gles2::cmds::CullFace& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CullFace& c =
+ *static_cast<const gles2::cmds::CullFace*>(cmd_data);
+ (void)c;
GLenum mode = static_cast<GLenum>(c.mode);
if (!validators_->face_type.IsValid(mode)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glCullFace", mode, "mode");
@@ -477,7 +537,10 @@
error::Error GLES2DecoderImpl::HandleDeleteBuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteBuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteBuffersImmediate& c =
+ *static_cast<const gles2::cmds::DeleteBuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -494,7 +557,10 @@
error::Error GLES2DecoderImpl::HandleDeleteFramebuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteFramebuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteFramebuffersImmediate& c =
+ *static_cast<const gles2::cmds::DeleteFramebuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -511,7 +577,10 @@
error::Error GLES2DecoderImpl::HandleDeleteRenderbuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteRenderbuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteRenderbuffersImmediate& c =
+ *static_cast<const gles2::cmds::DeleteRenderbuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -528,7 +597,10 @@
error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteTexturesImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteTexturesImmediate& c =
+ *static_cast<const gles2::cmds::DeleteTexturesImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -543,9 +615,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDepthFunc(
- uint32_t immediate_data_size,
- const gles2::cmds::DepthFunc& c) {
+error::Error GLES2DecoderImpl::HandleDepthFunc(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DepthFunc& c =
+ *static_cast<const gles2::cmds::DepthFunc*>(cmd_data);
+ (void)c;
GLenum func = static_cast<GLenum>(c.func);
if (!validators_->cmp_function.IsValid(func)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glDepthFunc", func, "func");
@@ -558,9 +632,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDepthMask(
- uint32_t immediate_data_size,
- const gles2::cmds::DepthMask& c) {
+error::Error GLES2DecoderImpl::HandleDepthMask(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DepthMask& c =
+ *static_cast<const gles2::cmds::DepthMask*>(cmd_data);
+ (void)c;
GLboolean flag = static_cast<GLboolean>(c.flag);
if (state_.depth_mask != flag) {
state_.depth_mask = flag;
@@ -569,18 +645,22 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDepthRangef(
- uint32_t immediate_data_size,
- const gles2::cmds::DepthRangef& c) {
+error::Error GLES2DecoderImpl::HandleDepthRangef(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DepthRangef& c =
+ *static_cast<const gles2::cmds::DepthRangef*>(cmd_data);
+ (void)c;
GLclampf zNear = static_cast<GLclampf>(c.zNear);
GLclampf zFar = static_cast<GLclampf>(c.zFar);
DoDepthRangef(zNear, zFar);
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDetachShader(
- uint32_t immediate_data_size,
- const gles2::cmds::DetachShader& c) {
+error::Error GLES2DecoderImpl::HandleDetachShader(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DetachShader& c =
+ *static_cast<const gles2::cmds::DetachShader*>(cmd_data);
+ (void)c;
GLuint program = c.program;
GLuint shader = c.shader;
DoDetachShader(program, shader);
@@ -588,7 +668,10 @@
}
error::Error GLES2DecoderImpl::HandleDisable(uint32_t immediate_data_size,
- const gles2::cmds::Disable& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Disable& c =
+ *static_cast<const gles2::cmds::Disable*>(cmd_data);
+ (void)c;
GLenum cap = static_cast<GLenum>(c.cap);
if (!validators_->capability.IsValid(cap)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glDisable", cap, "cap");
@@ -600,14 +683,20 @@
error::Error GLES2DecoderImpl::HandleDisableVertexAttribArray(
uint32_t immediate_data_size,
- const gles2::cmds::DisableVertexAttribArray& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DisableVertexAttribArray& c =
+ *static_cast<const gles2::cmds::DisableVertexAttribArray*>(cmd_data);
+ (void)c;
GLuint index = static_cast<GLuint>(c.index);
DoDisableVertexAttribArray(index);
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleEnable(uint32_t immediate_data_size,
- const gles2::cmds::Enable& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Enable& c =
+ *static_cast<const gles2::cmds::Enable*>(cmd_data);
+ (void)c;
GLenum cap = static_cast<GLenum>(c.cap);
if (!validators_->capability.IsValid(cap)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glEnable", cap, "cap");
@@ -619,14 +708,20 @@
error::Error GLES2DecoderImpl::HandleEnableVertexAttribArray(
uint32_t immediate_data_size,
- const gles2::cmds::EnableVertexAttribArray& c) {
+ const void* cmd_data) {
+ const gles2::cmds::EnableVertexAttribArray& c =
+ *static_cast<const gles2::cmds::EnableVertexAttribArray*>(cmd_data);
+ (void)c;
GLuint index = static_cast<GLuint>(c.index);
DoEnableVertexAttribArray(index);
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleFinish(uint32_t immediate_data_size,
- const gles2::cmds::Finish& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Finish& c =
+ *static_cast<const gles2::cmds::Finish*>(cmd_data);
+ (void)c;
error::Error error;
error = WillAccessBoundFramebufferForRead();
if (error != error::kNoError)
@@ -636,14 +731,20 @@
}
error::Error GLES2DecoderImpl::HandleFlush(uint32_t immediate_data_size,
- const gles2::cmds::Flush& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Flush& c =
+ *static_cast<const gles2::cmds::Flush*>(cmd_data);
+ (void)c;
DoFlush();
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer(
uint32_t immediate_data_size,
- const gles2::cmds::FramebufferRenderbuffer& c) {
+ const void* cmd_data) {
+ const gles2::cmds::FramebufferRenderbuffer& c =
+ *static_cast<const gles2::cmds::FramebufferRenderbuffer*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum attachment = static_cast<GLenum>(c.attachment);
GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget);
@@ -670,7 +771,10 @@
error::Error GLES2DecoderImpl::HandleFramebufferTexture2D(
uint32_t immediate_data_size,
- const gles2::cmds::FramebufferTexture2D& c) {
+ const void* cmd_data) {
+ const gles2::cmds::FramebufferTexture2D& c =
+ *static_cast<const gles2::cmds::FramebufferTexture2D*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum attachment = static_cast<GLenum>(c.attachment);
GLenum textarget = static_cast<GLenum>(c.textarget);
@@ -694,9 +798,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleFrontFace(
- uint32_t immediate_data_size,
- const gles2::cmds::FrontFace& c) {
+error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::FrontFace& c =
+ *static_cast<const gles2::cmds::FrontFace*>(cmd_data);
+ (void)c;
GLenum mode = static_cast<GLenum>(c.mode);
if (!validators_->face_mode.IsValid(mode)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glFrontFace", mode, "mode");
@@ -711,7 +817,10 @@
error::Error GLES2DecoderImpl::HandleGenBuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenBuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenBuffersImmediate& c =
+ *static_cast<const gles2::cmds::GenBuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -730,7 +839,10 @@
error::Error GLES2DecoderImpl::HandleGenerateMipmap(
uint32_t immediate_data_size,
- const gles2::cmds::GenerateMipmap& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenerateMipmap& c =
+ *static_cast<const gles2::cmds::GenerateMipmap*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
if (!validators_->texture_bind_target.IsValid(target)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glGenerateMipmap", target, "target");
@@ -742,7 +854,10 @@
error::Error GLES2DecoderImpl::HandleGenFramebuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenFramebuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenFramebuffersImmediate& c =
+ *static_cast<const gles2::cmds::GenFramebuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -761,7 +876,10 @@
error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenRenderbuffersImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenRenderbuffersImmediate& c =
+ *static_cast<const gles2::cmds::GenRenderbuffersImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -780,7 +898,10 @@
error::Error GLES2DecoderImpl::HandleGenTexturesImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenTexturesImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenTexturesImmediate& c =
+ *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -797,9 +918,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetBooleanv(
- uint32_t immediate_data_size,
- const gles2::cmds::GetBooleanv& c) {
+error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetBooleanv& c =
+ *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data);
+ (void)c;
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetBooleanv::Result Result;
GLsizei num_values = 0;
@@ -831,7 +954,10 @@
error::Error GLES2DecoderImpl::HandleGetBufferParameteriv(
uint32_t immediate_data_size,
- const gles2::cmds::GetBufferParameteriv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetBufferParameteriv& c =
+ *static_cast<const gles2::cmds::GetBufferParameteriv*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetBufferParameteriv::Result Result;
@@ -860,7 +986,10 @@
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleGetError(uint32_t immediate_data_size,
- const gles2::cmds::GetError& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetError& c =
+ *static_cast<const gles2::cmds::GetError*>(cmd_data);
+ (void)c;
typedef cmds::GetError::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
@@ -871,9 +1000,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetFloatv(
- uint32_t immediate_data_size,
- const gles2::cmds::GetFloatv& c) {
+error::Error GLES2DecoderImpl::HandleGetFloatv(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetFloatv& c =
+ *static_cast<const gles2::cmds::GetFloatv*>(cmd_data);
+ (void)c;
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetFloatv::Result Result;
GLsizei num_values = 0;
@@ -905,7 +1036,11 @@
error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv(
uint32_t immediate_data_size,
- const gles2::cmds::GetFramebufferAttachmentParameteriv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetFramebufferAttachmentParameteriv& c =
+ *static_cast<const gles2::cmds::GetFramebufferAttachmentParameteriv*>(
+ cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum attachment = static_cast<GLenum>(c.attachment);
GLenum pname = static_cast<GLenum>(c.pname);
@@ -948,9 +1083,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetIntegerv(
- uint32_t immediate_data_size,
- const gles2::cmds::GetIntegerv& c) {
+error::Error GLES2DecoderImpl::HandleGetIntegerv(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetIntegerv& c =
+ *static_cast<const gles2::cmds::GetIntegerv*>(cmd_data);
+ (void)c;
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetIntegerv::Result Result;
GLsizei num_values = 0;
@@ -980,9 +1117,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetProgramiv(
- uint32_t immediate_data_size,
- const gles2::cmds::GetProgramiv& c) {
+error::Error GLES2DecoderImpl::HandleGetProgramiv(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetProgramiv& c =
+ *static_cast<const gles2::cmds::GetProgramiv*>(cmd_data);
+ (void)c;
GLuint program = c.program;
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetProgramiv::Result Result;
@@ -1015,7 +1154,10 @@
error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv(
uint32_t immediate_data_size,
- const gles2::cmds::GetRenderbufferParameteriv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetRenderbufferParameteriv& c =
+ *static_cast<const gles2::cmds::GetRenderbufferParameteriv*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetRenderbufferParameteriv::Result Result;
@@ -1052,9 +1194,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetShaderiv(
- uint32_t immediate_data_size,
- const gles2::cmds::GetShaderiv& c) {
+error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderiv& c =
+ *static_cast<const gles2::cmds::GetShaderiv*>(cmd_data);
+ (void)c;
GLuint shader = c.shader;
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetShaderiv::Result Result;
@@ -1087,7 +1231,10 @@
error::Error GLES2DecoderImpl::HandleGetTexParameterfv(
uint32_t immediate_data_size,
- const gles2::cmds::GetTexParameterfv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetTexParameterfv& c =
+ *static_cast<const gles2::cmds::GetTexParameterfv*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetTexParameterfv::Result Result;
@@ -1124,7 +1271,10 @@
error::Error GLES2DecoderImpl::HandleGetTexParameteriv(
uint32_t immediate_data_size,
- const gles2::cmds::GetTexParameteriv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetTexParameteriv& c =
+ *static_cast<const gles2::cmds::GetTexParameteriv*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetTexParameteriv::Result Result;
@@ -1161,7 +1311,10 @@
error::Error GLES2DecoderImpl::HandleGetVertexAttribfv(
uint32_t immediate_data_size,
- const gles2::cmds::GetVertexAttribfv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetVertexAttribfv& c =
+ *static_cast<const gles2::cmds::GetVertexAttribfv*>(cmd_data);
+ (void)c;
GLuint index = static_cast<GLuint>(c.index);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetVertexAttribfv::Result Result;
@@ -1194,7 +1347,10 @@
error::Error GLES2DecoderImpl::HandleGetVertexAttribiv(
uint32_t immediate_data_size,
- const gles2::cmds::GetVertexAttribiv& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetVertexAttribiv& c =
+ *static_cast<const gles2::cmds::GetVertexAttribiv*>(cmd_data);
+ (void)c;
GLuint index = static_cast<GLuint>(c.index);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetVertexAttribiv::Result Result;
@@ -1226,7 +1382,9 @@
}
error::Error GLES2DecoderImpl::HandleHint(uint32_t immediate_data_size,
- const gles2::cmds::Hint& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Hint& c = *static_cast<const gles2::cmds::Hint*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum mode = static_cast<GLenum>(c.mode);
if (!validators_->hint_target.IsValid(target)) {
@@ -1257,7 +1415,10 @@
}
error::Error GLES2DecoderImpl::HandleIsBuffer(uint32_t immediate_data_size,
- const gles2::cmds::IsBuffer& c) {
+ const void* cmd_data) {
+ const gles2::cmds::IsBuffer& c =
+ *static_cast<const gles2::cmds::IsBuffer*>(cmd_data);
+ (void)c;
GLuint buffer = c.buffer;
typedef cmds::IsBuffer::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1269,9 +1430,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleIsEnabled(
- uint32_t immediate_data_size,
- const gles2::cmds::IsEnabled& c) {
+error::Error GLES2DecoderImpl::HandleIsEnabled(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::IsEnabled& c =
+ *static_cast<const gles2::cmds::IsEnabled*>(cmd_data);
+ (void)c;
GLenum cap = static_cast<GLenum>(c.cap);
typedef cmds::IsEnabled::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1287,9 +1450,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleIsFramebuffer(
- uint32_t immediate_data_size,
- const gles2::cmds::IsFramebuffer& c) {
+error::Error GLES2DecoderImpl::HandleIsFramebuffer(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::IsFramebuffer& c =
+ *static_cast<const gles2::cmds::IsFramebuffer*>(cmd_data);
+ (void)c;
GLuint framebuffer = c.framebuffer;
typedef cmds::IsFramebuffer::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1301,9 +1466,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleIsProgram(
- uint32_t immediate_data_size,
- const gles2::cmds::IsProgram& c) {
+error::Error GLES2DecoderImpl::HandleIsProgram(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::IsProgram& c =
+ *static_cast<const gles2::cmds::IsProgram*>(cmd_data);
+ (void)c;
GLuint program = c.program;
typedef cmds::IsProgram::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1317,7 +1484,10 @@
error::Error GLES2DecoderImpl::HandleIsRenderbuffer(
uint32_t immediate_data_size,
- const gles2::cmds::IsRenderbuffer& c) {
+ const void* cmd_data) {
+ const gles2::cmds::IsRenderbuffer& c =
+ *static_cast<const gles2::cmds::IsRenderbuffer*>(cmd_data);
+ (void)c;
GLuint renderbuffer = c.renderbuffer;
typedef cmds::IsRenderbuffer::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1330,7 +1500,10 @@
}
error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size,
- const gles2::cmds::IsShader& c) {
+ const void* cmd_data) {
+ const gles2::cmds::IsShader& c =
+ *static_cast<const gles2::cmds::IsShader*>(cmd_data);
+ (void)c;
GLuint shader = c.shader;
typedef cmds::IsShader::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1342,9 +1515,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleIsTexture(
- uint32_t immediate_data_size,
- const gles2::cmds::IsTexture& c) {
+error::Error GLES2DecoderImpl::HandleIsTexture(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::IsTexture& c =
+ *static_cast<const gles2::cmds::IsTexture*>(cmd_data);
+ (void)c;
GLuint texture = c.texture;
typedef cmds::IsTexture::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -1356,9 +1531,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleLineWidth(
- uint32_t immediate_data_size,
- const gles2::cmds::LineWidth& c) {
+error::Error GLES2DecoderImpl::HandleLineWidth(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::LineWidth& c =
+ *static_cast<const gles2::cmds::LineWidth*>(cmd_data);
+ (void)c;
GLfloat width = static_cast<GLfloat>(c.width);
if (width <= 0.0f || base::IsNaN(width)) {
LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "LineWidth", "width out of range");
@@ -1371,17 +1548,21 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleLinkProgram(
- uint32_t immediate_data_size,
- const gles2::cmds::LinkProgram& c) {
+error::Error GLES2DecoderImpl::HandleLinkProgram(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::LinkProgram& c =
+ *static_cast<const gles2::cmds::LinkProgram*>(cmd_data);
+ (void)c;
GLuint program = c.program;
DoLinkProgram(program);
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandlePolygonOffset(
- uint32_t immediate_data_size,
- const gles2::cmds::PolygonOffset& c) {
+error::Error GLES2DecoderImpl::HandlePolygonOffset(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PolygonOffset& c =
+ *static_cast<const gles2::cmds::PolygonOffset*>(cmd_data);
+ (void)c;
GLfloat factor = static_cast<GLfloat>(c.factor);
GLfloat units = static_cast<GLfloat>(c.units);
if (state_.polygon_offset_factor != factor ||
@@ -1395,14 +1576,20 @@
error::Error GLES2DecoderImpl::HandleReleaseShaderCompiler(
uint32_t immediate_data_size,
- const gles2::cmds::ReleaseShaderCompiler& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ReleaseShaderCompiler& c =
+ *static_cast<const gles2::cmds::ReleaseShaderCompiler*>(cmd_data);
+ (void)c;
DoReleaseShaderCompiler();
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleRenderbufferStorage(
uint32_t immediate_data_size,
- const gles2::cmds::RenderbufferStorage& c) {
+ const void* cmd_data) {
+ const gles2::cmds::RenderbufferStorage& c =
+ *static_cast<const gles2::cmds::RenderbufferStorage*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum internalformat = static_cast<GLenum>(c.internalformat);
GLsizei width = static_cast<GLsizei>(c.width);
@@ -1430,7 +1617,10 @@
error::Error GLES2DecoderImpl::HandleSampleCoverage(
uint32_t immediate_data_size,
- const gles2::cmds::SampleCoverage& c) {
+ const void* cmd_data) {
+ const gles2::cmds::SampleCoverage& c =
+ *static_cast<const gles2::cmds::SampleCoverage*>(cmd_data);
+ (void)c;
GLclampf value = static_cast<GLclampf>(c.value);
GLboolean invert = static_cast<GLboolean>(c.invert);
DoSampleCoverage(value, invert);
@@ -1438,7 +1628,10 @@
}
error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size,
- const gles2::cmds::Scissor& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Scissor& c =
+ *static_cast<const gles2::cmds::Scissor*>(cmd_data);
+ (void)c;
GLint x = static_cast<GLint>(c.x);
GLint y = static_cast<GLint>(c.y);
GLsizei width = static_cast<GLsizei>(c.width);
@@ -1462,9 +1655,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleStencilFunc(
- uint32_t immediate_data_size,
- const gles2::cmds::StencilFunc& c) {
+error::Error GLES2DecoderImpl::HandleStencilFunc(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::StencilFunc& c =
+ *static_cast<const gles2::cmds::StencilFunc*>(cmd_data);
+ (void)c;
GLenum func = static_cast<GLenum>(c.func);
GLint ref = static_cast<GLint>(c.ref);
GLuint mask = static_cast<GLuint>(c.mask);
@@ -1488,7 +1683,10 @@
error::Error GLES2DecoderImpl::HandleStencilFuncSeparate(
uint32_t immediate_data_size,
- const gles2::cmds::StencilFuncSeparate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::StencilFuncSeparate& c =
+ *static_cast<const gles2::cmds::StencilFuncSeparate*>(cmd_data);
+ (void)c;
GLenum face = static_cast<GLenum>(c.face);
GLenum func = static_cast<GLenum>(c.func);
GLint ref = static_cast<GLint>(c.ref);
@@ -1528,9 +1726,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleStencilMask(
- uint32_t immediate_data_size,
- const gles2::cmds::StencilMask& c) {
+error::Error GLES2DecoderImpl::HandleStencilMask(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::StencilMask& c =
+ *static_cast<const gles2::cmds::StencilMask*>(cmd_data);
+ (void)c;
GLuint mask = static_cast<GLuint>(c.mask);
if (state_.stencil_front_writemask != mask ||
state_.stencil_back_writemask != mask) {
@@ -1543,7 +1743,10 @@
error::Error GLES2DecoderImpl::HandleStencilMaskSeparate(
uint32_t immediate_data_size,
- const gles2::cmds::StencilMaskSeparate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::StencilMaskSeparate& c =
+ *static_cast<const gles2::cmds::StencilMaskSeparate*>(cmd_data);
+ (void)c;
GLenum face = static_cast<GLenum>(c.face);
GLuint mask = static_cast<GLuint>(c.mask);
if (!validators_->face_type.IsValid(face)) {
@@ -1569,9 +1772,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleStencilOp(
- uint32_t immediate_data_size,
- const gles2::cmds::StencilOp& c) {
+error::Error GLES2DecoderImpl::HandleStencilOp(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::StencilOp& c =
+ *static_cast<const gles2::cmds::StencilOp*>(cmd_data);
+ (void)c;
GLenum fail = static_cast<GLenum>(c.fail);
GLenum zfail = static_cast<GLenum>(c.zfail);
GLenum zpass = static_cast<GLenum>(c.zpass);
@@ -1606,7 +1811,10 @@
error::Error GLES2DecoderImpl::HandleStencilOpSeparate(
uint32_t immediate_data_size,
- const gles2::cmds::StencilOpSeparate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::StencilOpSeparate& c =
+ *static_cast<const gles2::cmds::StencilOpSeparate*>(cmd_data);
+ (void)c;
GLenum face = static_cast<GLenum>(c.face);
GLenum fail = static_cast<GLenum>(c.fail);
GLenum zfail = static_cast<GLenum>(c.zfail);
@@ -1654,9 +1862,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexParameterf(
- uint32_t immediate_data_size,
- const gles2::cmds::TexParameterf& c) {
+error::Error GLES2DecoderImpl::HandleTexParameterf(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexParameterf& c =
+ *static_cast<const gles2::cmds::TexParameterf*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
GLfloat param = static_cast<GLfloat>(c.param);
@@ -1674,7 +1884,10 @@
error::Error GLES2DecoderImpl::HandleTexParameterfvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::TexParameterfvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::TexParameterfvImmediate& c =
+ *static_cast<const gles2::cmds::TexParameterfvImmediate*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
uint32_t data_size;
@@ -1701,9 +1914,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexParameteri(
- uint32_t immediate_data_size,
- const gles2::cmds::TexParameteri& c) {
+error::Error GLES2DecoderImpl::HandleTexParameteri(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexParameteri& c =
+ *static_cast<const gles2::cmds::TexParameteri*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
GLint param = static_cast<GLint>(c.param);
@@ -1721,7 +1936,10 @@
error::Error GLES2DecoderImpl::HandleTexParameterivImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::TexParameterivImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::TexParameterivImmediate& c =
+ *static_cast<const gles2::cmds::TexParameterivImmediate*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum pname = static_cast<GLenum>(c.pname);
uint32_t data_size;
@@ -1748,9 +1966,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform1f(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform1f& c) {
+error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform1f& c =
+ *static_cast<const gles2::cmds::Uniform1f*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat temp[1] = {
@@ -1762,7 +1982,10 @@
error::Error GLES2DecoderImpl::HandleUniform1fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform1fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform1fvImmediate& c =
+ *static_cast<const gles2::cmds::Uniform1fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1781,9 +2004,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform1i(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform1i& c) {
+error::Error GLES2DecoderImpl::HandleUniform1i(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform1i& c =
+ *static_cast<const gles2::cmds::Uniform1i*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLint x = static_cast<GLint>(c.x);
DoUniform1i(location, x);
@@ -1792,7 +2017,10 @@
error::Error GLES2DecoderImpl::HandleUniform1ivImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform1ivImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform1ivImmediate& c =
+ *static_cast<const gles2::cmds::Uniform1ivImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1811,9 +2039,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform2f(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform2f& c) {
+error::Error GLES2DecoderImpl::HandleUniform2f(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform2f& c =
+ *static_cast<const gles2::cmds::Uniform2f*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -1826,7 +2056,10 @@
error::Error GLES2DecoderImpl::HandleUniform2fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform2fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform2fvImmediate& c =
+ *static_cast<const gles2::cmds::Uniform2fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1845,9 +2078,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform2i(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform2i& c) {
+error::Error GLES2DecoderImpl::HandleUniform2i(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform2i& c =
+ *static_cast<const gles2::cmds::Uniform2i*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLint x = static_cast<GLint>(c.x);
GLint y = static_cast<GLint>(c.y);
@@ -1860,7 +2095,10 @@
error::Error GLES2DecoderImpl::HandleUniform2ivImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform2ivImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform2ivImmediate& c =
+ *static_cast<const gles2::cmds::Uniform2ivImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1879,9 +2117,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform3f(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform3f& c) {
+error::Error GLES2DecoderImpl::HandleUniform3f(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform3f& c =
+ *static_cast<const gles2::cmds::Uniform3f*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -1895,7 +2135,10 @@
error::Error GLES2DecoderImpl::HandleUniform3fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform3fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform3fvImmediate& c =
+ *static_cast<const gles2::cmds::Uniform3fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1914,9 +2157,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform3i(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform3i& c) {
+error::Error GLES2DecoderImpl::HandleUniform3i(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform3i& c =
+ *static_cast<const gles2::cmds::Uniform3i*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLint x = static_cast<GLint>(c.x);
GLint y = static_cast<GLint>(c.y);
@@ -1930,7 +2175,10 @@
error::Error GLES2DecoderImpl::HandleUniform3ivImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform3ivImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform3ivImmediate& c =
+ *static_cast<const gles2::cmds::Uniform3ivImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1949,9 +2197,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform4f(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform4f& c) {
+error::Error GLES2DecoderImpl::HandleUniform4f(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform4f& c =
+ *static_cast<const gles2::cmds::Uniform4f*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -1966,7 +2216,10 @@
error::Error GLES2DecoderImpl::HandleUniform4fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform4fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform4fvImmediate& c =
+ *static_cast<const gles2::cmds::Uniform4fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -1985,9 +2238,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUniform4i(
- uint32_t immediate_data_size,
- const gles2::cmds::Uniform4i& c) {
+error::Error GLES2DecoderImpl::HandleUniform4i(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::Uniform4i& c =
+ *static_cast<const gles2::cmds::Uniform4i*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLint x = static_cast<GLint>(c.x);
GLint y = static_cast<GLint>(c.y);
@@ -2002,7 +2257,10 @@
error::Error GLES2DecoderImpl::HandleUniform4ivImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::Uniform4ivImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Uniform4ivImmediate& c =
+ *static_cast<const gles2::cmds::Uniform4ivImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
@@ -2023,7 +2281,10 @@
error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::UniformMatrix2fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::UniformMatrix2fvImmediate& c =
+ *static_cast<const gles2::cmds::UniformMatrix2fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
GLboolean transpose = static_cast<GLboolean>(c.transpose);
@@ -2045,7 +2306,10 @@
error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::UniformMatrix3fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::UniformMatrix3fvImmediate& c =
+ *static_cast<const gles2::cmds::UniformMatrix3fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
GLboolean transpose = static_cast<GLboolean>(c.transpose);
@@ -2067,7 +2331,10 @@
error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::UniformMatrix4fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::UniformMatrix4fvImmediate& c =
+ *static_cast<const gles2::cmds::UniformMatrix4fvImmediate*>(cmd_data);
+ (void)c;
GLint location = static_cast<GLint>(c.location);
GLsizei count = static_cast<GLsizei>(c.count);
GLboolean transpose = static_cast<GLboolean>(c.transpose);
@@ -2087,9 +2354,11 @@
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleUseProgram(
- uint32_t immediate_data_size,
- const gles2::cmds::UseProgram& c) {
+error::Error GLES2DecoderImpl::HandleUseProgram(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::UseProgram& c =
+ *static_cast<const gles2::cmds::UseProgram*>(cmd_data);
+ (void)c;
GLuint program = c.program;
DoUseProgram(program);
return error::kNoError;
@@ -2097,7 +2366,10 @@
error::Error GLES2DecoderImpl::HandleValidateProgram(
uint32_t immediate_data_size,
- const gles2::cmds::ValidateProgram& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ValidateProgram& c =
+ *static_cast<const gles2::cmds::ValidateProgram*>(cmd_data);
+ (void)c;
GLuint program = c.program;
DoValidateProgram(program);
return error::kNoError;
@@ -2105,7 +2377,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib1f(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib1f& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib1f& c =
+ *static_cast<const gles2::cmds::VertexAttrib1f*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
GLfloat x = static_cast<GLfloat>(c.x);
DoVertexAttrib1f(indx, x);
@@ -2114,7 +2389,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib1fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib1fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib1fvImmediate& c =
+ *static_cast<const gles2::cmds::VertexAttrib1fvImmediate*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
@@ -2134,7 +2412,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib2f(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib2f& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib2f& c =
+ *static_cast<const gles2::cmds::VertexAttrib2f*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -2144,7 +2425,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib2fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib2fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib2fvImmediate& c =
+ *static_cast<const gles2::cmds::VertexAttrib2fvImmediate*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLfloat), 2, &data_size)) {
@@ -2164,7 +2448,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib3f(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib3f& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib3f& c =
+ *static_cast<const gles2::cmds::VertexAttrib3f*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -2175,7 +2462,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib3fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib3fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib3fvImmediate& c =
+ *static_cast<const gles2::cmds::VertexAttrib3fvImmediate*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLfloat), 3, &data_size)) {
@@ -2195,7 +2485,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib4f(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib4f& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib4f& c =
+ *static_cast<const gles2::cmds::VertexAttrib4f*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
GLfloat x = static_cast<GLfloat>(c.x);
GLfloat y = static_cast<GLfloat>(c.y);
@@ -2207,7 +2500,10 @@
error::Error GLES2DecoderImpl::HandleVertexAttrib4fvImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::VertexAttrib4fvImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttrib4fvImmediate& c =
+ *static_cast<const gles2::cmds::VertexAttrib4fvImmediate*>(cmd_data);
+ (void)c;
GLuint indx = static_cast<GLuint>(c.indx);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) {
@@ -2226,7 +2522,10 @@
}
error::Error GLES2DecoderImpl::HandleViewport(uint32_t immediate_data_size,
- const gles2::cmds::Viewport& c) {
+ const void* cmd_data) {
+ const gles2::cmds::Viewport& c =
+ *static_cast<const gles2::cmds::Viewport*>(cmd_data);
+ (void)c;
GLint x = static_cast<GLint>(c.x);
GLint y = static_cast<GLint>(c.y);
GLsizei width = static_cast<GLsizei>(c.width);
@@ -2245,7 +2544,10 @@
error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::BlitFramebufferCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BlitFramebufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::BlitFramebufferCHROMIUM*>(cmd_data);
+ (void)c;
if (!features().chromium_framebuffer_multisample) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glBlitFramebufferCHROMIUM",
@@ -2282,7 +2584,11 @@
error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c =
+ *static_cast<const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM*>(
+ cmd_data);
+ (void)c;
if (!features().chromium_framebuffer_multisample) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glRenderbufferStorageMultisampleCHROMIUM",
@@ -2331,7 +2637,11 @@
error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT(
uint32_t immediate_data_size,
- const gles2::cmds::RenderbufferStorageMultisampleEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::RenderbufferStorageMultisampleEXT& c =
+ *static_cast<const gles2::cmds::RenderbufferStorageMultisampleEXT*>(
+ cmd_data);
+ (void)c;
if (!features().multisampled_render_to_texture) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glRenderbufferStorageMultisampleEXT",
@@ -2377,7 +2687,11 @@
error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT(
uint32_t immediate_data_size,
- const gles2::cmds::FramebufferTexture2DMultisampleEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::FramebufferTexture2DMultisampleEXT& c =
+ *static_cast<const gles2::cmds::FramebufferTexture2DMultisampleEXT*>(
+ cmd_data);
+ (void)c;
if (!features().multisampled_render_to_texture) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glFramebufferTexture2DMultisampleEXT",
@@ -2419,7 +2733,10 @@
error::Error GLES2DecoderImpl::HandleTexStorage2DEXT(
uint32_t immediate_data_size,
- const gles2::cmds::TexStorage2DEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::TexStorage2DEXT& c =
+ *static_cast<const gles2::cmds::TexStorage2DEXT*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLsizei levels = static_cast<GLsizei>(c.levels);
GLenum internalFormat = static_cast<GLenum>(c.internalFormat);
@@ -2452,7 +2769,10 @@
error::Error GLES2DecoderImpl::HandleGenQueriesEXTImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenQueriesEXTImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenQueriesEXTImmediate& c =
+ *static_cast<const gles2::cmds::GenQueriesEXTImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -2471,7 +2791,10 @@
error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteQueriesEXTImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteQueriesEXTImmediate& c =
+ *static_cast<const gles2::cmds::DeleteQueriesEXTImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -2488,7 +2811,11 @@
error::Error GLES2DecoderImpl::HandleInsertEventMarkerEXT(
uint32_t immediate_data_size,
- const gles2::cmds::InsertEventMarkerEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::InsertEventMarkerEXT& c =
+ *static_cast<const gles2::cmds::InsertEventMarkerEXT*>(cmd_data);
+ (void)c;
+
GLuint bucket_id = static_cast<GLuint>(c.bucket_id);
Bucket* bucket = GetBucket(bucket_id);
if (!bucket || bucket->size() == 0) {
@@ -2504,7 +2831,11 @@
error::Error GLES2DecoderImpl::HandlePushGroupMarkerEXT(
uint32_t immediate_data_size,
- const gles2::cmds::PushGroupMarkerEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::PushGroupMarkerEXT& c =
+ *static_cast<const gles2::cmds::PushGroupMarkerEXT*>(cmd_data);
+ (void)c;
+
GLuint bucket_id = static_cast<GLuint>(c.bucket_id);
Bucket* bucket = GetBucket(bucket_id);
if (!bucket || bucket->size() == 0) {
@@ -2520,14 +2851,20 @@
error::Error GLES2DecoderImpl::HandlePopGroupMarkerEXT(
uint32_t immediate_data_size,
- const gles2::cmds::PopGroupMarkerEXT& c) {
+ const void* cmd_data) {
+ const gles2::cmds::PopGroupMarkerEXT& c =
+ *static_cast<const gles2::cmds::PopGroupMarkerEXT*>(cmd_data);
+ (void)c;
DoPopGroupMarkerEXT();
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleGenVertexArraysOESImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::GenVertexArraysOESImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GenVertexArraysOESImmediate& c =
+ *static_cast<const gles2::cmds::GenVertexArraysOESImmediate*>(cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -2546,7 +2883,11 @@
error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DeleteVertexArraysOESImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DeleteVertexArraysOESImmediate& c =
+ *static_cast<const gles2::cmds::DeleteVertexArraysOESImmediate*>(
+ cmd_data);
+ (void)c;
GLsizei n = static_cast<GLsizei>(c.n);
uint32_t data_size;
if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
@@ -2563,7 +2904,10 @@
error::Error GLES2DecoderImpl::HandleIsVertexArrayOES(
uint32_t immediate_data_size,
- const gles2::cmds::IsVertexArrayOES& c) {
+ const void* cmd_data) {
+ const gles2::cmds::IsVertexArrayOES& c =
+ *static_cast<const gles2::cmds::IsVertexArrayOES*>(cmd_data);
+ (void)c;
GLuint array = c.array;
typedef cmds::IsVertexArrayOES::Result Result;
Result* result_dst = GetSharedMemoryAs<Result*>(
@@ -2577,22 +2921,30 @@
error::Error GLES2DecoderImpl::HandleBindVertexArrayOES(
uint32_t immediate_data_size,
- const gles2::cmds::BindVertexArrayOES& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindVertexArrayOES& c =
+ *static_cast<const gles2::cmds::BindVertexArrayOES*>(cmd_data);
+ (void)c;
GLuint array = c.array;
DoBindVertexArrayOES(array);
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleSwapBuffers(
- uint32_t immediate_data_size,
- const gles2::cmds::SwapBuffers& c) {
+error::Error GLES2DecoderImpl::HandleSwapBuffers(uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::SwapBuffers& c =
+ *static_cast<const gles2::cmds::SwapBuffers*>(cmd_data);
+ (void)c;
DoSwapBuffers();
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleGetMaxValueInBufferCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::GetMaxValueInBufferCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetMaxValueInBufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetMaxValueInBufferCHROMIUM*>(cmd_data);
+ (void)c;
GLuint buffer_id = c.buffer_id;
GLsizei count = static_cast<GLsizei>(c.count);
GLenum type = static_cast<GLenum>(c.type);
@@ -2619,7 +2971,10 @@
error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::TexImageIOSurface2DCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::TexImageIOSurface2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::TexImageIOSurface2DCHROMIUM*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLsizei width = static_cast<GLsizei>(c.width);
GLsizei height = static_cast<GLsizei>(c.height);
@@ -2646,7 +3001,10 @@
error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::CopyTextureCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CopyTextureCHROMIUM& c =
+ *static_cast<const gles2::cmds::CopyTextureCHROMIUM*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLenum source_id = static_cast<GLenum>(c.source_id);
GLenum dest_id = static_cast<GLenum>(c.dest_id);
@@ -2671,7 +3029,11 @@
error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::ProduceTextureCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ProduceTextureCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::ProduceTextureCHROMIUMImmediate*>(
+ cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
@@ -2696,7 +3058,11 @@
error::Error GLES2DecoderImpl::HandleProduceTextureDirectCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate*>(
+ cmd_data);
+ (void)c;
GLuint texture = c.texture;
GLenum target = static_cast<GLenum>(c.target);
uint32_t data_size;
@@ -2722,7 +3088,11 @@
error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::ConsumeTextureCHROMIUMImmediate*>(
+ cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
@@ -2747,7 +3117,10 @@
error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::BindTexImage2DCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::BindTexImage2DCHROMIUM*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLint imageId = static_cast<GLint>(c.imageId);
if (!validators_->texture_bind_target.IsValid(target)) {
@@ -2761,7 +3134,10 @@
error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::ReleaseTexImage2DCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ReleaseTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::ReleaseTexImage2DCHROMIUM*>(cmd_data);
+ (void)c;
GLenum target = static_cast<GLenum>(c.target);
GLint imageId = static_cast<GLint>(c.imageId);
if (!validators_->texture_bind_target.IsValid(target)) {
@@ -2775,14 +3151,21 @@
error::Error GLES2DecoderImpl::HandleTraceEndCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::TraceEndCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::TraceEndCHROMIUM& c =
+ *static_cast<const gles2::cmds::TraceEndCHROMIUM*>(cmd_data);
+ (void)c;
DoTraceEndCHROMIUM();
return error::kNoError;
}
error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DiscardFramebufferEXTImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DiscardFramebufferEXTImmediate& c =
+ *static_cast<const gles2::cmds::DiscardFramebufferEXTImmediate*>(
+ cmd_data);
+ (void)c;
if (!features().ext_discard_framebuffer) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glDiscardFramebufferEXT",
@@ -2815,7 +3198,10 @@
error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::LoseContextCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::LoseContextCHROMIUM& c =
+ *static_cast<const gles2::cmds::LoseContextCHROMIUM*>(cmd_data);
+ (void)c;
GLenum current = static_cast<GLenum>(c.current);
GLenum other = static_cast<GLenum>(c.other);
if (!validators_->reset_status.IsValid(current)) {
@@ -2833,7 +3219,10 @@
error::Error GLES2DecoderImpl::HandleDrawBuffersEXTImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::DrawBuffersEXTImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::DrawBuffersEXTImmediate& c =
+ *static_cast<const gles2::cmds::DrawBuffersEXTImmediate*>(cmd_data);
+ (void)c;
GLsizei count = static_cast<GLsizei>(c.count);
uint32_t data_size;
if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) {
@@ -2857,7 +3246,10 @@
error::Error GLES2DecoderImpl::HandleMatrixLoadfCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::MatrixLoadfCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::MatrixLoadfCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::MatrixLoadfCHROMIUMImmediate*>(cmd_data);
+ (void)c;
if (!features().chromium_path_rendering) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glMatrixLoadfCHROMIUM",
@@ -2889,7 +3281,10 @@
error::Error GLES2DecoderImpl::HandleMatrixLoadIdentityCHROMIUM(
uint32_t immediate_data_size,
- const gles2::cmds::MatrixLoadIdentityCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::MatrixLoadIdentityCHROMIUM& c =
+ *static_cast<const gles2::cmds::MatrixLoadIdentityCHROMIUM*>(cmd_data);
+ (void)c;
if (!features().chromium_path_rendering) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
"glMatrixLoadIdentityCHROMIUM",