diff options
Diffstat (limited to 'chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h')
-rw-r--r-- | chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h index 1e30865884e..9fbab4038bf 100644 --- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h +++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h @@ -4571,6 +4571,7 @@ error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( *static_cast<const volatile gles2::cmds::CopyTextureCHROMIUM*>(cmd_data); GLenum source_id = static_cast<GLenum>(c.source_id); GLint source_level = static_cast<GLint>(c.source_level); + GLenum dest_target = static_cast<GLenum>(c.dest_target); GLenum dest_id = static_cast<GLenum>(c.dest_id); GLint dest_level = static_cast<GLint>(c.dest_level); GLint internalformat = static_cast<GLint>(c.internalformat); @@ -4590,8 +4591,8 @@ error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( "dest_type"); return error::kNoError; } - DoCopyTextureCHROMIUM(source_id, source_level, dest_id, dest_level, - internalformat, dest_type, unpack_flip_y, + DoCopyTextureCHROMIUM(source_id, source_level, dest_target, dest_id, + dest_level, internalformat, dest_type, unpack_flip_y, unpack_premultiply_alpha, unpack_unmultiply_alpha); return error::kNoError; } @@ -4604,6 +4605,7 @@ error::Error GLES2DecoderImpl::HandleCopySubTextureCHROMIUM( cmd_data); GLenum source_id = static_cast<GLenum>(c.source_id); GLint source_level = static_cast<GLint>(c.source_level); + GLenum dest_target = static_cast<GLenum>(c.dest_target); GLenum dest_id = static_cast<GLenum>(c.dest_id); GLint dest_level = static_cast<GLint>(c.dest_level); GLint xoffset = static_cast<GLint>(c.xoffset); @@ -4627,9 +4629,10 @@ error::Error GLES2DecoderImpl::HandleCopySubTextureCHROMIUM( "height < 0"); return error::kNoError; } - DoCopySubTextureCHROMIUM(source_id, source_level, dest_id, dest_level, - xoffset, yoffset, x, y, width, height, unpack_flip_y, - unpack_premultiply_alpha, unpack_unmultiply_alpha); + DoCopySubTextureCHROMIUM(source_id, source_level, dest_target, dest_id, + dest_level, xoffset, yoffset, x, y, width, height, + unpack_flip_y, unpack_premultiply_alpha, + unpack_unmultiply_alpha); return error::kNoError; } @@ -5125,6 +5128,50 @@ error::Error GLES2DecoderImpl::HandleOverlayPromotionHintCHROMIUM( return error::kNoError; } +error::Error GLES2DecoderImpl::HandleSwapBuffersWithBoundsCHROMIUMImmediate( + uint32_t immediate_data_size, + const volatile void* cmd_data) { + const volatile gles2::cmds::SwapBuffersWithBoundsCHROMIUMImmediate& c = + *static_cast< + const volatile gles2::cmds::SwapBuffersWithBoundsCHROMIUMImmediate*>( + cmd_data); + GLsizei count = static_cast<GLsizei>(c.count); + uint32_t data_size = 0; + if (count >= 0 && + !GLES2Util::ComputeDataSize(count, sizeof(GLint), 4, &data_size)) { + return error::kOutOfBounds; + } + if (data_size > immediate_data_size) { + return error::kOutOfBounds; + } + volatile const GLint* rects = GetImmediateDataAs<volatile const GLint*>( + c, data_size, immediate_data_size); + if (count < 0) { + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glSwapBuffersWithBoundsCHROMIUM", + "count < 0"); + return error::kNoError; + } + if (rects == NULL) { + return error::kOutOfBounds; + } + DoSwapBuffersWithBoundsCHROMIUM(count, rects); + return error::kNoError; +} + +error::Error GLES2DecoderImpl::HandleSetDrawRectangleCHROMIUM( + uint32_t immediate_data_size, + const volatile void* cmd_data) { + const volatile gles2::cmds::SetDrawRectangleCHROMIUM& c = + *static_cast<const volatile gles2::cmds::SetDrawRectangleCHROMIUM*>( + cmd_data); + GLint x = static_cast<GLint>(c.x); + GLint y = static_cast<GLint>(c.y); + GLint width = static_cast<GLint>(c.width); + GLint height = static_cast<GLint>(c.height); + DoSetDrawRectangleCHROMIUM(x, y, width, height); + return error::kNoError; +} + bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) { switch (cap) { case GL_BLEND: |