| Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
|
| index f6e26a305c1fc7d90ce68d98eef646617e760417..fb3800c29fe69e22cda0b77bbe4d5164c00d9bab 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
|
| @@ -1795,6 +1795,57 @@ error::Error GLES2DecoderPassthroughImpl::HandleScheduleCALayerCHROMIUM(
|
| return error::kNoError;
|
| }
|
|
|
| +error::Error
|
| +GLES2DecoderPassthroughImpl::HandleScheduleDCLayerSharedStateCHROMIUM(
|
| + uint32_t immediate_data_size,
|
| + const volatile void* cmd_data) {
|
| + const volatile gles2::cmds::ScheduleDCLayerSharedStateCHROMIUM& c =
|
| + *static_cast<
|
| + const volatile gles2::cmds::ScheduleDCLayerSharedStateCHROMIUM*>(
|
| + cmd_data);
|
| + const GLfloat* mem = GetSharedMemoryAs<const GLfloat*>(c.shm_id, c.shm_offset,
|
| + 20 * sizeof(GLfloat));
|
| + if (!mem) {
|
| + return error::kOutOfBounds;
|
| + }
|
| + GLfloat opacity = static_cast<GLfloat>(c.opacity);
|
| + GLboolean is_clipped = static_cast<GLboolean>(c.is_clipped);
|
| + const GLfloat* clip_rect = mem + 0;
|
| + GLint z_order = static_cast<GLint>(c.z_order);
|
| + const GLfloat* transform = mem + 4;
|
| + error::Error error = DoScheduleDCLayerSharedStateCHROMIUM(
|
| + opacity, is_clipped, clip_rect, z_order, transform);
|
| + if (error != error::kNoError) {
|
| + return error;
|
| + }
|
| + return error::kNoError;
|
| +}
|
| +
|
| +error::Error GLES2DecoderPassthroughImpl::HandleScheduleDCLayerCHROMIUM(
|
| + uint32_t immediate_data_size,
|
| + const volatile void* cmd_data) {
|
| + const volatile gles2::cmds::ScheduleDCLayerCHROMIUM& c =
|
| + *static_cast<const volatile gles2::cmds::ScheduleDCLayerCHROMIUM*>(
|
| + cmd_data);
|
| + const GLfloat* mem = GetSharedMemoryAs<const GLfloat*>(c.shm_id, c.shm_offset,
|
| + 8 * sizeof(GLfloat));
|
| + if (!mem) {
|
| + return error::kOutOfBounds;
|
| + }
|
| + GLuint contents_texture_id = static_cast<GLint>(c.contents_texture_id);
|
| + const GLfloat* contents_rect = mem;
|
| + GLuint background_color = static_cast<GLuint>(c.background_color);
|
| + GLuint edge_aa_mask = static_cast<GLuint>(c.edge_aa_mask);
|
| + const GLfloat* bounds_rect = mem + 4;
|
| + error::Error error =
|
| + DoScheduleDCLayerCHROMIUM(contents_texture_id, contents_rect,
|
| + background_color, edge_aa_mask, bounds_rect);
|
| + if (error != error::kNoError) {
|
| + return error;
|
| + }
|
| + return error::kNoError;
|
| +}
|
| +
|
| error::Error GLES2DecoderPassthroughImpl::HandleGenPathsCHROMIUM(
|
| uint32_t immediate_data_size,
|
| const volatile void* cmd_data) {
|
|
|