| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file is auto-generated from | 5 // This file is auto-generated from |
| 6 // gpu/command_buffer/build_gles2_cmd_buffer.py | 6 // gpu/command_buffer/build_gles2_cmd_buffer.py |
| 7 // It's formatted by clang-format using chromium coding style: | 7 // It's formatted by clang-format using chromium coding style: |
| 8 // clang-format -i -style=chromium filename | 8 // clang-format -i -style=chromium filename |
| 9 // DO NOT EDIT! | 9 // DO NOT EDIT! |
| 10 | 10 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 | 136 |
| 137 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( | 137 error::Error GLES2DecoderImpl::HandleBlendEquationSeparate( |
| 138 uint32_t immediate_data_size, | 138 uint32_t immediate_data_size, |
| 139 const void* cmd_data) { | 139 const void* cmd_data) { |
| 140 const gles2::cmds::BlendEquationSeparate& c = | 140 const gles2::cmds::BlendEquationSeparate& c = |
| 141 *static_cast<const gles2::cmds::BlendEquationSeparate*>(cmd_data); | 141 *static_cast<const gles2::cmds::BlendEquationSeparate*>(cmd_data); |
| 142 (void)c; | 142 (void)c; |
| 143 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); | 143 GLenum modeRGB = static_cast<GLenum>(c.modeRGB); |
| 144 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); | 144 GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha); |
| 145 if (!validators_->equation.IsValid(modeRGB)) { | 145 if (!validators_->equation.IsValid(modeRGB)) { |
| 146 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 146 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeRGB, |
| 147 "glBlendEquationSeparate", modeRGB, "modeRGB"); | 147 "modeRGB"); |
| 148 return error::kNoError; | 148 return error::kNoError; |
| 149 } | 149 } |
| 150 if (!validators_->equation.IsValid(modeAlpha)) { | 150 if (!validators_->equation.IsValid(modeAlpha)) { |
| 151 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 151 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeAlpha, |
| 152 "glBlendEquationSeparate", modeAlpha, "modeAlpha"); | 152 "modeAlpha"); |
| 153 return error::kNoError; | 153 return error::kNoError; |
| 154 } | 154 } |
| 155 if (state_.blend_equation_rgb != modeRGB || | 155 if (state_.blend_equation_rgb != modeRGB || |
| 156 state_.blend_equation_alpha != modeAlpha) { | 156 state_.blend_equation_alpha != modeAlpha) { |
| 157 state_.blend_equation_rgb = modeRGB; | 157 state_.blend_equation_rgb = modeRGB; |
| 158 state_.blend_equation_alpha = modeAlpha; | 158 state_.blend_equation_alpha = modeAlpha; |
| 159 glBlendEquationSeparate(modeRGB, modeAlpha); | 159 glBlendEquationSeparate(modeRGB, modeAlpha); |
| 160 } | 160 } |
| 161 return error::kNoError; | 161 return error::kNoError; |
| 162 } | 162 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); | 200 GLenum dstAlpha = static_cast<GLenum>(c.dstAlpha); |
| 201 if (!validators_->src_blend_factor.IsValid(srcRGB)) { | 201 if (!validators_->src_blend_factor.IsValid(srcRGB)) { |
| 202 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcRGB, "srcRGB"); | 202 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcRGB, "srcRGB"); |
| 203 return error::kNoError; | 203 return error::kNoError; |
| 204 } | 204 } |
| 205 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { | 205 if (!validators_->dst_blend_factor.IsValid(dstRGB)) { |
| 206 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", dstRGB, "dstRGB"); | 206 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", dstRGB, "dstRGB"); |
| 207 return error::kNoError; | 207 return error::kNoError; |
| 208 } | 208 } |
| 209 if (!validators_->src_blend_factor.IsValid(srcAlpha)) { | 209 if (!validators_->src_blend_factor.IsValid(srcAlpha)) { |
| 210 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 210 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcAlpha, |
| 211 "glBlendFuncSeparate", srcAlpha, "srcAlpha"); | 211 "srcAlpha"); |
| 212 return error::kNoError; | 212 return error::kNoError; |
| 213 } | 213 } |
| 214 if (!validators_->dst_blend_factor.IsValid(dstAlpha)) { | 214 if (!validators_->dst_blend_factor.IsValid(dstAlpha)) { |
| 215 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 215 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", dstAlpha, |
| 216 "glBlendFuncSeparate", dstAlpha, "dstAlpha"); | 216 "dstAlpha"); |
| 217 return error::kNoError; | 217 return error::kNoError; |
| 218 } | 218 } |
| 219 if (state_.blend_source_rgb != srcRGB || state_.blend_dest_rgb != dstRGB || | 219 if (state_.blend_source_rgb != srcRGB || state_.blend_dest_rgb != dstRGB || |
| 220 state_.blend_source_alpha != srcAlpha || | 220 state_.blend_source_alpha != srcAlpha || |
| 221 state_.blend_dest_alpha != dstAlpha) { | 221 state_.blend_dest_alpha != dstAlpha) { |
| 222 state_.blend_source_rgb = srcRGB; | 222 state_.blend_source_rgb = srcRGB; |
| 223 state_.blend_dest_rgb = dstRGB; | 223 state_.blend_dest_rgb = dstRGB; |
| 224 state_.blend_source_alpha = srcAlpha; | 224 state_.blend_source_alpha = srcAlpha; |
| 225 state_.blend_dest_alpha = dstAlpha; | 225 state_.blend_dest_alpha = dstAlpha; |
| 226 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); | 226 glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 *static_cast<const gles2::cmds::CheckFramebufferStatus*>(cmd_data); | 261 *static_cast<const gles2::cmds::CheckFramebufferStatus*>(cmd_data); |
| 262 (void)c; | 262 (void)c; |
| 263 GLenum target = static_cast<GLenum>(c.target); | 263 GLenum target = static_cast<GLenum>(c.target); |
| 264 typedef cmds::CheckFramebufferStatus::Result Result; | 264 typedef cmds::CheckFramebufferStatus::Result Result; |
| 265 Result* result_dst = GetSharedMemoryAs<Result*>( | 265 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 266 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 266 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 267 if (!result_dst) { | 267 if (!result_dst) { |
| 268 return error::kOutOfBounds; | 268 return error::kOutOfBounds; |
| 269 } | 269 } |
| 270 if (!validators_->frame_buffer_target.IsValid(target)) { | 270 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 271 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 271 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCheckFramebufferStatus", target, |
| 272 "glCheckFramebufferStatus", target, "target"); | 272 "target"); |
| 273 return error::kNoError; | 273 return error::kNoError; |
| 274 } | 274 } |
| 275 *result_dst = DoCheckFramebufferStatus(target); | 275 *result_dst = DoCheckFramebufferStatus(target); |
| 276 return error::kNoError; | 276 return error::kNoError; |
| 277 } | 277 } |
| 278 | 278 |
| 279 error::Error GLES2DecoderImpl::HandleClear(uint32_t immediate_data_size, | 279 error::Error GLES2DecoderImpl::HandleClear(uint32_t immediate_data_size, |
| 280 const void* cmd_data) { | 280 const void* cmd_data) { |
| 281 const gles2::cmds::Clear& c = | 281 const gles2::cmds::Clear& c = |
| 282 *static_cast<const gles2::cmds::Clear*>(cmd_data); | 282 *static_cast<const gles2::cmds::Clear*>(cmd_data); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 GLint xoffset = static_cast<GLint>(c.xoffset); | 377 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 378 GLint yoffset = static_cast<GLint>(c.yoffset); | 378 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 379 GLsizei width = static_cast<GLsizei>(c.width); | 379 GLsizei width = static_cast<GLsizei>(c.width); |
| 380 GLsizei height = static_cast<GLsizei>(c.height); | 380 GLsizei height = static_cast<GLsizei>(c.height); |
| 381 GLenum format = static_cast<GLenum>(c.format); | 381 GLenum format = static_cast<GLenum>(c.format); |
| 382 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 382 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 383 uint32_t data_size = imageSize; | 383 uint32_t data_size = imageSize; |
| 384 const void* data = GetSharedMemoryAs<const void*>( | 384 const void* data = GetSharedMemoryAs<const void*>( |
| 385 c.data_shm_id, c.data_shm_offset, data_size); | 385 c.data_shm_id, c.data_shm_offset, data_size); |
| 386 if (!validators_->texture_target.IsValid(target)) { | 386 if (!validators_->texture_target.IsValid(target)) { |
| 387 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 387 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", target, |
| 388 "glCompressedTexSubImage2D", target, "target"); | 388 "target"); |
| 389 return error::kNoError; | 389 return error::kNoError; |
| 390 } | 390 } |
| 391 if (width < 0) { | 391 if (width < 0) { |
| 392 LOCAL_SET_GL_ERROR( | 392 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D", |
| 393 GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0"); | 393 "width < 0"); |
| 394 return error::kNoError; | 394 return error::kNoError; |
| 395 } | 395 } |
| 396 if (height < 0) { | 396 if (height < 0) { |
| 397 LOCAL_SET_GL_ERROR( | 397 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D", |
| 398 GL_INVALID_VALUE, "glCompressedTexSubImage2D", "height < 0"); | 398 "height < 0"); |
| 399 return error::kNoError; | 399 return error::kNoError; |
| 400 } | 400 } |
| 401 if (!validators_->compressed_texture_format.IsValid(format)) { | 401 if (!validators_->compressed_texture_format.IsValid(format)) { |
| 402 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 402 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", format, |
| 403 "glCompressedTexSubImage2D", format, "format"); | 403 "format"); |
| 404 return error::kNoError; | 404 return error::kNoError; |
| 405 } | 405 } |
| 406 if (imageSize < 0) { | 406 if (imageSize < 0) { |
| 407 LOCAL_SET_GL_ERROR( | 407 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D", |
| 408 GL_INVALID_VALUE, "glCompressedTexSubImage2D", "imageSize < 0"); | 408 "imageSize < 0"); |
| 409 return error::kNoError; | 409 return error::kNoError; |
| 410 } | 410 } |
| 411 if (data == NULL) { | 411 if (data == NULL) { |
| 412 return error::kOutOfBounds; | 412 return error::kOutOfBounds; |
| 413 } | 413 } |
| 414 DoCompressedTexSubImage2D( | 414 DoCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, |
| 415 target, level, xoffset, yoffset, width, height, format, imageSize, data); | 415 format, imageSize, data); |
| 416 return error::kNoError; | 416 return error::kNoError; |
| 417 } | 417 } |
| 418 | 418 |
| 419 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( | 419 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( |
| 420 uint32_t immediate_data_size, | 420 uint32_t immediate_data_size, |
| 421 const void* cmd_data) { | 421 const void* cmd_data) { |
| 422 const gles2::cmds::CopyTexImage2D& c = | 422 const gles2::cmds::CopyTexImage2D& c = |
| 423 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data); | 423 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data); |
| 424 (void)c; | 424 (void)c; |
| 425 error::Error error; | 425 error::Error error; |
| 426 error = WillAccessBoundFramebufferForRead(); | 426 error = WillAccessBoundFramebufferForRead(); |
| 427 if (error != error::kNoError) | 427 if (error != error::kNoError) |
| 428 return error; | 428 return error; |
| 429 GLenum target = static_cast<GLenum>(c.target); | 429 GLenum target = static_cast<GLenum>(c.target); |
| 430 GLint level = static_cast<GLint>(c.level); | 430 GLint level = static_cast<GLint>(c.level); |
| 431 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 431 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 432 GLint x = static_cast<GLint>(c.x); | 432 GLint x = static_cast<GLint>(c.x); |
| 433 GLint y = static_cast<GLint>(c.y); | 433 GLint y = static_cast<GLint>(c.y); |
| 434 GLsizei width = static_cast<GLsizei>(c.width); | 434 GLsizei width = static_cast<GLsizei>(c.width); |
| 435 GLsizei height = static_cast<GLsizei>(c.height); | 435 GLsizei height = static_cast<GLsizei>(c.height); |
| 436 GLint border = static_cast<GLint>(c.border); | 436 GLint border = static_cast<GLint>(c.border); |
| 437 if (!validators_->texture_target.IsValid(target)) { | 437 if (!validators_->texture_target.IsValid(target)) { |
| 438 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexImage2D", target, "target"); | 438 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexImage2D", target, "target"); |
| 439 return error::kNoError; | 439 return error::kNoError; |
| 440 } | 440 } |
| 441 if (!validators_->texture_internal_format.IsValid(internalformat)) { | 441 if (!validators_->texture_internal_format.IsValid(internalformat)) { |
| 442 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 442 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexImage2D", internalformat, |
| 443 "glCopyTexImage2D", internalformat, "internalformat"); | 443 "internalformat"); |
| 444 return error::kNoError; | 444 return error::kNoError; |
| 445 } | 445 } |
| 446 if (width < 0) { | 446 if (width < 0) { |
| 447 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); | 447 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); |
| 448 return error::kNoError; | 448 return error::kNoError; |
| 449 } | 449 } |
| 450 if (height < 0) { | 450 if (height < 0) { |
| 451 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); | 451 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); |
| 452 return error::kNoError; | 452 return error::kNoError; |
| 453 } | 453 } |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 743 uint32_t immediate_data_size, | 743 uint32_t immediate_data_size, |
| 744 const void* cmd_data) { | 744 const void* cmd_data) { |
| 745 const gles2::cmds::FramebufferRenderbuffer& c = | 745 const gles2::cmds::FramebufferRenderbuffer& c = |
| 746 *static_cast<const gles2::cmds::FramebufferRenderbuffer*>(cmd_data); | 746 *static_cast<const gles2::cmds::FramebufferRenderbuffer*>(cmd_data); |
| 747 (void)c; | 747 (void)c; |
| 748 GLenum target = static_cast<GLenum>(c.target); | 748 GLenum target = static_cast<GLenum>(c.target); |
| 749 GLenum attachment = static_cast<GLenum>(c.attachment); | 749 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 750 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); | 750 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); |
| 751 GLuint renderbuffer = c.renderbuffer; | 751 GLuint renderbuffer = c.renderbuffer; |
| 752 if (!validators_->frame_buffer_target.IsValid(target)) { | 752 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 753 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 753 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", target, |
| 754 "glFramebufferRenderbuffer", target, "target"); | 754 "target"); |
| 755 return error::kNoError; | 755 return error::kNoError; |
| 756 } | 756 } |
| 757 if (!validators_->attachment.IsValid(attachment)) { | 757 if (!validators_->attachment.IsValid(attachment)) { |
| 758 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 758 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", attachment, |
| 759 "glFramebufferRenderbuffer", attachment, "attachment"); | 759 "attachment"); |
| 760 return error::kNoError; | 760 return error::kNoError; |
| 761 } | 761 } |
| 762 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { | 762 if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) { |
| 763 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 763 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", |
| 764 "glFramebufferRenderbuffer", renderbuffertarget, "renderbuffertarget"); | 764 renderbuffertarget, "renderbuffertarget"); |
| 765 return error::kNoError; | 765 return error::kNoError; |
| 766 } | 766 } |
| 767 DoFramebufferRenderbuffer( | 767 DoFramebufferRenderbuffer(target, attachment, renderbuffertarget, |
| 768 target, attachment, renderbuffertarget, renderbuffer); | 768 renderbuffer); |
| 769 return error::kNoError; | 769 return error::kNoError; |
| 770 } | 770 } |
| 771 | 771 |
| 772 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( | 772 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( |
| 773 uint32_t immediate_data_size, | 773 uint32_t immediate_data_size, |
| 774 const void* cmd_data) { | 774 const void* cmd_data) { |
| 775 const gles2::cmds::FramebufferTexture2D& c = | 775 const gles2::cmds::FramebufferTexture2D& c = |
| 776 *static_cast<const gles2::cmds::FramebufferTexture2D*>(cmd_data); | 776 *static_cast<const gles2::cmds::FramebufferTexture2D*>(cmd_data); |
| 777 (void)c; | 777 (void)c; |
| 778 GLenum target = static_cast<GLenum>(c.target); | 778 GLenum target = static_cast<GLenum>(c.target); |
| 779 GLenum attachment = static_cast<GLenum>(c.attachment); | 779 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 780 GLenum textarget = static_cast<GLenum>(c.textarget); | 780 GLenum textarget = static_cast<GLenum>(c.textarget); |
| 781 GLuint texture = c.texture; | 781 GLuint texture = c.texture; |
| 782 GLint level = static_cast<GLint>(c.level); | 782 GLint level = static_cast<GLint>(c.level); |
| 783 if (!validators_->frame_buffer_target.IsValid(target)) { | 783 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 784 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", target, "target"); | 784 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", target, "target"); |
| 785 return error::kNoError; | 785 return error::kNoError; |
| 786 } | 786 } |
| 787 if (!validators_->attachment.IsValid(attachment)) { | 787 if (!validators_->attachment.IsValid(attachment)) { |
| 788 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 788 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", attachment, |
| 789 "glFramebufferTexture2D", attachment, "attachment"); | 789 "attachment"); |
| 790 return error::kNoError; | 790 return error::kNoError; |
| 791 } | 791 } |
| 792 if (!validators_->texture_target.IsValid(textarget)) { | 792 if (!validators_->texture_target.IsValid(textarget)) { |
| 793 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 793 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", textarget, |
| 794 "glFramebufferTexture2D", textarget, "textarget"); | 794 "textarget"); |
| 795 return error::kNoError; | 795 return error::kNoError; |
| 796 } | 796 } |
| 797 DoFramebufferTexture2D(target, attachment, textarget, texture, level); | 797 DoFramebufferTexture2D(target, attachment, textarget, texture, level); |
| 798 return error::kNoError; | 798 return error::kNoError; |
| 799 } | 799 } |
| 800 | 800 |
| 801 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size, | 801 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size, |
| 802 const void* cmd_data) { | 802 const void* cmd_data) { |
| 803 const gles2::cmds::FrontFace& c = | 803 const gles2::cmds::FrontFace& c = |
| 804 *static_cast<const gles2::cmds::FrontFace*>(cmd_data); | 804 *static_cast<const gles2::cmds::FrontFace*>(cmd_data); |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1044 GLenum target = static_cast<GLenum>(c.target); | 1044 GLenum target = static_cast<GLenum>(c.target); |
| 1045 GLenum attachment = static_cast<GLenum>(c.attachment); | 1045 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 1046 GLenum pname = static_cast<GLenum>(c.pname); | 1046 GLenum pname = static_cast<GLenum>(c.pname); |
| 1047 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; | 1047 typedef cmds::GetFramebufferAttachmentParameteriv::Result Result; |
| 1048 GLsizei num_values = 0; | 1048 GLsizei num_values = 0; |
| 1049 GetNumValuesReturnedForGLGet(pname, &num_values); | 1049 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1050 Result* result = GetSharedMemoryAs<Result*>( | 1050 Result* result = GetSharedMemoryAs<Result*>( |
| 1051 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1051 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1052 GLint* params = result ? result->GetData() : NULL; | 1052 GLint* params = result ? result->GetData() : NULL; |
| 1053 if (!validators_->frame_buffer_target.IsValid(target)) { | 1053 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 1054 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1054 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv", |
| 1055 "glGetFramebufferAttachmentParameteriv", target, "target"); | 1055 target, "target"); |
| 1056 return error::kNoError; | 1056 return error::kNoError; |
| 1057 } | 1057 } |
| 1058 if (!validators_->attachment.IsValid(attachment)) { | 1058 if (!validators_->attachment.IsValid(attachment)) { |
| 1059 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1059 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv", |
| 1060 "glGetFramebufferAttachmentParameteriv", attachment, "attachment"); | 1060 attachment, "attachment"); |
| 1061 return error::kNoError; | 1061 return error::kNoError; |
| 1062 } | 1062 } |
| 1063 if (!validators_->frame_buffer_parameter.IsValid(pname)) { | 1063 if (!validators_->frame_buffer_parameter.IsValid(pname)) { |
| 1064 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1064 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv", |
| 1065 "glGetFramebufferAttachmentParameteriv", pname, "pname"); | 1065 pname, "pname"); |
| 1066 return error::kNoError; | 1066 return error::kNoError; |
| 1067 } | 1067 } |
| 1068 if (params == NULL) { | 1068 if (params == NULL) { |
| 1069 return error::kOutOfBounds; | 1069 return error::kOutOfBounds; |
| 1070 } | 1070 } |
| 1071 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetFramebufferAttachmentParameteriv"); | 1071 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetFramebufferAttachmentParameteriv"); |
| 1072 // Check that the client initialized the result. | 1072 // Check that the client initialized the result. |
| 1073 if (result->size != 0) { | 1073 if (result->size != 0) { |
| 1074 return error::kInvalidArguments; | 1074 return error::kInvalidArguments; |
| 1075 } | 1075 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1160 (void)c; | 1160 (void)c; |
| 1161 GLenum target = static_cast<GLenum>(c.target); | 1161 GLenum target = static_cast<GLenum>(c.target); |
| 1162 GLenum pname = static_cast<GLenum>(c.pname); | 1162 GLenum pname = static_cast<GLenum>(c.pname); |
| 1163 typedef cmds::GetRenderbufferParameteriv::Result Result; | 1163 typedef cmds::GetRenderbufferParameteriv::Result Result; |
| 1164 GLsizei num_values = 0; | 1164 GLsizei num_values = 0; |
| 1165 GetNumValuesReturnedForGLGet(pname, &num_values); | 1165 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1166 Result* result = GetSharedMemoryAs<Result*>( | 1166 Result* result = GetSharedMemoryAs<Result*>( |
| 1167 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1167 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1168 GLint* params = result ? result->GetData() : NULL; | 1168 GLint* params = result ? result->GetData() : NULL; |
| 1169 if (!validators_->render_buffer_target.IsValid(target)) { | 1169 if (!validators_->render_buffer_target.IsValid(target)) { |
| 1170 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1170 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", target, |
| 1171 "glGetRenderbufferParameteriv", target, "target"); | 1171 "target"); |
| 1172 return error::kNoError; | 1172 return error::kNoError; |
| 1173 } | 1173 } |
| 1174 if (!validators_->render_buffer_parameter.IsValid(pname)) { | 1174 if (!validators_->render_buffer_parameter.IsValid(pname)) { |
| 1175 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1175 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", pname, |
| 1176 "glGetRenderbufferParameteriv", pname, "pname"); | 1176 "pname"); |
| 1177 return error::kNoError; | 1177 return error::kNoError; |
| 1178 } | 1178 } |
| 1179 if (params == NULL) { | 1179 if (params == NULL) { |
| 1180 return error::kOutOfBounds; | 1180 return error::kOutOfBounds; |
| 1181 } | 1181 } |
| 1182 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetRenderbufferParameteriv"); | 1182 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetRenderbufferParameteriv"); |
| 1183 // Check that the client initialized the result. | 1183 // Check that the client initialized the result. |
| 1184 if (result->size != 0) { | 1184 if (result->size != 0) { |
| 1185 return error::kInvalidArguments; | 1185 return error::kInvalidArguments; |
| 1186 } | 1186 } |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1592 (void)c; | 1592 (void)c; |
| 1593 GLenum target = static_cast<GLenum>(c.target); | 1593 GLenum target = static_cast<GLenum>(c.target); |
| 1594 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 1594 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 1595 GLsizei width = static_cast<GLsizei>(c.width); | 1595 GLsizei width = static_cast<GLsizei>(c.width); |
| 1596 GLsizei height = static_cast<GLsizei>(c.height); | 1596 GLsizei height = static_cast<GLsizei>(c.height); |
| 1597 if (!validators_->render_buffer_target.IsValid(target)) { | 1597 if (!validators_->render_buffer_target.IsValid(target)) { |
| 1598 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", target, "target"); | 1598 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", target, "target"); |
| 1599 return error::kNoError; | 1599 return error::kNoError; |
| 1600 } | 1600 } |
| 1601 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 1601 if (!validators_->render_buffer_format.IsValid(internalformat)) { |
| 1602 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 1602 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", internalformat, |
| 1603 "glRenderbufferStorage", internalformat, "internalformat"); | 1603 "internalformat"); |
| 1604 return error::kNoError; | 1604 return error::kNoError; |
| 1605 } | 1605 } |
| 1606 if (width < 0) { | 1606 if (width < 0) { |
| 1607 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); | 1607 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); |
| 1608 return error::kNoError; | 1608 return error::kNoError; |
| 1609 } | 1609 } |
| 1610 if (height < 0) { | 1610 if (height < 0) { |
| 1611 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); | 1611 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); |
| 1612 return error::kNoError; | 1612 return error::kNoError; |
| 1613 } | 1613 } |
| (...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2542 return error::kNoError; | 2542 return error::kNoError; |
| 2543 } | 2543 } |
| 2544 | 2544 |
| 2545 error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM( | 2545 error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM( |
| 2546 uint32_t immediate_data_size, | 2546 uint32_t immediate_data_size, |
| 2547 const void* cmd_data) { | 2547 const void* cmd_data) { |
| 2548 const gles2::cmds::BlitFramebufferCHROMIUM& c = | 2548 const gles2::cmds::BlitFramebufferCHROMIUM& c = |
| 2549 *static_cast<const gles2::cmds::BlitFramebufferCHROMIUM*>(cmd_data); | 2549 *static_cast<const gles2::cmds::BlitFramebufferCHROMIUM*>(cmd_data); |
| 2550 (void)c; | 2550 (void)c; |
| 2551 if (!features().chromium_framebuffer_multisample) { | 2551 if (!features().chromium_framebuffer_multisample) { |
| 2552 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 2552 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlitFramebufferCHROMIUM", |
| 2553 "glBlitFramebufferCHROMIUM", | |
| 2554 "function not available"); | 2553 "function not available"); |
| 2555 return error::kNoError; | 2554 return error::kNoError; |
| 2556 } | 2555 } |
| 2557 | 2556 |
| 2558 error::Error error; | 2557 error::Error error; |
| 2559 error = WillAccessBoundFramebufferForDraw(); | 2558 error = WillAccessBoundFramebufferForDraw(); |
| 2560 if (error != error::kNoError) | 2559 if (error != error::kNoError) |
| 2561 return error; | 2560 return error; |
| 2562 error = WillAccessBoundFramebufferForRead(); | 2561 error = WillAccessBoundFramebufferForRead(); |
| 2563 if (error != error::kNoError) | 2562 if (error != error::kNoError) |
| 2564 return error; | 2563 return error; |
| 2565 GLint srcX0 = static_cast<GLint>(c.srcX0); | 2564 GLint srcX0 = static_cast<GLint>(c.srcX0); |
| 2566 GLint srcY0 = static_cast<GLint>(c.srcY0); | 2565 GLint srcY0 = static_cast<GLint>(c.srcY0); |
| 2567 GLint srcX1 = static_cast<GLint>(c.srcX1); | 2566 GLint srcX1 = static_cast<GLint>(c.srcX1); |
| 2568 GLint srcY1 = static_cast<GLint>(c.srcY1); | 2567 GLint srcY1 = static_cast<GLint>(c.srcY1); |
| 2569 GLint dstX0 = static_cast<GLint>(c.dstX0); | 2568 GLint dstX0 = static_cast<GLint>(c.dstX0); |
| 2570 GLint dstY0 = static_cast<GLint>(c.dstY0); | 2569 GLint dstY0 = static_cast<GLint>(c.dstY0); |
| 2571 GLint dstX1 = static_cast<GLint>(c.dstX1); | 2570 GLint dstX1 = static_cast<GLint>(c.dstX1); |
| 2572 GLint dstY1 = static_cast<GLint>(c.dstY1); | 2571 GLint dstY1 = static_cast<GLint>(c.dstY1); |
| 2573 GLbitfield mask = static_cast<GLbitfield>(c.mask); | 2572 GLbitfield mask = static_cast<GLbitfield>(c.mask); |
| 2574 GLenum filter = static_cast<GLenum>(c.filter); | 2573 GLenum filter = static_cast<GLenum>(c.filter); |
| 2575 if (!validators_->blit_filter.IsValid(filter)) { | 2574 if (!validators_->blit_filter.IsValid(filter)) { |
| 2576 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2575 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlitFramebufferCHROMIUM", filter, |
| 2577 "glBlitFramebufferCHROMIUM", filter, "filter"); | 2576 "filter"); |
| 2578 return error::kNoError; | 2577 return error::kNoError; |
| 2579 } | 2578 } |
| 2580 DoBlitFramebufferCHROMIUM( | 2579 DoBlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, |
| 2581 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); | 2580 dstY1, mask, filter); |
| 2582 return error::kNoError; | 2581 return error::kNoError; |
| 2583 } | 2582 } |
| 2584 | 2583 |
| 2585 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM( | 2584 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM( |
| 2586 uint32_t immediate_data_size, | 2585 uint32_t immediate_data_size, |
| 2587 const void* cmd_data) { | 2586 const void* cmd_data) { |
| 2588 const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c = | 2587 const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM& c = |
| 2589 *static_cast<const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM*>( | 2588 *static_cast<const gles2::cmds::RenderbufferStorageMultisampleCHROMIUM*>( |
| 2590 cmd_data); | 2589 cmd_data); |
| 2591 (void)c; | 2590 (void)c; |
| 2592 if (!features().chromium_framebuffer_multisample) { | 2591 if (!features().chromium_framebuffer_multisample) { |
| 2593 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 2592 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
| 2594 "glRenderbufferStorageMultisampleCHROMIUM", | 2593 "glRenderbufferStorageMultisampleCHROMIUM", |
| 2595 "function not available"); | 2594 "function not available"); |
| 2596 return error::kNoError; | 2595 return error::kNoError; |
| 2597 } | 2596 } |
| 2598 | 2597 |
| 2599 GLenum target = static_cast<GLenum>(c.target); | 2598 GLenum target = static_cast<GLenum>(c.target); |
| 2600 GLsizei samples = static_cast<GLsizei>(c.samples); | 2599 GLsizei samples = static_cast<GLsizei>(c.samples); |
| 2601 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 2600 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 2602 GLsizei width = static_cast<GLsizei>(c.width); | 2601 GLsizei width = static_cast<GLsizei>(c.width); |
| 2603 GLsizei height = static_cast<GLsizei>(c.height); | 2602 GLsizei height = static_cast<GLsizei>(c.height); |
| 2604 if (!validators_->render_buffer_target.IsValid(target)) { | 2603 if (!validators_->render_buffer_target.IsValid(target)) { |
| 2605 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2604 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM", |
| 2606 "glRenderbufferStorageMultisampleCHROMIUM", target, "target"); | 2605 target, "target"); |
| 2607 return error::kNoError; | 2606 return error::kNoError; |
| 2608 } | 2607 } |
| 2609 if (samples < 0) { | 2608 if (samples < 0) { |
| 2610 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, | 2609 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, |
| 2611 "glRenderbufferStorageMultisampleCHROMIUM", | 2610 "glRenderbufferStorageMultisampleCHROMIUM", |
| 2612 "samples < 0"); | 2611 "samples < 0"); |
| 2613 return error::kNoError; | 2612 return error::kNoError; |
| 2614 } | 2613 } |
| 2615 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 2614 if (!validators_->render_buffer_format.IsValid(internalformat)) { |
| 2616 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM", | 2615 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM", |
| 2617 internalformat, | 2616 internalformat, "internalformat"); |
| 2618 "internalformat"); | |
| 2619 return error::kNoError; | 2617 return error::kNoError; |
| 2620 } | 2618 } |
| 2621 if (width < 0) { | 2619 if (width < 0) { |
| 2622 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, | 2620 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, |
| 2623 "glRenderbufferStorageMultisampleCHROMIUM", | 2621 "glRenderbufferStorageMultisampleCHROMIUM", "width < 0"); |
| 2624 "width < 0"); | |
| 2625 return error::kNoError; | 2622 return error::kNoError; |
| 2626 } | 2623 } |
| 2627 if (height < 0) { | 2624 if (height < 0) { |
| 2628 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, | 2625 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, |
| 2629 "glRenderbufferStorageMultisampleCHROMIUM", | 2626 "glRenderbufferStorageMultisampleCHROMIUM", |
| 2630 "height < 0"); | 2627 "height < 0"); |
| 2631 return error::kNoError; | 2628 return error::kNoError; |
| 2632 } | 2629 } |
| 2633 DoRenderbufferStorageMultisampleCHROMIUM( | 2630 DoRenderbufferStorageMultisampleCHROMIUM(target, samples, internalformat, |
| 2634 target, samples, internalformat, width, height); | 2631 width, height); |
| 2635 return error::kNoError; | 2632 return error::kNoError; |
| 2636 } | 2633 } |
| 2637 | 2634 |
| 2638 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( | 2635 error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT( |
| 2639 uint32_t immediate_data_size, | 2636 uint32_t immediate_data_size, |
| 2640 const void* cmd_data) { | 2637 const void* cmd_data) { |
| 2641 const gles2::cmds::RenderbufferStorageMultisampleEXT& c = | 2638 const gles2::cmds::RenderbufferStorageMultisampleEXT& c = |
| 2642 *static_cast<const gles2::cmds::RenderbufferStorageMultisampleEXT*>( | 2639 *static_cast<const gles2::cmds::RenderbufferStorageMultisampleEXT*>( |
| 2643 cmd_data); | 2640 cmd_data); |
| 2644 (void)c; | 2641 (void)c; |
| 2645 if (!features().multisampled_render_to_texture) { | 2642 if (!features().multisampled_render_to_texture) { |
| 2646 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 2643 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
| 2647 "glRenderbufferStorageMultisampleEXT", | 2644 "glRenderbufferStorageMultisampleEXT", |
| 2648 "function not available"); | 2645 "function not available"); |
| 2649 return error::kNoError; | 2646 return error::kNoError; |
| 2650 } | 2647 } |
| 2651 | 2648 |
| 2652 GLenum target = static_cast<GLenum>(c.target); | 2649 GLenum target = static_cast<GLenum>(c.target); |
| 2653 GLsizei samples = static_cast<GLsizei>(c.samples); | 2650 GLsizei samples = static_cast<GLsizei>(c.samples); |
| 2654 GLenum internalformat = static_cast<GLenum>(c.internalformat); | 2651 GLenum internalformat = static_cast<GLenum>(c.internalformat); |
| 2655 GLsizei width = static_cast<GLsizei>(c.width); | 2652 GLsizei width = static_cast<GLsizei>(c.width); |
| 2656 GLsizei height = static_cast<GLsizei>(c.height); | 2653 GLsizei height = static_cast<GLsizei>(c.height); |
| 2657 if (!validators_->render_buffer_target.IsValid(target)) { | 2654 if (!validators_->render_buffer_target.IsValid(target)) { |
| 2658 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2655 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT", |
| 2659 "glRenderbufferStorageMultisampleEXT", target, "target"); | 2656 target, "target"); |
| 2660 return error::kNoError; | 2657 return error::kNoError; |
| 2661 } | 2658 } |
| 2662 if (samples < 0) { | 2659 if (samples < 0) { |
| 2663 LOCAL_SET_GL_ERROR( | 2660 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", |
| 2664 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); | 2661 "samples < 0"); |
| 2665 return error::kNoError; | 2662 return error::kNoError; |
| 2666 } | 2663 } |
| 2667 if (!validators_->render_buffer_format.IsValid(internalformat)) { | 2664 if (!validators_->render_buffer_format.IsValid(internalformat)) { |
| 2668 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT", | 2665 LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT", |
| 2669 internalformat, | 2666 internalformat, "internalformat"); |
| 2670 "internalformat"); | |
| 2671 return error::kNoError; | 2667 return error::kNoError; |
| 2672 } | 2668 } |
| 2673 if (width < 0) { | 2669 if (width < 0) { |
| 2674 LOCAL_SET_GL_ERROR( | 2670 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", |
| 2675 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); | 2671 "width < 0"); |
| 2676 return error::kNoError; | 2672 return error::kNoError; |
| 2677 } | 2673 } |
| 2678 if (height < 0) { | 2674 if (height < 0) { |
| 2679 LOCAL_SET_GL_ERROR( | 2675 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", |
| 2680 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); | 2676 "height < 0"); |
| 2681 return error::kNoError; | 2677 return error::kNoError; |
| 2682 } | 2678 } |
| 2683 DoRenderbufferStorageMultisampleEXT( | 2679 DoRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, |
| 2684 target, samples, internalformat, width, height); | 2680 height); |
| 2685 return error::kNoError; | 2681 return error::kNoError; |
| 2686 } | 2682 } |
| 2687 | 2683 |
| 2688 error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT( | 2684 error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT( |
| 2689 uint32_t immediate_data_size, | 2685 uint32_t immediate_data_size, |
| 2690 const void* cmd_data) { | 2686 const void* cmd_data) { |
| 2691 const gles2::cmds::FramebufferTexture2DMultisampleEXT& c = | 2687 const gles2::cmds::FramebufferTexture2DMultisampleEXT& c = |
| 2692 *static_cast<const gles2::cmds::FramebufferTexture2DMultisampleEXT*>( | 2688 *static_cast<const gles2::cmds::FramebufferTexture2DMultisampleEXT*>( |
| 2693 cmd_data); | 2689 cmd_data); |
| 2694 (void)c; | 2690 (void)c; |
| 2695 if (!features().multisampled_render_to_texture) { | 2691 if (!features().multisampled_render_to_texture) { |
| 2696 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 2692 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
| 2697 "glFramebufferTexture2DMultisampleEXT", | 2693 "glFramebufferTexture2DMultisampleEXT", |
| 2698 "function not available"); | 2694 "function not available"); |
| 2699 return error::kNoError; | 2695 return error::kNoError; |
| 2700 } | 2696 } |
| 2701 | 2697 |
| 2702 GLenum target = static_cast<GLenum>(c.target); | 2698 GLenum target = static_cast<GLenum>(c.target); |
| 2703 GLenum attachment = static_cast<GLenum>(c.attachment); | 2699 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 2704 GLenum textarget = static_cast<GLenum>(c.textarget); | 2700 GLenum textarget = static_cast<GLenum>(c.textarget); |
| 2705 GLuint texture = c.texture; | 2701 GLuint texture = c.texture; |
| 2706 GLint level = static_cast<GLint>(c.level); | 2702 GLint level = static_cast<GLint>(c.level); |
| 2707 GLsizei samples = static_cast<GLsizei>(c.samples); | 2703 GLsizei samples = static_cast<GLsizei>(c.samples); |
| 2708 if (!validators_->frame_buffer_target.IsValid(target)) { | 2704 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 2709 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2705 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT", |
| 2710 "glFramebufferTexture2DMultisampleEXT", target, "target"); | 2706 target, "target"); |
| 2711 return error::kNoError; | 2707 return error::kNoError; |
| 2712 } | 2708 } |
| 2713 if (!validators_->attachment.IsValid(attachment)) { | 2709 if (!validators_->attachment.IsValid(attachment)) { |
| 2714 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2710 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT", |
| 2715 "glFramebufferTexture2DMultisampleEXT", attachment, "attachment"); | 2711 attachment, "attachment"); |
| 2716 return error::kNoError; | 2712 return error::kNoError; |
| 2717 } | 2713 } |
| 2718 if (!validators_->texture_target.IsValid(textarget)) { | 2714 if (!validators_->texture_target.IsValid(textarget)) { |
| 2719 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2715 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT", |
| 2720 "glFramebufferTexture2DMultisampleEXT", textarget, "textarget"); | 2716 textarget, "textarget"); |
| 2721 return error::kNoError; | 2717 return error::kNoError; |
| 2722 } | 2718 } |
| 2723 if (samples < 0) { | 2719 if (samples < 0) { |
| 2724 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, | 2720 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT", |
| 2725 "glFramebufferTexture2DMultisampleEXT", | |
| 2726 "samples < 0"); | 2721 "samples < 0"); |
| 2727 return error::kNoError; | 2722 return error::kNoError; |
| 2728 } | 2723 } |
| 2729 DoFramebufferTexture2DMultisample( | 2724 DoFramebufferTexture2DMultisample(target, attachment, textarget, texture, |
| 2730 target, attachment, textarget, texture, level, samples); | 2725 level, samples); |
| 2731 return error::kNoError; | 2726 return error::kNoError; |
| 2732 } | 2727 } |
| 2733 | 2728 |
| 2734 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT( | 2729 error::Error GLES2DecoderImpl::HandleTexStorage2DEXT( |
| 2735 uint32_t immediate_data_size, | 2730 uint32_t immediate_data_size, |
| 2736 const void* cmd_data) { | 2731 const void* cmd_data) { |
| 2737 const gles2::cmds::TexStorage2DEXT& c = | 2732 const gles2::cmds::TexStorage2DEXT& c = |
| 2738 *static_cast<const gles2::cmds::TexStorage2DEXT*>(cmd_data); | 2733 *static_cast<const gles2::cmds::TexStorage2DEXT*>(cmd_data); |
| 2739 (void)c; | 2734 (void)c; |
| 2740 GLenum target = static_cast<GLenum>(c.target); | 2735 GLenum target = static_cast<GLenum>(c.target); |
| 2741 GLsizei levels = static_cast<GLsizei>(c.levels); | 2736 GLsizei levels = static_cast<GLsizei>(c.levels); |
| 2742 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); | 2737 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); |
| 2743 GLsizei width = static_cast<GLsizei>(c.width); | 2738 GLsizei width = static_cast<GLsizei>(c.width); |
| 2744 GLsizei height = static_cast<GLsizei>(c.height); | 2739 GLsizei height = static_cast<GLsizei>(c.height); |
| 2745 if (!validators_->texture_target.IsValid(target)) { | 2740 if (!validators_->texture_target.IsValid(target)) { |
| 2746 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", target, "target"); | 2741 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", target, "target"); |
| 2747 return error::kNoError; | 2742 return error::kNoError; |
| 2748 } | 2743 } |
| 2749 if (levels < 0) { | 2744 if (levels < 0) { |
| 2750 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); | 2745 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); |
| 2751 return error::kNoError; | 2746 return error::kNoError; |
| 2752 } | 2747 } |
| 2753 if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) { | 2748 if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) { |
| 2754 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2749 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", internalFormat, |
| 2755 "glTexStorage2DEXT", internalFormat, "internalFormat"); | 2750 "internalFormat"); |
| 2756 return error::kNoError; | 2751 return error::kNoError; |
| 2757 } | 2752 } |
| 2758 if (width < 0) { | 2753 if (width < 0) { |
| 2759 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); | 2754 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); |
| 2760 return error::kNoError; | 2755 return error::kNoError; |
| 2761 } | 2756 } |
| 2762 if (height < 0) { | 2757 if (height < 0) { |
| 2763 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); | 2758 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); |
| 2764 return error::kNoError; | 2759 return error::kNoError; |
| 2765 } | 2760 } |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2949 GLsizei count = static_cast<GLsizei>(c.count); | 2944 GLsizei count = static_cast<GLsizei>(c.count); |
| 2950 GLenum type = static_cast<GLenum>(c.type); | 2945 GLenum type = static_cast<GLenum>(c.type); |
| 2951 GLuint offset = static_cast<GLuint>(c.offset); | 2946 GLuint offset = static_cast<GLuint>(c.offset); |
| 2952 typedef cmds::GetMaxValueInBufferCHROMIUM::Result Result; | 2947 typedef cmds::GetMaxValueInBufferCHROMIUM::Result Result; |
| 2953 Result* result_dst = GetSharedMemoryAs<Result*>( | 2948 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 2954 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 2949 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 2955 if (!result_dst) { | 2950 if (!result_dst) { |
| 2956 return error::kOutOfBounds; | 2951 return error::kOutOfBounds; |
| 2957 } | 2952 } |
| 2958 if (count < 0) { | 2953 if (count < 0) { |
| 2959 LOCAL_SET_GL_ERROR( | 2954 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", |
| 2960 GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0"); | 2955 "count < 0"); |
| 2961 return error::kNoError; | 2956 return error::kNoError; |
| 2962 } | 2957 } |
| 2963 if (!validators_->get_max_index_type.IsValid(type)) { | 2958 if (!validators_->get_max_index_type.IsValid(type)) { |
| 2964 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2959 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetMaxValueInBufferCHROMIUM", type, |
| 2965 "glGetMaxValueInBufferCHROMIUM", type, "type"); | 2960 "type"); |
| 2966 return error::kNoError; | 2961 return error::kNoError; |
| 2967 } | 2962 } |
| 2968 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); | 2963 *result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset); |
| 2969 return error::kNoError; | 2964 return error::kNoError; |
| 2970 } | 2965 } |
| 2971 | 2966 |
| 2972 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM( | 2967 error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM( |
| 2973 uint32_t immediate_data_size, | 2968 uint32_t immediate_data_size, |
| 2974 const void* cmd_data) { | 2969 const void* cmd_data) { |
| 2975 const gles2::cmds::TexImageIOSurface2DCHROMIUM& c = | 2970 const gles2::cmds::TexImageIOSurface2DCHROMIUM& c = |
| 2976 *static_cast<const gles2::cmds::TexImageIOSurface2DCHROMIUM*>(cmd_data); | 2971 *static_cast<const gles2::cmds::TexImageIOSurface2DCHROMIUM*>(cmd_data); |
| 2977 (void)c; | 2972 (void)c; |
| 2978 GLenum target = static_cast<GLenum>(c.target); | 2973 GLenum target = static_cast<GLenum>(c.target); |
| 2979 GLsizei width = static_cast<GLsizei>(c.width); | 2974 GLsizei width = static_cast<GLsizei>(c.width); |
| 2980 GLsizei height = static_cast<GLsizei>(c.height); | 2975 GLsizei height = static_cast<GLsizei>(c.height); |
| 2981 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId); | 2976 GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId); |
| 2982 GLuint plane = static_cast<GLuint>(c.plane); | 2977 GLuint plane = static_cast<GLuint>(c.plane); |
| 2983 if (!validators_->texture_bind_target.IsValid(target)) { | 2978 if (!validators_->texture_bind_target.IsValid(target)) { |
| 2984 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 2979 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexImageIOSurface2DCHROMIUM", target, |
| 2985 "glTexImageIOSurface2DCHROMIUM", target, "target"); | 2980 "target"); |
| 2986 return error::kNoError; | 2981 return error::kNoError; |
| 2987 } | 2982 } |
| 2988 if (width < 0) { | 2983 if (width < 0) { |
| 2989 LOCAL_SET_GL_ERROR( | 2984 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", |
| 2990 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); | 2985 "width < 0"); |
| 2991 return error::kNoError; | 2986 return error::kNoError; |
| 2992 } | 2987 } |
| 2993 if (height < 0) { | 2988 if (height < 0) { |
| 2994 LOCAL_SET_GL_ERROR( | 2989 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", |
| 2995 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); | 2990 "height < 0"); |
| 2996 return error::kNoError; | 2991 return error::kNoError; |
| 2997 } | 2992 } |
| 2998 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane); | 2993 DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane); |
| 2999 return error::kNoError; | 2994 return error::kNoError; |
| 3000 } | 2995 } |
| 3001 | 2996 |
| 3002 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( | 2997 error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM( |
| 3003 uint32_t immediate_data_size, | 2998 uint32_t immediate_data_size, |
| 3004 const void* cmd_data) { | 2999 const void* cmd_data) { |
| 3005 const gles2::cmds::CopyTextureCHROMIUM& c = | 3000 const gles2::cmds::CopyTextureCHROMIUM& c = |
| 3006 *static_cast<const gles2::cmds::CopyTextureCHROMIUM*>(cmd_data); | 3001 *static_cast<const gles2::cmds::CopyTextureCHROMIUM*>(cmd_data); |
| 3007 (void)c; | 3002 (void)c; |
| 3008 GLenum target = static_cast<GLenum>(c.target); | 3003 GLenum target = static_cast<GLenum>(c.target); |
| 3009 GLenum source_id = static_cast<GLenum>(c.source_id); | 3004 GLenum source_id = static_cast<GLenum>(c.source_id); |
| 3010 GLenum dest_id = static_cast<GLenum>(c.dest_id); | 3005 GLenum dest_id = static_cast<GLenum>(c.dest_id); |
| 3011 GLint level = static_cast<GLint>(c.level); | 3006 GLint level = static_cast<GLint>(c.level); |
| 3012 GLint internalformat = static_cast<GLint>(c.internalformat); | 3007 GLint internalformat = static_cast<GLint>(c.internalformat); |
| 3013 GLenum dest_type = static_cast<GLenum>(c.dest_type); | 3008 GLenum dest_type = static_cast<GLenum>(c.dest_type); |
| 3014 if (!validators_->texture_internal_format.IsValid(internalformat)) { | 3009 if (!validators_->texture_internal_format.IsValid(internalformat)) { |
| 3015 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, | 3010 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTextureCHROMIUM", |
| 3016 "glCopyTextureCHROMIUM", | |
| 3017 "internalformat GL_INVALID_VALUE"); | 3011 "internalformat GL_INVALID_VALUE"); |
| 3018 return error::kNoError; | 3012 return error::kNoError; |
| 3019 } | 3013 } |
| 3020 if (!validators_->pixel_type.IsValid(dest_type)) { | 3014 if (!validators_->pixel_type.IsValid(dest_type)) { |
| 3021 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3015 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTextureCHROMIUM", dest_type, |
| 3022 "glCopyTextureCHROMIUM", dest_type, "dest_type"); | 3016 "dest_type"); |
| 3023 return error::kNoError; | 3017 return error::kNoError; |
| 3024 } | 3018 } |
| 3025 DoCopyTextureCHROMIUM( | 3019 DoCopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat, |
| 3026 target, source_id, dest_id, level, internalformat, dest_type); | 3020 dest_type); |
| 3027 return error::kNoError; | 3021 return error::kNoError; |
| 3028 } | 3022 } |
| 3029 | 3023 |
| 3030 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( | 3024 error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate( |
| 3031 uint32_t immediate_data_size, | 3025 uint32_t immediate_data_size, |
| 3032 const void* cmd_data) { | 3026 const void* cmd_data) { |
| 3033 const gles2::cmds::ProduceTextureCHROMIUMImmediate& c = | 3027 const gles2::cmds::ProduceTextureCHROMIUMImmediate& c = |
| 3034 *static_cast<const gles2::cmds::ProduceTextureCHROMIUMImmediate*>( | 3028 *static_cast<const gles2::cmds::ProduceTextureCHROMIUMImmediate*>( |
| 3035 cmd_data); | 3029 cmd_data); |
| 3036 (void)c; | 3030 (void)c; |
| 3037 GLenum target = static_cast<GLenum>(c.target); | 3031 GLenum target = static_cast<GLenum>(c.target); |
| 3038 uint32_t data_size; | 3032 uint32_t data_size; |
| 3039 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 3033 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 3040 return error::kOutOfBounds; | 3034 return error::kOutOfBounds; |
| 3041 } | 3035 } |
| 3042 if (data_size > immediate_data_size) { | 3036 if (data_size > immediate_data_size) { |
| 3043 return error::kOutOfBounds; | 3037 return error::kOutOfBounds; |
| 3044 } | 3038 } |
| 3045 const GLbyte* mailbox = | 3039 const GLbyte* mailbox = |
| 3046 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); | 3040 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); |
| 3047 if (!validators_->texture_bind_target.IsValid(target)) { | 3041 if (!validators_->texture_bind_target.IsValid(target)) { |
| 3048 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3042 LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureCHROMIUM", target, |
| 3049 "glProduceTextureCHROMIUM", target, "target"); | 3043 "target"); |
| 3050 return error::kNoError; | 3044 return error::kNoError; |
| 3051 } | 3045 } |
| 3052 if (mailbox == NULL) { | 3046 if (mailbox == NULL) { |
| 3053 return error::kOutOfBounds; | 3047 return error::kOutOfBounds; |
| 3054 } | 3048 } |
| 3055 DoProduceTextureCHROMIUM(target, mailbox); | 3049 DoProduceTextureCHROMIUM(target, mailbox); |
| 3056 return error::kNoError; | 3050 return error::kNoError; |
| 3057 } | 3051 } |
| 3058 | 3052 |
| 3059 error::Error GLES2DecoderImpl::HandleProduceTextureDirectCHROMIUMImmediate( | 3053 error::Error GLES2DecoderImpl::HandleProduceTextureDirectCHROMIUMImmediate( |
| 3060 uint32_t immediate_data_size, | 3054 uint32_t immediate_data_size, |
| 3061 const void* cmd_data) { | 3055 const void* cmd_data) { |
| 3062 const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate& c = | 3056 const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate& c = |
| 3063 *static_cast<const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate*>( | 3057 *static_cast<const gles2::cmds::ProduceTextureDirectCHROMIUMImmediate*>( |
| 3064 cmd_data); | 3058 cmd_data); |
| 3065 (void)c; | 3059 (void)c; |
| 3066 GLuint texture = c.texture; | 3060 GLuint texture = c.texture; |
| 3067 GLenum target = static_cast<GLenum>(c.target); | 3061 GLenum target = static_cast<GLenum>(c.target); |
| 3068 uint32_t data_size; | 3062 uint32_t data_size; |
| 3069 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 3063 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 3070 return error::kOutOfBounds; | 3064 return error::kOutOfBounds; |
| 3071 } | 3065 } |
| 3072 if (data_size > immediate_data_size) { | 3066 if (data_size > immediate_data_size) { |
| 3073 return error::kOutOfBounds; | 3067 return error::kOutOfBounds; |
| 3074 } | 3068 } |
| 3075 const GLbyte* mailbox = | 3069 const GLbyte* mailbox = |
| 3076 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); | 3070 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); |
| 3077 if (!validators_->texture_bind_target.IsValid(target)) { | 3071 if (!validators_->texture_bind_target.IsValid(target)) { |
| 3078 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3072 LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureDirectCHROMIUM", target, |
| 3079 "glProduceTextureDirectCHROMIUM", target, "target"); | 3073 "target"); |
| 3080 return error::kNoError; | 3074 return error::kNoError; |
| 3081 } | 3075 } |
| 3082 if (mailbox == NULL) { | 3076 if (mailbox == NULL) { |
| 3083 return error::kOutOfBounds; | 3077 return error::kOutOfBounds; |
| 3084 } | 3078 } |
| 3085 DoProduceTextureDirectCHROMIUM(texture, target, mailbox); | 3079 DoProduceTextureDirectCHROMIUM(texture, target, mailbox); |
| 3086 return error::kNoError; | 3080 return error::kNoError; |
| 3087 } | 3081 } |
| 3088 | 3082 |
| 3089 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( | 3083 error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate( |
| 3090 uint32_t immediate_data_size, | 3084 uint32_t immediate_data_size, |
| 3091 const void* cmd_data) { | 3085 const void* cmd_data) { |
| 3092 const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c = | 3086 const gles2::cmds::ConsumeTextureCHROMIUMImmediate& c = |
| 3093 *static_cast<const gles2::cmds::ConsumeTextureCHROMIUMImmediate*>( | 3087 *static_cast<const gles2::cmds::ConsumeTextureCHROMIUMImmediate*>( |
| 3094 cmd_data); | 3088 cmd_data); |
| 3095 (void)c; | 3089 (void)c; |
| 3096 GLenum target = static_cast<GLenum>(c.target); | 3090 GLenum target = static_cast<GLenum>(c.target); |
| 3097 uint32_t data_size; | 3091 uint32_t data_size; |
| 3098 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { | 3092 if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) { |
| 3099 return error::kOutOfBounds; | 3093 return error::kOutOfBounds; |
| 3100 } | 3094 } |
| 3101 if (data_size > immediate_data_size) { | 3095 if (data_size > immediate_data_size) { |
| 3102 return error::kOutOfBounds; | 3096 return error::kOutOfBounds; |
| 3103 } | 3097 } |
| 3104 const GLbyte* mailbox = | 3098 const GLbyte* mailbox = |
| 3105 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); | 3099 GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size); |
| 3106 if (!validators_->texture_bind_target.IsValid(target)) { | 3100 if (!validators_->texture_bind_target.IsValid(target)) { |
| 3107 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3101 LOCAL_SET_GL_ERROR_INVALID_ENUM("glConsumeTextureCHROMIUM", target, |
| 3108 "glConsumeTextureCHROMIUM", target, "target"); | 3102 "target"); |
| 3109 return error::kNoError; | 3103 return error::kNoError; |
| 3110 } | 3104 } |
| 3111 if (mailbox == NULL) { | 3105 if (mailbox == NULL) { |
| 3112 return error::kOutOfBounds; | 3106 return error::kOutOfBounds; |
| 3113 } | 3107 } |
| 3114 DoConsumeTextureCHROMIUM(target, mailbox); | 3108 DoConsumeTextureCHROMIUM(target, mailbox); |
| 3115 return error::kNoError; | 3109 return error::kNoError; |
| 3116 } | 3110 } |
| 3117 | 3111 |
| 3118 error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM( | 3112 error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM( |
| 3119 uint32_t immediate_data_size, | 3113 uint32_t immediate_data_size, |
| 3120 const void* cmd_data) { | 3114 const void* cmd_data) { |
| 3121 const gles2::cmds::BindTexImage2DCHROMIUM& c = | 3115 const gles2::cmds::BindTexImage2DCHROMIUM& c = |
| 3122 *static_cast<const gles2::cmds::BindTexImage2DCHROMIUM*>(cmd_data); | 3116 *static_cast<const gles2::cmds::BindTexImage2DCHROMIUM*>(cmd_data); |
| 3123 (void)c; | 3117 (void)c; |
| 3124 GLenum target = static_cast<GLenum>(c.target); | 3118 GLenum target = static_cast<GLenum>(c.target); |
| 3125 GLint imageId = static_cast<GLint>(c.imageId); | 3119 GLint imageId = static_cast<GLint>(c.imageId); |
| 3126 if (!validators_->texture_bind_target.IsValid(target)) { | 3120 if (!validators_->texture_bind_target.IsValid(target)) { |
| 3127 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3121 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexImage2DCHROMIUM", target, |
| 3128 "glBindTexImage2DCHROMIUM", target, "target"); | 3122 "target"); |
| 3129 return error::kNoError; | 3123 return error::kNoError; |
| 3130 } | 3124 } |
| 3131 DoBindTexImage2DCHROMIUM(target, imageId); | 3125 DoBindTexImage2DCHROMIUM(target, imageId); |
| 3132 return error::kNoError; | 3126 return error::kNoError; |
| 3133 } | 3127 } |
| 3134 | 3128 |
| 3135 error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM( | 3129 error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM( |
| 3136 uint32_t immediate_data_size, | 3130 uint32_t immediate_data_size, |
| 3137 const void* cmd_data) { | 3131 const void* cmd_data) { |
| 3138 const gles2::cmds::ReleaseTexImage2DCHROMIUM& c = | 3132 const gles2::cmds::ReleaseTexImage2DCHROMIUM& c = |
| 3139 *static_cast<const gles2::cmds::ReleaseTexImage2DCHROMIUM*>(cmd_data); | 3133 *static_cast<const gles2::cmds::ReleaseTexImage2DCHROMIUM*>(cmd_data); |
| 3140 (void)c; | 3134 (void)c; |
| 3141 GLenum target = static_cast<GLenum>(c.target); | 3135 GLenum target = static_cast<GLenum>(c.target); |
| 3142 GLint imageId = static_cast<GLint>(c.imageId); | 3136 GLint imageId = static_cast<GLint>(c.imageId); |
| 3143 if (!validators_->texture_bind_target.IsValid(target)) { | 3137 if (!validators_->texture_bind_target.IsValid(target)) { |
| 3144 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3138 LOCAL_SET_GL_ERROR_INVALID_ENUM("glReleaseTexImage2DCHROMIUM", target, |
| 3145 "glReleaseTexImage2DCHROMIUM", target, "target"); | 3139 "target"); |
| 3146 return error::kNoError; | 3140 return error::kNoError; |
| 3147 } | 3141 } |
| 3148 DoReleaseTexImage2DCHROMIUM(target, imageId); | 3142 DoReleaseTexImage2DCHROMIUM(target, imageId); |
| 3149 return error::kNoError; | 3143 return error::kNoError; |
| 3150 } | 3144 } |
| 3151 | 3145 |
| 3152 error::Error GLES2DecoderImpl::HandleTraceEndCHROMIUM( | 3146 error::Error GLES2DecoderImpl::HandleTraceEndCHROMIUM( |
| 3153 uint32_t immediate_data_size, | 3147 uint32_t immediate_data_size, |
| 3154 const void* cmd_data) { | 3148 const void* cmd_data) { |
| 3155 const gles2::cmds::TraceEndCHROMIUM& c = | 3149 const gles2::cmds::TraceEndCHROMIUM& c = |
| 3156 *static_cast<const gles2::cmds::TraceEndCHROMIUM*>(cmd_data); | 3150 *static_cast<const gles2::cmds::TraceEndCHROMIUM*>(cmd_data); |
| 3157 (void)c; | 3151 (void)c; |
| 3158 DoTraceEndCHROMIUM(); | 3152 DoTraceEndCHROMIUM(); |
| 3159 return error::kNoError; | 3153 return error::kNoError; |
| 3160 } | 3154 } |
| 3161 | 3155 |
| 3162 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate( | 3156 error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate( |
| 3163 uint32_t immediate_data_size, | 3157 uint32_t immediate_data_size, |
| 3164 const void* cmd_data) { | 3158 const void* cmd_data) { |
| 3165 const gles2::cmds::DiscardFramebufferEXTImmediate& c = | 3159 const gles2::cmds::DiscardFramebufferEXTImmediate& c = |
| 3166 *static_cast<const gles2::cmds::DiscardFramebufferEXTImmediate*>( | 3160 *static_cast<const gles2::cmds::DiscardFramebufferEXTImmediate*>( |
| 3167 cmd_data); | 3161 cmd_data); |
| 3168 (void)c; | 3162 (void)c; |
| 3169 if (!features().ext_discard_framebuffer) { | 3163 if (!features().ext_discard_framebuffer) { |
| 3170 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 3164 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glDiscardFramebufferEXT", |
| 3171 "glDiscardFramebufferEXT", | |
| 3172 "function not available"); | 3165 "function not available"); |
| 3173 return error::kNoError; | 3166 return error::kNoError; |
| 3174 } | 3167 } |
| 3175 | 3168 |
| 3176 GLenum target = static_cast<GLenum>(c.target); | 3169 GLenum target = static_cast<GLenum>(c.target); |
| 3177 GLsizei count = static_cast<GLsizei>(c.count); | 3170 GLsizei count = static_cast<GLsizei>(c.count); |
| 3178 uint32_t data_size; | 3171 uint32_t data_size; |
| 3179 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { | 3172 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { |
| 3180 return error::kOutOfBounds; | 3173 return error::kOutOfBounds; |
| 3181 } | 3174 } |
| 3182 if (data_size > immediate_data_size) { | 3175 if (data_size > immediate_data_size) { |
| 3183 return error::kOutOfBounds; | 3176 return error::kOutOfBounds; |
| 3184 } | 3177 } |
| 3185 const GLenum* attachments = | 3178 const GLenum* attachments = |
| 3186 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); | 3179 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); |
| 3187 if (count < 0) { | 3180 if (count < 0) { |
| 3188 LOCAL_SET_GL_ERROR( | 3181 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDiscardFramebufferEXT", |
| 3189 GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0"); | 3182 "count < 0"); |
| 3190 return error::kNoError; | 3183 return error::kNoError; |
| 3191 } | 3184 } |
| 3192 if (attachments == NULL) { | 3185 if (attachments == NULL) { |
| 3193 return error::kOutOfBounds; | 3186 return error::kOutOfBounds; |
| 3194 } | 3187 } |
| 3195 DoDiscardFramebufferEXT(target, count, attachments); | 3188 DoDiscardFramebufferEXT(target, count, attachments); |
| 3196 return error::kNoError; | 3189 return error::kNoError; |
| 3197 } | 3190 } |
| 3198 | 3191 |
| 3199 error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM( | 3192 error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM( |
| 3200 uint32_t immediate_data_size, | 3193 uint32_t immediate_data_size, |
| 3201 const void* cmd_data) { | 3194 const void* cmd_data) { |
| 3202 const gles2::cmds::LoseContextCHROMIUM& c = | 3195 const gles2::cmds::LoseContextCHROMIUM& c = |
| 3203 *static_cast<const gles2::cmds::LoseContextCHROMIUM*>(cmd_data); | 3196 *static_cast<const gles2::cmds::LoseContextCHROMIUM*>(cmd_data); |
| 3204 (void)c; | 3197 (void)c; |
| 3205 GLenum current = static_cast<GLenum>(c.current); | 3198 GLenum current = static_cast<GLenum>(c.current); |
| 3206 GLenum other = static_cast<GLenum>(c.other); | 3199 GLenum other = static_cast<GLenum>(c.other); |
| 3207 if (!validators_->reset_status.IsValid(current)) { | 3200 if (!validators_->reset_status.IsValid(current)) { |
| 3208 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3201 LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", current, |
| 3209 "glLoseContextCHROMIUM", current, "current"); | 3202 "current"); |
| 3210 return error::kNoError; | 3203 return error::kNoError; |
| 3211 } | 3204 } |
| 3212 if (!validators_->reset_status.IsValid(other)) { | 3205 if (!validators_->reset_status.IsValid(other)) { |
| 3213 LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", other, "other"); | 3206 LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", other, "other"); |
| 3214 return error::kNoError; | 3207 return error::kNoError; |
| 3215 } | 3208 } |
| 3216 DoLoseContextCHROMIUM(current, other); | 3209 DoLoseContextCHROMIUM(current, other); |
| 3217 return error::kNoError; | 3210 return error::kNoError; |
| 3218 } | 3211 } |
| 3219 | 3212 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 3244 return error::kNoError; | 3237 return error::kNoError; |
| 3245 } | 3238 } |
| 3246 | 3239 |
| 3247 error::Error GLES2DecoderImpl::HandleMatrixLoadfCHROMIUMImmediate( | 3240 error::Error GLES2DecoderImpl::HandleMatrixLoadfCHROMIUMImmediate( |
| 3248 uint32_t immediate_data_size, | 3241 uint32_t immediate_data_size, |
| 3249 const void* cmd_data) { | 3242 const void* cmd_data) { |
| 3250 const gles2::cmds::MatrixLoadfCHROMIUMImmediate& c = | 3243 const gles2::cmds::MatrixLoadfCHROMIUMImmediate& c = |
| 3251 *static_cast<const gles2::cmds::MatrixLoadfCHROMIUMImmediate*>(cmd_data); | 3244 *static_cast<const gles2::cmds::MatrixLoadfCHROMIUMImmediate*>(cmd_data); |
| 3252 (void)c; | 3245 (void)c; |
| 3253 if (!features().chromium_path_rendering) { | 3246 if (!features().chromium_path_rendering) { |
| 3254 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 3247 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadfCHROMIUM", |
| 3255 "glMatrixLoadfCHROMIUM", | |
| 3256 "function not available"); | 3248 "function not available"); |
| 3257 return error::kNoError; | 3249 return error::kNoError; |
| 3258 } | 3250 } |
| 3259 | 3251 |
| 3260 GLenum matrixMode = static_cast<GLenum>(c.matrixMode); | 3252 GLenum matrixMode = static_cast<GLenum>(c.matrixMode); |
| 3261 uint32_t data_size; | 3253 uint32_t data_size; |
| 3262 if (!ComputeDataSize(1, sizeof(GLfloat), 16, &data_size)) { | 3254 if (!ComputeDataSize(1, sizeof(GLfloat), 16, &data_size)) { |
| 3263 return error::kOutOfBounds; | 3255 return error::kOutOfBounds; |
| 3264 } | 3256 } |
| 3265 if (data_size > immediate_data_size) { | 3257 if (data_size > immediate_data_size) { |
| 3266 return error::kOutOfBounds; | 3258 return error::kOutOfBounds; |
| 3267 } | 3259 } |
| 3268 const GLfloat* m = | 3260 const GLfloat* m = |
| 3269 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); | 3261 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
| 3270 if (!validators_->matrix_mode.IsValid(matrixMode)) { | 3262 if (!validators_->matrix_mode.IsValid(matrixMode)) { |
| 3271 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3263 LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadfCHROMIUM", matrixMode, |
| 3272 "glMatrixLoadfCHROMIUM", matrixMode, "matrixMode"); | 3264 "matrixMode"); |
| 3273 return error::kNoError; | 3265 return error::kNoError; |
| 3274 } | 3266 } |
| 3275 if (m == NULL) { | 3267 if (m == NULL) { |
| 3276 return error::kOutOfBounds; | 3268 return error::kOutOfBounds; |
| 3277 } | 3269 } |
| 3278 DoMatrixLoadfCHROMIUM(matrixMode, m); | 3270 DoMatrixLoadfCHROMIUM(matrixMode, m); |
| 3279 return error::kNoError; | 3271 return error::kNoError; |
| 3280 } | 3272 } |
| 3281 | 3273 |
| 3282 error::Error GLES2DecoderImpl::HandleMatrixLoadIdentityCHROMIUM( | 3274 error::Error GLES2DecoderImpl::HandleMatrixLoadIdentityCHROMIUM( |
| 3283 uint32_t immediate_data_size, | 3275 uint32_t immediate_data_size, |
| 3284 const void* cmd_data) { | 3276 const void* cmd_data) { |
| 3285 const gles2::cmds::MatrixLoadIdentityCHROMIUM& c = | 3277 const gles2::cmds::MatrixLoadIdentityCHROMIUM& c = |
| 3286 *static_cast<const gles2::cmds::MatrixLoadIdentityCHROMIUM*>(cmd_data); | 3278 *static_cast<const gles2::cmds::MatrixLoadIdentityCHROMIUM*>(cmd_data); |
| 3287 (void)c; | 3279 (void)c; |
| 3288 if (!features().chromium_path_rendering) { | 3280 if (!features().chromium_path_rendering) { |
| 3289 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 3281 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadIdentityCHROMIUM", |
| 3290 "glMatrixLoadIdentityCHROMIUM", | |
| 3291 "function not available"); | 3282 "function not available"); |
| 3292 return error::kNoError; | 3283 return error::kNoError; |
| 3293 } | 3284 } |
| 3294 | 3285 |
| 3295 GLenum matrixMode = static_cast<GLenum>(c.matrixMode); | 3286 GLenum matrixMode = static_cast<GLenum>(c.matrixMode); |
| 3296 if (!validators_->matrix_mode.IsValid(matrixMode)) { | 3287 if (!validators_->matrix_mode.IsValid(matrixMode)) { |
| 3297 LOCAL_SET_GL_ERROR_INVALID_ENUM( | 3288 LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadIdentityCHROMIUM", matrixMode, |
| 3298 "glMatrixLoadIdentityCHROMIUM", matrixMode, "matrixMode"); | 3289 "matrixMode"); |
| 3299 return error::kNoError; | 3290 return error::kNoError; |
| 3300 } | 3291 } |
| 3301 DoMatrixLoadIdentityCHROMIUM(matrixMode); | 3292 DoMatrixLoadIdentityCHROMIUM(matrixMode); |
| 3302 return error::kNoError; | 3293 return error::kNoError; |
| 3303 } | 3294 } |
| 3304 | 3295 |
| 3305 error::Error GLES2DecoderImpl::HandleBlendBarrierKHR( | 3296 error::Error GLES2DecoderImpl::HandleBlendBarrierKHR( |
| 3306 uint32_t immediate_data_size, | 3297 uint32_t immediate_data_size, |
| 3307 const void* cmd_data) { | 3298 const void* cmd_data) { |
| 3308 const gles2::cmds::BlendBarrierKHR& c = | 3299 const gles2::cmds::BlendBarrierKHR& c = |
| 3309 *static_cast<const gles2::cmds::BlendBarrierKHR*>(cmd_data); | 3300 *static_cast<const gles2::cmds::BlendBarrierKHR*>(cmd_data); |
| 3310 (void)c; | 3301 (void)c; |
| 3311 if (!features().blend_equation_advanced) { | 3302 if (!features().blend_equation_advanced) { |
| 3312 LOCAL_SET_GL_ERROR( | 3303 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlendBarrierKHR", |
| 3313 GL_INVALID_OPERATION, "glBlendBarrierKHR", "function not available"); | 3304 "function not available"); |
| 3314 return error::kNoError; | 3305 return error::kNoError; |
| 3315 } | 3306 } |
| 3316 | 3307 |
| 3317 glBlendBarrierKHR(); | 3308 glBlendBarrierKHR(); |
| 3318 return error::kNoError; | 3309 return error::kNoError; |
| 3319 } | 3310 } |
| 3320 | 3311 |
| 3321 bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) { | 3312 bool GLES2DecoderImpl::SetCapabilityState(GLenum cap, bool enabled) { |
| 3322 switch (cap) { | 3313 switch (cap) { |
| 3323 case GL_BLEND: | 3314 case GL_BLEND: |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3389 state_.ignore_cached_state) { | 3380 state_.ignore_cached_state) { |
| 3390 framebuffer_state_.clear_state_dirty = true; | 3381 framebuffer_state_.clear_state_dirty = true; |
| 3391 } | 3382 } |
| 3392 return false; | 3383 return false; |
| 3393 default: | 3384 default: |
| 3394 NOTREACHED(); | 3385 NOTREACHED(); |
| 3395 return false; | 3386 return false; |
| 3396 } | 3387 } |
| 3397 } | 3388 } |
| 3398 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 3389 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| OLD | NEW |