| 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 uint32_t immediate_data_size, | 52 uint32_t immediate_data_size, |
| 53 const void* cmd_data) { | 53 const void* cmd_data) { |
| 54 if (!unsafe_es3_apis_enabled()) | 54 if (!unsafe_es3_apis_enabled()) |
| 55 return error::kUnknownCommand; | 55 return error::kUnknownCommand; |
| 56 const gles2::cmds::BindBufferBase& c = | 56 const gles2::cmds::BindBufferBase& c = |
| 57 *static_cast<const gles2::cmds::BindBufferBase*>(cmd_data); | 57 *static_cast<const gles2::cmds::BindBufferBase*>(cmd_data); |
| 58 (void)c; | 58 (void)c; |
| 59 GLenum target = static_cast<GLenum>(c.target); | 59 GLenum target = static_cast<GLenum>(c.target); |
| 60 GLuint index = static_cast<GLuint>(c.index); | 60 GLuint index = static_cast<GLuint>(c.index); |
| 61 GLuint buffer = c.buffer; | 61 GLuint buffer = c.buffer; |
| 62 if (!validators_->indexed_buffer_target.IsValid(target)) { |
| 63 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindBufferBase", target, "target"); |
| 64 return error::kNoError; |
| 65 } |
| 62 DoBindBufferBase(target, index, buffer); | 66 DoBindBufferBase(target, index, buffer); |
| 63 return error::kNoError; | 67 return error::kNoError; |
| 64 } | 68 } |
| 65 | 69 |
| 66 error::Error GLES2DecoderImpl::HandleBindBufferRange( | 70 error::Error GLES2DecoderImpl::HandleBindBufferRange( |
| 67 uint32_t immediate_data_size, | 71 uint32_t immediate_data_size, |
| 68 const void* cmd_data) { | 72 const void* cmd_data) { |
| 69 if (!unsafe_es3_apis_enabled()) | 73 if (!unsafe_es3_apis_enabled()) |
| 70 return error::kUnknownCommand; | 74 return error::kUnknownCommand; |
| 71 const gles2::cmds::BindBufferRange& c = | 75 const gles2::cmds::BindBufferRange& c = |
| 72 *static_cast<const gles2::cmds::BindBufferRange*>(cmd_data); | 76 *static_cast<const gles2::cmds::BindBufferRange*>(cmd_data); |
| 73 (void)c; | 77 (void)c; |
| 74 GLenum target = static_cast<GLenum>(c.target); | 78 GLenum target = static_cast<GLenum>(c.target); |
| 75 GLuint index = static_cast<GLuint>(c.index); | 79 GLuint index = static_cast<GLuint>(c.index); |
| 76 GLuint buffer = c.buffer; | 80 GLuint buffer = c.buffer; |
| 77 GLintptr offset = static_cast<GLintptr>(c.offset); | 81 GLintptr offset = static_cast<GLintptr>(c.offset); |
| 78 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 82 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 83 if (!validators_->indexed_buffer_target.IsValid(target)) { |
| 84 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindBufferRange", target, "target"); |
| 85 return error::kNoError; |
| 86 } |
| 79 DoBindBufferRange(target, index, buffer, offset, size); | 87 DoBindBufferRange(target, index, buffer, offset, size); |
| 80 return error::kNoError; | 88 return error::kNoError; |
| 81 } | 89 } |
| 82 | 90 |
| 83 error::Error GLES2DecoderImpl::HandleBindFramebuffer( | 91 error::Error GLES2DecoderImpl::HandleBindFramebuffer( |
| 84 uint32_t immediate_data_size, | 92 uint32_t immediate_data_size, |
| 85 const void* cmd_data) { | 93 const void* cmd_data) { |
| 86 const gles2::cmds::BindFramebuffer& c = | 94 const gles2::cmds::BindFramebuffer& c = |
| 87 *static_cast<const gles2::cmds::BindFramebuffer*>(cmd_data); | 95 *static_cast<const gles2::cmds::BindFramebuffer*>(cmd_data); |
| 88 (void)c; | 96 (void)c; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 error::Error GLES2DecoderImpl::HandleBindTransformFeedback( | 151 error::Error GLES2DecoderImpl::HandleBindTransformFeedback( |
| 144 uint32_t immediate_data_size, | 152 uint32_t immediate_data_size, |
| 145 const void* cmd_data) { | 153 const void* cmd_data) { |
| 146 if (!unsafe_es3_apis_enabled()) | 154 if (!unsafe_es3_apis_enabled()) |
| 147 return error::kUnknownCommand; | 155 return error::kUnknownCommand; |
| 148 const gles2::cmds::BindTransformFeedback& c = | 156 const gles2::cmds::BindTransformFeedback& c = |
| 149 *static_cast<const gles2::cmds::BindTransformFeedback*>(cmd_data); | 157 *static_cast<const gles2::cmds::BindTransformFeedback*>(cmd_data); |
| 150 (void)c; | 158 (void)c; |
| 151 GLenum target = static_cast<GLenum>(c.target); | 159 GLenum target = static_cast<GLenum>(c.target); |
| 152 GLuint transformfeedback = c.transformfeedback; | 160 GLuint transformfeedback = c.transformfeedback; |
| 161 if (!validators_->transform_feedback_bind_target.IsValid(target)) { |
| 162 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTransformFeedback", target, |
| 163 "target"); |
| 164 return error::kNoError; |
| 165 } |
| 153 DoBindTransformFeedback(target, transformfeedback); | 166 DoBindTransformFeedback(target, transformfeedback); |
| 154 return error::kNoError; | 167 return error::kNoError; |
| 155 } | 168 } |
| 156 | 169 |
| 157 error::Error GLES2DecoderImpl::HandleBlendColor(uint32_t immediate_data_size, | 170 error::Error GLES2DecoderImpl::HandleBlendColor(uint32_t immediate_data_size, |
| 158 const void* cmd_data) { | 171 const void* cmd_data) { |
| 159 const gles2::cmds::BlendColor& c = | 172 const gles2::cmds::BlendColor& c = |
| 160 *static_cast<const gles2::cmds::BlendColor*>(cmd_data); | 173 *static_cast<const gles2::cmds::BlendColor*>(cmd_data); |
| 161 (void)c; | 174 (void)c; |
| 162 GLclampf red = static_cast<GLclampf>(c.red); | 175 GLclampf red = static_cast<GLclampf>(c.red); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 const void* cmd_data) { | 366 const void* cmd_data) { |
| 354 if (!unsafe_es3_apis_enabled()) | 367 if (!unsafe_es3_apis_enabled()) |
| 355 return error::kUnknownCommand; | 368 return error::kUnknownCommand; |
| 356 const gles2::cmds::ClearBufferfi& c = | 369 const gles2::cmds::ClearBufferfi& c = |
| 357 *static_cast<const gles2::cmds::ClearBufferfi*>(cmd_data); | 370 *static_cast<const gles2::cmds::ClearBufferfi*>(cmd_data); |
| 358 (void)c; | 371 (void)c; |
| 359 GLenum buffer = static_cast<GLenum>(c.buffer); | 372 GLenum buffer = static_cast<GLenum>(c.buffer); |
| 360 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); | 373 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); |
| 361 GLfloat depth = static_cast<GLfloat>(c.depth); | 374 GLfloat depth = static_cast<GLfloat>(c.depth); |
| 362 GLint stencil = static_cast<GLint>(c.stencil); | 375 GLint stencil = static_cast<GLint>(c.stencil); |
| 376 if (!validators_->bufferfi.IsValid(buffer)) { |
| 377 LOCAL_SET_GL_ERROR_INVALID_ENUM("glClearBufferfi", buffer, "buffer"); |
| 378 return error::kNoError; |
| 379 } |
| 363 DoClearBufferfi(buffer, drawbuffers, depth, stencil); | 380 DoClearBufferfi(buffer, drawbuffers, depth, stencil); |
| 364 return error::kNoError; | 381 return error::kNoError; |
| 365 } | 382 } |
| 366 | 383 |
| 367 error::Error GLES2DecoderImpl::HandleClearBufferfvImmediate( | 384 error::Error GLES2DecoderImpl::HandleClearBufferfvImmediate( |
| 368 uint32_t immediate_data_size, | 385 uint32_t immediate_data_size, |
| 369 const void* cmd_data) { | 386 const void* cmd_data) { |
| 370 if (!unsafe_es3_apis_enabled()) | 387 if (!unsafe_es3_apis_enabled()) |
| 371 return error::kUnknownCommand; | 388 return error::kUnknownCommand; |
| 372 const gles2::cmds::ClearBufferfvImmediate& c = | 389 const gles2::cmds::ClearBufferfvImmediate& c = |
| 373 *static_cast<const gles2::cmds::ClearBufferfvImmediate*>(cmd_data); | 390 *static_cast<const gles2::cmds::ClearBufferfvImmediate*>(cmd_data); |
| 374 (void)c; | 391 (void)c; |
| 375 GLenum buffer = static_cast<GLenum>(c.buffer); | 392 GLenum buffer = static_cast<GLenum>(c.buffer); |
| 376 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); | 393 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); |
| 377 uint32_t data_size; | 394 uint32_t data_size; |
| 378 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) { | 395 if (!ComputeDataSize(1, sizeof(GLfloat), 4, &data_size)) { |
| 379 return error::kOutOfBounds; | 396 return error::kOutOfBounds; |
| 380 } | 397 } |
| 381 if (data_size > immediate_data_size) { | 398 if (data_size > immediate_data_size) { |
| 382 return error::kOutOfBounds; | 399 return error::kOutOfBounds; |
| 383 } | 400 } |
| 384 const GLfloat* value = | 401 const GLfloat* value = |
| 385 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); | 402 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
| 403 if (!validators_->bufferfv.IsValid(buffer)) { |
| 404 LOCAL_SET_GL_ERROR_INVALID_ENUM("glClearBufferfv", buffer, "buffer"); |
| 405 return error::kNoError; |
| 406 } |
| 386 if (value == NULL) { | 407 if (value == NULL) { |
| 387 return error::kOutOfBounds; | 408 return error::kOutOfBounds; |
| 388 } | 409 } |
| 389 DoClearBufferfv(buffer, drawbuffers, value); | 410 DoClearBufferfv(buffer, drawbuffers, value); |
| 390 return error::kNoError; | 411 return error::kNoError; |
| 391 } | 412 } |
| 392 | 413 |
| 393 error::Error GLES2DecoderImpl::HandleClearBufferivImmediate( | 414 error::Error GLES2DecoderImpl::HandleClearBufferivImmediate( |
| 394 uint32_t immediate_data_size, | 415 uint32_t immediate_data_size, |
| 395 const void* cmd_data) { | 416 const void* cmd_data) { |
| 396 if (!unsafe_es3_apis_enabled()) | 417 if (!unsafe_es3_apis_enabled()) |
| 397 return error::kUnknownCommand; | 418 return error::kUnknownCommand; |
| 398 const gles2::cmds::ClearBufferivImmediate& c = | 419 const gles2::cmds::ClearBufferivImmediate& c = |
| 399 *static_cast<const gles2::cmds::ClearBufferivImmediate*>(cmd_data); | 420 *static_cast<const gles2::cmds::ClearBufferivImmediate*>(cmd_data); |
| 400 (void)c; | 421 (void)c; |
| 401 GLenum buffer = static_cast<GLenum>(c.buffer); | 422 GLenum buffer = static_cast<GLenum>(c.buffer); |
| 402 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); | 423 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); |
| 403 uint32_t data_size; | 424 uint32_t data_size; |
| 404 if (!ComputeDataSize(1, sizeof(GLint), 4, &data_size)) { | 425 if (!ComputeDataSize(1, sizeof(GLint), 4, &data_size)) { |
| 405 return error::kOutOfBounds; | 426 return error::kOutOfBounds; |
| 406 } | 427 } |
| 407 if (data_size > immediate_data_size) { | 428 if (data_size > immediate_data_size) { |
| 408 return error::kOutOfBounds; | 429 return error::kOutOfBounds; |
| 409 } | 430 } |
| 410 const GLint* value = | 431 const GLint* value = |
| 411 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); | 432 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); |
| 433 if (!validators_->bufferiv.IsValid(buffer)) { |
| 434 LOCAL_SET_GL_ERROR_INVALID_ENUM("glClearBufferiv", buffer, "buffer"); |
| 435 return error::kNoError; |
| 436 } |
| 412 if (value == NULL) { | 437 if (value == NULL) { |
| 413 return error::kOutOfBounds; | 438 return error::kOutOfBounds; |
| 414 } | 439 } |
| 415 DoClearBufferiv(buffer, drawbuffers, value); | 440 DoClearBufferiv(buffer, drawbuffers, value); |
| 416 return error::kNoError; | 441 return error::kNoError; |
| 417 } | 442 } |
| 418 | 443 |
| 419 error::Error GLES2DecoderImpl::HandleClearBufferuivImmediate( | 444 error::Error GLES2DecoderImpl::HandleClearBufferuivImmediate( |
| 420 uint32_t immediate_data_size, | 445 uint32_t immediate_data_size, |
| 421 const void* cmd_data) { | 446 const void* cmd_data) { |
| 422 if (!unsafe_es3_apis_enabled()) | 447 if (!unsafe_es3_apis_enabled()) |
| 423 return error::kUnknownCommand; | 448 return error::kUnknownCommand; |
| 424 const gles2::cmds::ClearBufferuivImmediate& c = | 449 const gles2::cmds::ClearBufferuivImmediate& c = |
| 425 *static_cast<const gles2::cmds::ClearBufferuivImmediate*>(cmd_data); | 450 *static_cast<const gles2::cmds::ClearBufferuivImmediate*>(cmd_data); |
| 426 (void)c; | 451 (void)c; |
| 427 GLenum buffer = static_cast<GLenum>(c.buffer); | 452 GLenum buffer = static_cast<GLenum>(c.buffer); |
| 428 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); | 453 GLint drawbuffers = static_cast<GLint>(c.drawbuffers); |
| 429 uint32_t data_size; | 454 uint32_t data_size; |
| 430 if (!ComputeDataSize(1, sizeof(GLuint), 4, &data_size)) { | 455 if (!ComputeDataSize(1, sizeof(GLuint), 4, &data_size)) { |
| 431 return error::kOutOfBounds; | 456 return error::kOutOfBounds; |
| 432 } | 457 } |
| 433 if (data_size > immediate_data_size) { | 458 if (data_size > immediate_data_size) { |
| 434 return error::kOutOfBounds; | 459 return error::kOutOfBounds; |
| 435 } | 460 } |
| 436 const GLuint* value = | 461 const GLuint* value = |
| 437 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); | 462 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
| 463 if (!validators_->bufferuiv.IsValid(buffer)) { |
| 464 LOCAL_SET_GL_ERROR_INVALID_ENUM("glClearBufferuiv", buffer, "buffer"); |
| 465 return error::kNoError; |
| 466 } |
| 438 if (value == NULL) { | 467 if (value == NULL) { |
| 439 return error::kOutOfBounds; | 468 return error::kOutOfBounds; |
| 440 } | 469 } |
| 441 DoClearBufferuiv(buffer, drawbuffers, value); | 470 DoClearBufferuiv(buffer, drawbuffers, value); |
| 442 return error::kNoError; | 471 return error::kNoError; |
| 443 } | 472 } |
| 444 | 473 |
| 445 error::Error GLES2DecoderImpl::HandleClearColor(uint32_t immediate_data_size, | 474 error::Error GLES2DecoderImpl::HandleClearColor(uint32_t immediate_data_size, |
| 446 const void* cmd_data) { | 475 const void* cmd_data) { |
| 447 const gles2::cmds::ClearColor& c = | 476 const gles2::cmds::ClearColor& c = |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 GLint yoffset = static_cast<GLint>(c.yoffset); | 611 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 583 GLint zoffset = static_cast<GLint>(c.zoffset); | 612 GLint zoffset = static_cast<GLint>(c.zoffset); |
| 584 GLsizei width = static_cast<GLsizei>(c.width); | 613 GLsizei width = static_cast<GLsizei>(c.width); |
| 585 GLsizei height = static_cast<GLsizei>(c.height); | 614 GLsizei height = static_cast<GLsizei>(c.height); |
| 586 GLsizei depth = static_cast<GLsizei>(c.depth); | 615 GLsizei depth = static_cast<GLsizei>(c.depth); |
| 587 GLenum format = static_cast<GLenum>(c.format); | 616 GLenum format = static_cast<GLenum>(c.format); |
| 588 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); | 617 GLsizei imageSize = static_cast<GLsizei>(c.imageSize); |
| 589 uint32_t data_size = imageSize; | 618 uint32_t data_size = imageSize; |
| 590 const void* data = GetSharedMemoryAs<const void*>( | 619 const void* data = GetSharedMemoryAs<const void*>( |
| 591 c.data_shm_id, c.data_shm_offset, data_size); | 620 c.data_shm_id, c.data_shm_offset, data_size); |
| 621 if (!validators_->texture_3_d_target.IsValid(target)) { |
| 622 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage3D", target, |
| 623 "target"); |
| 624 return error::kNoError; |
| 625 } |
| 626 if (!validators_->compressed_texture_format.IsValid(format)) { |
| 627 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage3D", format, |
| 628 "format"); |
| 629 return error::kNoError; |
| 630 } |
| 592 if (data == NULL) { | 631 if (data == NULL) { |
| 593 return error::kOutOfBounds; | 632 return error::kOutOfBounds; |
| 594 } | 633 } |
| 595 DoCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, | 634 DoCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, |
| 596 height, depth, format, imageSize, data); | 635 height, depth, format, imageSize, data); |
| 597 return error::kNoError; | 636 return error::kNoError; |
| 598 } | 637 } |
| 599 | 638 |
| 600 error::Error GLES2DecoderImpl::HandleCopyBufferSubData( | 639 error::Error GLES2DecoderImpl::HandleCopyBufferSubData( |
| 601 uint32_t immediate_data_size, | 640 uint32_t immediate_data_size, |
| 602 const void* cmd_data) { | 641 const void* cmd_data) { |
| 603 if (!unsafe_es3_apis_enabled()) | 642 if (!unsafe_es3_apis_enabled()) |
| 604 return error::kUnknownCommand; | 643 return error::kUnknownCommand; |
| 605 const gles2::cmds::CopyBufferSubData& c = | 644 const gles2::cmds::CopyBufferSubData& c = |
| 606 *static_cast<const gles2::cmds::CopyBufferSubData*>(cmd_data); | 645 *static_cast<const gles2::cmds::CopyBufferSubData*>(cmd_data); |
| 607 (void)c; | 646 (void)c; |
| 608 GLenum readtarget = static_cast<GLenum>(c.readtarget); | 647 GLenum readtarget = static_cast<GLenum>(c.readtarget); |
| 609 GLenum writetarget = static_cast<GLenum>(c.writetarget); | 648 GLenum writetarget = static_cast<GLenum>(c.writetarget); |
| 610 GLintptr readoffset = static_cast<GLintptr>(c.readoffset); | 649 GLintptr readoffset = static_cast<GLintptr>(c.readoffset); |
| 611 GLintptr writeoffset = static_cast<GLintptr>(c.writeoffset); | 650 GLintptr writeoffset = static_cast<GLintptr>(c.writeoffset); |
| 612 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); | 651 GLsizeiptr size = static_cast<GLsizeiptr>(c.size); |
| 652 if (!validators_->buffer_target.IsValid(readtarget)) { |
| 653 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyBufferSubData", readtarget, |
| 654 "readtarget"); |
| 655 return error::kNoError; |
| 656 } |
| 657 if (!validators_->buffer_target.IsValid(writetarget)) { |
| 658 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyBufferSubData", writetarget, |
| 659 "writetarget"); |
| 660 return error::kNoError; |
| 661 } |
| 613 glCopyBufferSubData(readtarget, writetarget, readoffset, writeoffset, size); | 662 glCopyBufferSubData(readtarget, writetarget, readoffset, writeoffset, size); |
| 614 return error::kNoError; | 663 return error::kNoError; |
| 615 } | 664 } |
| 616 | 665 |
| 617 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( | 666 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( |
| 618 uint32_t immediate_data_size, | 667 uint32_t immediate_data_size, |
| 619 const void* cmd_data) { | 668 const void* cmd_data) { |
| 620 const gles2::cmds::CopyTexImage2D& c = | 669 const gles2::cmds::CopyTexImage2D& c = |
| 621 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data); | 670 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data); |
| 622 (void)c; | 671 (void)c; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 return error; | 750 return error; |
| 702 GLenum target = static_cast<GLenum>(c.target); | 751 GLenum target = static_cast<GLenum>(c.target); |
| 703 GLint level = static_cast<GLint>(c.level); | 752 GLint level = static_cast<GLint>(c.level); |
| 704 GLint xoffset = static_cast<GLint>(c.xoffset); | 753 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 705 GLint yoffset = static_cast<GLint>(c.yoffset); | 754 GLint yoffset = static_cast<GLint>(c.yoffset); |
| 706 GLint zoffset = static_cast<GLint>(c.zoffset); | 755 GLint zoffset = static_cast<GLint>(c.zoffset); |
| 707 GLint x = static_cast<GLint>(c.x); | 756 GLint x = static_cast<GLint>(c.x); |
| 708 GLint y = static_cast<GLint>(c.y); | 757 GLint y = static_cast<GLint>(c.y); |
| 709 GLsizei width = static_cast<GLsizei>(c.width); | 758 GLsizei width = static_cast<GLsizei>(c.width); |
| 710 GLsizei height = static_cast<GLsizei>(c.height); | 759 GLsizei height = static_cast<GLsizei>(c.height); |
| 760 if (!validators_->texture_3_d_target.IsValid(target)) { |
| 761 LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexSubImage3D", target, "target"); |
| 762 return error::kNoError; |
| 763 } |
| 711 glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, | 764 glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, |
| 712 height); | 765 height); |
| 713 return error::kNoError; | 766 return error::kNoError; |
| 714 } | 767 } |
| 715 | 768 |
| 716 error::Error GLES2DecoderImpl::HandleCreateProgram(uint32_t immediate_data_size, | 769 error::Error GLES2DecoderImpl::HandleCreateProgram(uint32_t immediate_data_size, |
| 717 const void* cmd_data) { | 770 const void* cmd_data) { |
| 718 const gles2::cmds::CreateProgram& c = | 771 const gles2::cmds::CreateProgram& c = |
| 719 *static_cast<const gles2::cmds::CreateProgram*>(cmd_data); | 772 *static_cast<const gles2::cmds::CreateProgram*>(cmd_data); |
| 720 (void)c; | 773 (void)c; |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 if (!unsafe_es3_apis_enabled()) | 1173 if (!unsafe_es3_apis_enabled()) |
| 1121 return error::kUnknownCommand; | 1174 return error::kUnknownCommand; |
| 1122 const gles2::cmds::FramebufferTextureLayer& c = | 1175 const gles2::cmds::FramebufferTextureLayer& c = |
| 1123 *static_cast<const gles2::cmds::FramebufferTextureLayer*>(cmd_data); | 1176 *static_cast<const gles2::cmds::FramebufferTextureLayer*>(cmd_data); |
| 1124 (void)c; | 1177 (void)c; |
| 1125 GLenum target = static_cast<GLenum>(c.target); | 1178 GLenum target = static_cast<GLenum>(c.target); |
| 1126 GLenum attachment = static_cast<GLenum>(c.attachment); | 1179 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 1127 GLuint texture = c.texture; | 1180 GLuint texture = c.texture; |
| 1128 GLint level = static_cast<GLint>(c.level); | 1181 GLint level = static_cast<GLint>(c.level); |
| 1129 GLint layer = static_cast<GLint>(c.layer); | 1182 GLint layer = static_cast<GLint>(c.layer); |
| 1183 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 1184 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTextureLayer", target, |
| 1185 "target"); |
| 1186 return error::kNoError; |
| 1187 } |
| 1188 if (!validators_->attachment.IsValid(attachment)) { |
| 1189 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTextureLayer", attachment, |
| 1190 "attachment"); |
| 1191 return error::kNoError; |
| 1192 } |
| 1130 DoFramebufferTextureLayer(target, attachment, texture, level, layer); | 1193 DoFramebufferTextureLayer(target, attachment, texture, level, layer); |
| 1131 return error::kNoError; | 1194 return error::kNoError; |
| 1132 } | 1195 } |
| 1133 | 1196 |
| 1134 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size, | 1197 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size, |
| 1135 const void* cmd_data) { | 1198 const void* cmd_data) { |
| 1136 const gles2::cmds::FrontFace& c = | 1199 const gles2::cmds::FrontFace& c = |
| 1137 *static_cast<const gles2::cmds::FrontFace*>(cmd_data); | 1200 *static_cast<const gles2::cmds::FrontFace*>(cmd_data); |
| 1138 (void)c; | 1201 (void)c; |
| 1139 GLenum mode = static_cast<GLenum>(c.mode); | 1202 GLenum mode = static_cast<GLenum>(c.mode); |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1340 *static_cast<const gles2::cmds::GetBufferParameteri64v*>(cmd_data); | 1403 *static_cast<const gles2::cmds::GetBufferParameteri64v*>(cmd_data); |
| 1341 (void)c; | 1404 (void)c; |
| 1342 GLenum target = static_cast<GLenum>(c.target); | 1405 GLenum target = static_cast<GLenum>(c.target); |
| 1343 GLenum pname = static_cast<GLenum>(c.pname); | 1406 GLenum pname = static_cast<GLenum>(c.pname); |
| 1344 typedef cmds::GetBufferParameteri64v::Result Result; | 1407 typedef cmds::GetBufferParameteri64v::Result Result; |
| 1345 GLsizei num_values = 0; | 1408 GLsizei num_values = 0; |
| 1346 GetNumValuesReturnedForGLGet(pname, &num_values); | 1409 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1347 Result* result = GetSharedMemoryAs<Result*>( | 1410 Result* result = GetSharedMemoryAs<Result*>( |
| 1348 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1411 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1349 GLint64* params = result ? result->GetData() : NULL; | 1412 GLint64* params = result ? result->GetData() : NULL; |
| 1413 if (!validators_->buffer_target.IsValid(target)) { |
| 1414 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteri64v", target, |
| 1415 "target"); |
| 1416 return error::kNoError; |
| 1417 } |
| 1418 if (!validators_->buffer_parameter_64.IsValid(pname)) { |
| 1419 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetBufferParameteri64v", pname, "pname"); |
| 1420 return error::kNoError; |
| 1421 } |
| 1350 if (params == NULL) { | 1422 if (params == NULL) { |
| 1351 return error::kOutOfBounds; | 1423 return error::kOutOfBounds; |
| 1352 } | 1424 } |
| 1353 // Check that the client initialized the result. | 1425 // Check that the client initialized the result. |
| 1354 if (result->size != 0) { | 1426 if (result->size != 0) { |
| 1355 return error::kInvalidArguments; | 1427 return error::kInvalidArguments; |
| 1356 } | 1428 } |
| 1357 DoGetBufferParameteri64v(target, pname, params); | 1429 DoGetBufferParameteri64v(target, pname, params); |
| 1358 result->SetNumResults(num_values); | 1430 result->SetNumResults(num_values); |
| 1359 return error::kNoError; | 1431 return error::kNoError; |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1492 const gles2::cmds::GetInteger64v& c = | 1564 const gles2::cmds::GetInteger64v& c = |
| 1493 *static_cast<const gles2::cmds::GetInteger64v*>(cmd_data); | 1565 *static_cast<const gles2::cmds::GetInteger64v*>(cmd_data); |
| 1494 (void)c; | 1566 (void)c; |
| 1495 GLenum pname = static_cast<GLenum>(c.pname); | 1567 GLenum pname = static_cast<GLenum>(c.pname); |
| 1496 typedef cmds::GetInteger64v::Result Result; | 1568 typedef cmds::GetInteger64v::Result Result; |
| 1497 GLsizei num_values = 0; | 1569 GLsizei num_values = 0; |
| 1498 GetNumValuesReturnedForGLGet(pname, &num_values); | 1570 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1499 Result* result = GetSharedMemoryAs<Result*>( | 1571 Result* result = GetSharedMemoryAs<Result*>( |
| 1500 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1572 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1501 GLint64* params = result ? result->GetData() : NULL; | 1573 GLint64* params = result ? result->GetData() : NULL; |
| 1574 if (!validators_->g_l_state.IsValid(pname)) { |
| 1575 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetInteger64v", pname, "pname"); |
| 1576 return error::kNoError; |
| 1577 } |
| 1502 if (params == NULL) { | 1578 if (params == NULL) { |
| 1503 return error::kOutOfBounds; | 1579 return error::kOutOfBounds; |
| 1504 } | 1580 } |
| 1505 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInteger64v"); | 1581 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInteger64v"); |
| 1506 // Check that the client initialized the result. | 1582 // Check that the client initialized the result. |
| 1507 if (result->size != 0) { | 1583 if (result->size != 0) { |
| 1508 return error::kInvalidArguments; | 1584 return error::kInvalidArguments; |
| 1509 } | 1585 } |
| 1510 DoGetInteger64v(pname, params); | 1586 DoGetInteger64v(pname, params); |
| 1511 GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64v"); | 1587 GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64v"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1523 *static_cast<const gles2::cmds::GetIntegeri_v*>(cmd_data); | 1599 *static_cast<const gles2::cmds::GetIntegeri_v*>(cmd_data); |
| 1524 (void)c; | 1600 (void)c; |
| 1525 GLenum pname = static_cast<GLenum>(c.pname); | 1601 GLenum pname = static_cast<GLenum>(c.pname); |
| 1526 GLuint index = static_cast<GLuint>(c.index); | 1602 GLuint index = static_cast<GLuint>(c.index); |
| 1527 typedef cmds::GetIntegeri_v::Result Result; | 1603 typedef cmds::GetIntegeri_v::Result Result; |
| 1528 GLsizei num_values = 0; | 1604 GLsizei num_values = 0; |
| 1529 GetNumValuesReturnedForGLGet(pname, &num_values); | 1605 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1530 Result* result = GetSharedMemoryAs<Result*>(c.data_shm_id, c.data_shm_offset, | 1606 Result* result = GetSharedMemoryAs<Result*>(c.data_shm_id, c.data_shm_offset, |
| 1531 Result::ComputeSize(num_values)); | 1607 Result::ComputeSize(num_values)); |
| 1532 GLint* data = result ? result->GetData() : NULL; | 1608 GLint* data = result ? result->GetData() : NULL; |
| 1609 if (!validators_->indexed_g_l_state.IsValid(pname)) { |
| 1610 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetIntegeri_v", pname, "pname"); |
| 1611 return error::kNoError; |
| 1612 } |
| 1533 if (data == NULL) { | 1613 if (data == NULL) { |
| 1534 return error::kOutOfBounds; | 1614 return error::kOutOfBounds; |
| 1535 } | 1615 } |
| 1536 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetIntegeri_v"); | |
| 1537 // Check that the client initialized the result. | 1616 // Check that the client initialized the result. |
| 1538 if (result->size != 0) { | 1617 if (result->size != 0) { |
| 1539 return error::kInvalidArguments; | 1618 return error::kInvalidArguments; |
| 1540 } | 1619 } |
| 1541 glGetIntegeri_v(pname, index, data); | 1620 DoGetIntegeri_v(pname, index, data); |
| 1542 GLenum error = LOCAL_PEEK_GL_ERROR("GetIntegeri_v"); | 1621 result->SetNumResults(num_values); |
| 1543 if (error == GL_NO_ERROR) { | |
| 1544 result->SetNumResults(num_values); | |
| 1545 } | |
| 1546 return error::kNoError; | 1622 return error::kNoError; |
| 1547 } | 1623 } |
| 1548 | |
| 1549 error::Error GLES2DecoderImpl::HandleGetInteger64i_v( | 1624 error::Error GLES2DecoderImpl::HandleGetInteger64i_v( |
| 1550 uint32_t immediate_data_size, | 1625 uint32_t immediate_data_size, |
| 1551 const void* cmd_data) { | 1626 const void* cmd_data) { |
| 1552 if (!unsafe_es3_apis_enabled()) | 1627 if (!unsafe_es3_apis_enabled()) |
| 1553 return error::kUnknownCommand; | 1628 return error::kUnknownCommand; |
| 1554 const gles2::cmds::GetInteger64i_v& c = | 1629 const gles2::cmds::GetInteger64i_v& c = |
| 1555 *static_cast<const gles2::cmds::GetInteger64i_v*>(cmd_data); | 1630 *static_cast<const gles2::cmds::GetInteger64i_v*>(cmd_data); |
| 1556 (void)c; | 1631 (void)c; |
| 1557 GLenum pname = static_cast<GLenum>(c.pname); | 1632 GLenum pname = static_cast<GLenum>(c.pname); |
| 1558 GLuint index = static_cast<GLuint>(c.index); | 1633 GLuint index = static_cast<GLuint>(c.index); |
| 1559 typedef cmds::GetInteger64i_v::Result Result; | 1634 typedef cmds::GetInteger64i_v::Result Result; |
| 1560 GLsizei num_values = 0; | 1635 GLsizei num_values = 0; |
| 1561 GetNumValuesReturnedForGLGet(pname, &num_values); | 1636 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1562 Result* result = GetSharedMemoryAs<Result*>(c.data_shm_id, c.data_shm_offset, | 1637 Result* result = GetSharedMemoryAs<Result*>(c.data_shm_id, c.data_shm_offset, |
| 1563 Result::ComputeSize(num_values)); | 1638 Result::ComputeSize(num_values)); |
| 1564 GLint64* data = result ? result->GetData() : NULL; | 1639 GLint64* data = result ? result->GetData() : NULL; |
| 1640 if (!validators_->indexed_g_l_state.IsValid(pname)) { |
| 1641 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetInteger64i_v", pname, "pname"); |
| 1642 return error::kNoError; |
| 1643 } |
| 1565 if (data == NULL) { | 1644 if (data == NULL) { |
| 1566 return error::kOutOfBounds; | 1645 return error::kOutOfBounds; |
| 1567 } | 1646 } |
| 1568 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInteger64i_v"); | |
| 1569 // Check that the client initialized the result. | 1647 // Check that the client initialized the result. |
| 1570 if (result->size != 0) { | 1648 if (result->size != 0) { |
| 1571 return error::kInvalidArguments; | 1649 return error::kInvalidArguments; |
| 1572 } | 1650 } |
| 1573 glGetInteger64i_v(pname, index, data); | 1651 DoGetInteger64i_v(pname, index, data); |
| 1574 GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64i_v"); | 1652 result->SetNumResults(num_values); |
| 1575 if (error == GL_NO_ERROR) { | |
| 1576 result->SetNumResults(num_values); | |
| 1577 } | |
| 1578 return error::kNoError; | 1653 return error::kNoError; |
| 1579 } | 1654 } |
| 1580 | |
| 1581 error::Error GLES2DecoderImpl::HandleGetIntegerv(uint32_t immediate_data_size, | 1655 error::Error GLES2DecoderImpl::HandleGetIntegerv(uint32_t immediate_data_size, |
| 1582 const void* cmd_data) { | 1656 const void* cmd_data) { |
| 1583 const gles2::cmds::GetIntegerv& c = | 1657 const gles2::cmds::GetIntegerv& c = |
| 1584 *static_cast<const gles2::cmds::GetIntegerv*>(cmd_data); | 1658 *static_cast<const gles2::cmds::GetIntegerv*>(cmd_data); |
| 1585 (void)c; | 1659 (void)c; |
| 1586 GLenum pname = static_cast<GLenum>(c.pname); | 1660 GLenum pname = static_cast<GLenum>(c.pname); |
| 1587 typedef cmds::GetIntegerv::Result Result; | 1661 typedef cmds::GetIntegerv::Result Result; |
| 1588 GLsizei num_values = 0; | 1662 GLsizei num_values = 0; |
| 1589 GetNumValuesReturnedForGLGet(pname, &num_values); | 1663 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1590 Result* result = GetSharedMemoryAs<Result*>( | 1664 Result* result = GetSharedMemoryAs<Result*>( |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1692 *static_cast<const gles2::cmds::GetSamplerParameterfv*>(cmd_data); | 1766 *static_cast<const gles2::cmds::GetSamplerParameterfv*>(cmd_data); |
| 1693 (void)c; | 1767 (void)c; |
| 1694 GLuint sampler = c.sampler; | 1768 GLuint sampler = c.sampler; |
| 1695 GLenum pname = static_cast<GLenum>(c.pname); | 1769 GLenum pname = static_cast<GLenum>(c.pname); |
| 1696 typedef cmds::GetSamplerParameterfv::Result Result; | 1770 typedef cmds::GetSamplerParameterfv::Result Result; |
| 1697 GLsizei num_values = 0; | 1771 GLsizei num_values = 0; |
| 1698 GetNumValuesReturnedForGLGet(pname, &num_values); | 1772 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1699 Result* result = GetSharedMemoryAs<Result*>( | 1773 Result* result = GetSharedMemoryAs<Result*>( |
| 1700 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1774 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1701 GLfloat* params = result ? result->GetData() : NULL; | 1775 GLfloat* params = result ? result->GetData() : NULL; |
| 1776 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 1777 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetSamplerParameterfv", pname, "pname"); |
| 1778 return error::kNoError; |
| 1779 } |
| 1702 if (params == NULL) { | 1780 if (params == NULL) { |
| 1703 return error::kOutOfBounds; | 1781 return error::kOutOfBounds; |
| 1704 } | 1782 } |
| 1705 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); | 1783 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); |
| 1706 // Check that the client initialized the result. | 1784 // Check that the client initialized the result. |
| 1707 if (result->size != 0) { | 1785 if (result->size != 0) { |
| 1708 return error::kInvalidArguments; | 1786 return error::kInvalidArguments; |
| 1709 } | 1787 } |
| 1710 DoGetSamplerParameterfv(sampler, pname, params); | 1788 DoGetSamplerParameterfv(sampler, pname, params); |
| 1711 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); | 1789 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1724 *static_cast<const gles2::cmds::GetSamplerParameteriv*>(cmd_data); | 1802 *static_cast<const gles2::cmds::GetSamplerParameteriv*>(cmd_data); |
| 1725 (void)c; | 1803 (void)c; |
| 1726 GLuint sampler = c.sampler; | 1804 GLuint sampler = c.sampler; |
| 1727 GLenum pname = static_cast<GLenum>(c.pname); | 1805 GLenum pname = static_cast<GLenum>(c.pname); |
| 1728 typedef cmds::GetSamplerParameteriv::Result Result; | 1806 typedef cmds::GetSamplerParameteriv::Result Result; |
| 1729 GLsizei num_values = 0; | 1807 GLsizei num_values = 0; |
| 1730 GetNumValuesReturnedForGLGet(pname, &num_values); | 1808 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1731 Result* result = GetSharedMemoryAs<Result*>( | 1809 Result* result = GetSharedMemoryAs<Result*>( |
| 1732 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1810 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1733 GLint* params = result ? result->GetData() : NULL; | 1811 GLint* params = result ? result->GetData() : NULL; |
| 1812 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 1813 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetSamplerParameteriv", pname, "pname"); |
| 1814 return error::kNoError; |
| 1815 } |
| 1734 if (params == NULL) { | 1816 if (params == NULL) { |
| 1735 return error::kOutOfBounds; | 1817 return error::kOutOfBounds; |
| 1736 } | 1818 } |
| 1737 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); | 1819 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); |
| 1738 // Check that the client initialized the result. | 1820 // Check that the client initialized the result. |
| 1739 if (result->size != 0) { | 1821 if (result->size != 0) { |
| 1740 return error::kInvalidArguments; | 1822 return error::kInvalidArguments; |
| 1741 } | 1823 } |
| 1742 DoGetSamplerParameteriv(sampler, pname, params); | 1824 DoGetSamplerParameteriv(sampler, pname, params); |
| 1743 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); | 1825 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1788 *static_cast<const gles2::cmds::GetSynciv*>(cmd_data); | 1870 *static_cast<const gles2::cmds::GetSynciv*>(cmd_data); |
| 1789 (void)c; | 1871 (void)c; |
| 1790 GLuint sync = static_cast<GLuint>(c.sync); | 1872 GLuint sync = static_cast<GLuint>(c.sync); |
| 1791 GLenum pname = static_cast<GLenum>(c.pname); | 1873 GLenum pname = static_cast<GLenum>(c.pname); |
| 1792 typedef cmds::GetSynciv::Result Result; | 1874 typedef cmds::GetSynciv::Result Result; |
| 1793 GLsizei num_values = 0; | 1875 GLsizei num_values = 0; |
| 1794 GetNumValuesReturnedForGLGet(pname, &num_values); | 1876 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1795 Result* result = GetSharedMemoryAs<Result*>( | 1877 Result* result = GetSharedMemoryAs<Result*>( |
| 1796 c.values_shm_id, c.values_shm_offset, Result::ComputeSize(num_values)); | 1878 c.values_shm_id, c.values_shm_offset, Result::ComputeSize(num_values)); |
| 1797 GLint* values = result ? result->GetData() : NULL; | 1879 GLint* values = result ? result->GetData() : NULL; |
| 1880 if (!validators_->sync_parameter.IsValid(pname)) { |
| 1881 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetSynciv", pname, "pname"); |
| 1882 return error::kNoError; |
| 1883 } |
| 1798 if (values == NULL) { | 1884 if (values == NULL) { |
| 1799 return error::kOutOfBounds; | 1885 return error::kOutOfBounds; |
| 1800 } | 1886 } |
| 1801 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSynciv"); | 1887 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSynciv"); |
| 1802 // Check that the client initialized the result. | 1888 // Check that the client initialized the result. |
| 1803 if (result->size != 0) { | 1889 if (result->size != 0) { |
| 1804 return error::kInvalidArguments; | 1890 return error::kInvalidArguments; |
| 1805 } | 1891 } |
| 1806 GLsync service_sync = 0; | 1892 GLsync service_sync = 0; |
| 1807 if (!group_->GetSyncServiceId(sync, &service_sync)) { | 1893 if (!group_->GetSyncServiceId(sync, &service_sync)) { |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1969 *static_cast<const gles2::cmds::GetVertexAttribIiv*>(cmd_data); | 2055 *static_cast<const gles2::cmds::GetVertexAttribIiv*>(cmd_data); |
| 1970 (void)c; | 2056 (void)c; |
| 1971 GLuint index = static_cast<GLuint>(c.index); | 2057 GLuint index = static_cast<GLuint>(c.index); |
| 1972 GLenum pname = static_cast<GLenum>(c.pname); | 2058 GLenum pname = static_cast<GLenum>(c.pname); |
| 1973 typedef cmds::GetVertexAttribIiv::Result Result; | 2059 typedef cmds::GetVertexAttribIiv::Result Result; |
| 1974 GLsizei num_values = 0; | 2060 GLsizei num_values = 0; |
| 1975 GetNumValuesReturnedForGLGet(pname, &num_values); | 2061 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1976 Result* result = GetSharedMemoryAs<Result*>( | 2062 Result* result = GetSharedMemoryAs<Result*>( |
| 1977 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 2063 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1978 GLint* params = result ? result->GetData() : NULL; | 2064 GLint* params = result ? result->GetData() : NULL; |
| 2065 if (!validators_->vertex_attribute.IsValid(pname)) { |
| 2066 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetVertexAttribIiv", pname, "pname"); |
| 2067 return error::kNoError; |
| 2068 } |
| 1979 if (params == NULL) { | 2069 if (params == NULL) { |
| 1980 return error::kOutOfBounds; | 2070 return error::kOutOfBounds; |
| 1981 } | 2071 } |
| 1982 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetVertexAttribIiv"); | 2072 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetVertexAttribIiv"); |
| 1983 // Check that the client initialized the result. | 2073 // Check that the client initialized the result. |
| 1984 if (result->size != 0) { | 2074 if (result->size != 0) { |
| 1985 return error::kInvalidArguments; | 2075 return error::kInvalidArguments; |
| 1986 } | 2076 } |
| 1987 DoGetVertexAttribIiv(index, pname, params); | 2077 DoGetVertexAttribIiv(index, pname, params); |
| 1988 GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIiv"); | 2078 GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIiv"); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2001 *static_cast<const gles2::cmds::GetVertexAttribIuiv*>(cmd_data); | 2091 *static_cast<const gles2::cmds::GetVertexAttribIuiv*>(cmd_data); |
| 2002 (void)c; | 2092 (void)c; |
| 2003 GLuint index = static_cast<GLuint>(c.index); | 2093 GLuint index = static_cast<GLuint>(c.index); |
| 2004 GLenum pname = static_cast<GLenum>(c.pname); | 2094 GLenum pname = static_cast<GLenum>(c.pname); |
| 2005 typedef cmds::GetVertexAttribIuiv::Result Result; | 2095 typedef cmds::GetVertexAttribIuiv::Result Result; |
| 2006 GLsizei num_values = 0; | 2096 GLsizei num_values = 0; |
| 2007 GetNumValuesReturnedForGLGet(pname, &num_values); | 2097 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 2008 Result* result = GetSharedMemoryAs<Result*>( | 2098 Result* result = GetSharedMemoryAs<Result*>( |
| 2009 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 2099 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 2010 GLuint* params = result ? result->GetData() : NULL; | 2100 GLuint* params = result ? result->GetData() : NULL; |
| 2101 if (!validators_->vertex_attribute.IsValid(pname)) { |
| 2102 LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetVertexAttribIuiv", pname, "pname"); |
| 2103 return error::kNoError; |
| 2104 } |
| 2011 if (params == NULL) { | 2105 if (params == NULL) { |
| 2012 return error::kOutOfBounds; | 2106 return error::kOutOfBounds; |
| 2013 } | 2107 } |
| 2014 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetVertexAttribIuiv"); | 2108 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetVertexAttribIuiv"); |
| 2015 // Check that the client initialized the result. | 2109 // Check that the client initialized the result. |
| 2016 if (result->size != 0) { | 2110 if (result->size != 0) { |
| 2017 return error::kInvalidArguments; | 2111 return error::kInvalidArguments; |
| 2018 } | 2112 } |
| 2019 DoGetVertexAttribIuiv(index, pname, params); | 2113 DoGetVertexAttribIuiv(index, pname, params); |
| 2020 GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIuiv"); | 2114 GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIuiv"); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2075 return error::kNoError; | 2169 return error::kNoError; |
| 2076 } | 2170 } |
| 2077 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { | 2171 if (!ComputeDataSize(count, sizeof(GLenum), 1, &data_size)) { |
| 2078 return error::kOutOfBounds; | 2172 return error::kOutOfBounds; |
| 2079 } | 2173 } |
| 2080 if (data_size > immediate_data_size) { | 2174 if (data_size > immediate_data_size) { |
| 2081 return error::kOutOfBounds; | 2175 return error::kOutOfBounds; |
| 2082 } | 2176 } |
| 2083 const GLenum* attachments = | 2177 const GLenum* attachments = |
| 2084 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); | 2178 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); |
| 2179 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 2180 LOCAL_SET_GL_ERROR_INVALID_ENUM("glInvalidateFramebuffer", target, |
| 2181 "target"); |
| 2182 return error::kNoError; |
| 2183 } |
| 2085 if (attachments == NULL) { | 2184 if (attachments == NULL) { |
| 2086 return error::kOutOfBounds; | 2185 return error::kOutOfBounds; |
| 2087 } | 2186 } |
| 2088 DoInvalidateFramebuffer(target, count, attachments); | 2187 DoInvalidateFramebuffer(target, count, attachments); |
| 2089 return error::kNoError; | 2188 return error::kNoError; |
| 2090 } | 2189 } |
| 2091 | 2190 |
| 2092 error::Error GLES2DecoderImpl::HandleInvalidateSubFramebufferImmediate( | 2191 error::Error GLES2DecoderImpl::HandleInvalidateSubFramebufferImmediate( |
| 2093 uint32_t immediate_data_size, | 2192 uint32_t immediate_data_size, |
| 2094 const void* cmd_data) { | 2193 const void* cmd_data) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 2111 } | 2210 } |
| 2112 if (data_size > immediate_data_size) { | 2211 if (data_size > immediate_data_size) { |
| 2113 return error::kOutOfBounds; | 2212 return error::kOutOfBounds; |
| 2114 } | 2213 } |
| 2115 const GLenum* attachments = | 2214 const GLenum* attachments = |
| 2116 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); | 2215 GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size); |
| 2117 GLint x = static_cast<GLint>(c.x); | 2216 GLint x = static_cast<GLint>(c.x); |
| 2118 GLint y = static_cast<GLint>(c.y); | 2217 GLint y = static_cast<GLint>(c.y); |
| 2119 GLsizei width = static_cast<GLsizei>(c.width); | 2218 GLsizei width = static_cast<GLsizei>(c.width); |
| 2120 GLsizei height = static_cast<GLsizei>(c.height); | 2219 GLsizei height = static_cast<GLsizei>(c.height); |
| 2220 if (!validators_->frame_buffer_target.IsValid(target)) { |
| 2221 LOCAL_SET_GL_ERROR_INVALID_ENUM("glInvalidateSubFramebuffer", target, |
| 2222 "target"); |
| 2223 return error::kNoError; |
| 2224 } |
| 2121 if (attachments == NULL) { | 2225 if (attachments == NULL) { |
| 2122 return error::kOutOfBounds; | 2226 return error::kOutOfBounds; |
| 2123 } | 2227 } |
| 2124 DoInvalidateSubFramebuffer(target, count, attachments, x, y, width, height); | 2228 DoInvalidateSubFramebuffer(target, count, attachments, x, y, width, height); |
| 2125 return error::kNoError; | 2229 return error::kNoError; |
| 2126 } | 2230 } |
| 2127 | 2231 |
| 2128 error::Error GLES2DecoderImpl::HandleIsBuffer(uint32_t immediate_data_size, | 2232 error::Error GLES2DecoderImpl::HandleIsBuffer(uint32_t immediate_data_size, |
| 2129 const void* cmd_data) { | 2233 const void* cmd_data) { |
| 2130 const gles2::cmds::IsBuffer& c = | 2234 const gles2::cmds::IsBuffer& c = |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2354 } | 2458 } |
| 2355 | 2459 |
| 2356 error::Error GLES2DecoderImpl::HandleReadBuffer(uint32_t immediate_data_size, | 2460 error::Error GLES2DecoderImpl::HandleReadBuffer(uint32_t immediate_data_size, |
| 2357 const void* cmd_data) { | 2461 const void* cmd_data) { |
| 2358 if (!unsafe_es3_apis_enabled()) | 2462 if (!unsafe_es3_apis_enabled()) |
| 2359 return error::kUnknownCommand; | 2463 return error::kUnknownCommand; |
| 2360 const gles2::cmds::ReadBuffer& c = | 2464 const gles2::cmds::ReadBuffer& c = |
| 2361 *static_cast<const gles2::cmds::ReadBuffer*>(cmd_data); | 2465 *static_cast<const gles2::cmds::ReadBuffer*>(cmd_data); |
| 2362 (void)c; | 2466 (void)c; |
| 2363 GLenum src = static_cast<GLenum>(c.src); | 2467 GLenum src = static_cast<GLenum>(c.src); |
| 2468 if (!validators_->read_buffer.IsValid(src)) { |
| 2469 LOCAL_SET_GL_ERROR_INVALID_ENUM("glReadBuffer", src, "src"); |
| 2470 return error::kNoError; |
| 2471 } |
| 2364 DoReadBuffer(src); | 2472 DoReadBuffer(src); |
| 2365 return error::kNoError; | 2473 return error::kNoError; |
| 2366 } | 2474 } |
| 2367 | 2475 |
| 2368 error::Error GLES2DecoderImpl::HandleReleaseShaderCompiler( | 2476 error::Error GLES2DecoderImpl::HandleReleaseShaderCompiler( |
| 2369 uint32_t immediate_data_size, | 2477 uint32_t immediate_data_size, |
| 2370 const void* cmd_data) { | 2478 const void* cmd_data) { |
| 2371 const gles2::cmds::ReleaseShaderCompiler& c = | 2479 const gles2::cmds::ReleaseShaderCompiler& c = |
| 2372 *static_cast<const gles2::cmds::ReleaseShaderCompiler*>(cmd_data); | 2480 *static_cast<const gles2::cmds::ReleaseShaderCompiler*>(cmd_data); |
| 2373 (void)c; | 2481 (void)c; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2434 uint32_t immediate_data_size, | 2542 uint32_t immediate_data_size, |
| 2435 const void* cmd_data) { | 2543 const void* cmd_data) { |
| 2436 if (!unsafe_es3_apis_enabled()) | 2544 if (!unsafe_es3_apis_enabled()) |
| 2437 return error::kUnknownCommand; | 2545 return error::kUnknownCommand; |
| 2438 const gles2::cmds::SamplerParameterf& c = | 2546 const gles2::cmds::SamplerParameterf& c = |
| 2439 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); | 2547 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); |
| 2440 (void)c; | 2548 (void)c; |
| 2441 GLuint sampler = c.sampler; | 2549 GLuint sampler = c.sampler; |
| 2442 GLenum pname = static_cast<GLenum>(c.pname); | 2550 GLenum pname = static_cast<GLenum>(c.pname); |
| 2443 GLfloat param = static_cast<GLfloat>(c.param); | 2551 GLfloat param = static_cast<GLfloat>(c.param); |
| 2552 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 2553 LOCAL_SET_GL_ERROR_INVALID_ENUM("glSamplerParameterf", pname, "pname"); |
| 2554 return error::kNoError; |
| 2555 } |
| 2444 DoSamplerParameterf(sampler, pname, param); | 2556 DoSamplerParameterf(sampler, pname, param); |
| 2445 return error::kNoError; | 2557 return error::kNoError; |
| 2446 } | 2558 } |
| 2447 | 2559 |
| 2448 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( | 2560 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( |
| 2449 uint32_t immediate_data_size, | 2561 uint32_t immediate_data_size, |
| 2450 const void* cmd_data) { | 2562 const void* cmd_data) { |
| 2451 if (!unsafe_es3_apis_enabled()) | 2563 if (!unsafe_es3_apis_enabled()) |
| 2452 return error::kUnknownCommand; | 2564 return error::kUnknownCommand; |
| 2453 const gles2::cmds::SamplerParameterfvImmediate& c = | 2565 const gles2::cmds::SamplerParameterfvImmediate& c = |
| 2454 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); | 2566 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); |
| 2455 (void)c; | 2567 (void)c; |
| 2456 GLuint sampler = c.sampler; | 2568 GLuint sampler = c.sampler; |
| 2457 GLenum pname = static_cast<GLenum>(c.pname); | 2569 GLenum pname = static_cast<GLenum>(c.pname); |
| 2458 uint32_t data_size; | 2570 uint32_t data_size; |
| 2459 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 2571 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 2460 return error::kOutOfBounds; | 2572 return error::kOutOfBounds; |
| 2461 } | 2573 } |
| 2462 if (data_size > immediate_data_size) { | 2574 if (data_size > immediate_data_size) { |
| 2463 return error::kOutOfBounds; | 2575 return error::kOutOfBounds; |
| 2464 } | 2576 } |
| 2465 const GLfloat* params = | 2577 const GLfloat* params = |
| 2466 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); | 2578 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
| 2579 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 2580 LOCAL_SET_GL_ERROR_INVALID_ENUM("glSamplerParameterfv", pname, "pname"); |
| 2581 return error::kNoError; |
| 2582 } |
| 2467 if (params == NULL) { | 2583 if (params == NULL) { |
| 2468 return error::kOutOfBounds; | 2584 return error::kOutOfBounds; |
| 2469 } | 2585 } |
| 2470 DoSamplerParameterfv(sampler, pname, params); | 2586 DoSamplerParameterfv(sampler, pname, params); |
| 2471 return error::kNoError; | 2587 return error::kNoError; |
| 2472 } | 2588 } |
| 2473 | 2589 |
| 2474 error::Error GLES2DecoderImpl::HandleSamplerParameteri( | 2590 error::Error GLES2DecoderImpl::HandleSamplerParameteri( |
| 2475 uint32_t immediate_data_size, | 2591 uint32_t immediate_data_size, |
| 2476 const void* cmd_data) { | 2592 const void* cmd_data) { |
| 2477 if (!unsafe_es3_apis_enabled()) | 2593 if (!unsafe_es3_apis_enabled()) |
| 2478 return error::kUnknownCommand; | 2594 return error::kUnknownCommand; |
| 2479 const gles2::cmds::SamplerParameteri& c = | 2595 const gles2::cmds::SamplerParameteri& c = |
| 2480 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); | 2596 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); |
| 2481 (void)c; | 2597 (void)c; |
| 2482 GLuint sampler = c.sampler; | 2598 GLuint sampler = c.sampler; |
| 2483 GLenum pname = static_cast<GLenum>(c.pname); | 2599 GLenum pname = static_cast<GLenum>(c.pname); |
| 2484 GLint param = static_cast<GLint>(c.param); | 2600 GLint param = static_cast<GLint>(c.param); |
| 2601 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 2602 LOCAL_SET_GL_ERROR_INVALID_ENUM("glSamplerParameteri", pname, "pname"); |
| 2603 return error::kNoError; |
| 2604 } |
| 2485 DoSamplerParameteri(sampler, pname, param); | 2605 DoSamplerParameteri(sampler, pname, param); |
| 2486 return error::kNoError; | 2606 return error::kNoError; |
| 2487 } | 2607 } |
| 2488 | 2608 |
| 2489 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( | 2609 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( |
| 2490 uint32_t immediate_data_size, | 2610 uint32_t immediate_data_size, |
| 2491 const void* cmd_data) { | 2611 const void* cmd_data) { |
| 2492 if (!unsafe_es3_apis_enabled()) | 2612 if (!unsafe_es3_apis_enabled()) |
| 2493 return error::kUnknownCommand; | 2613 return error::kUnknownCommand; |
| 2494 const gles2::cmds::SamplerParameterivImmediate& c = | 2614 const gles2::cmds::SamplerParameterivImmediate& c = |
| 2495 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); | 2615 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); |
| 2496 (void)c; | 2616 (void)c; |
| 2497 GLuint sampler = c.sampler; | 2617 GLuint sampler = c.sampler; |
| 2498 GLenum pname = static_cast<GLenum>(c.pname); | 2618 GLenum pname = static_cast<GLenum>(c.pname); |
| 2499 uint32_t data_size; | 2619 uint32_t data_size; |
| 2500 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { | 2620 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 2501 return error::kOutOfBounds; | 2621 return error::kOutOfBounds; |
| 2502 } | 2622 } |
| 2503 if (data_size > immediate_data_size) { | 2623 if (data_size > immediate_data_size) { |
| 2504 return error::kOutOfBounds; | 2624 return error::kOutOfBounds; |
| 2505 } | 2625 } |
| 2506 const GLint* params = | 2626 const GLint* params = |
| 2507 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); | 2627 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); |
| 2628 if (!validators_->sampler_parameter.IsValid(pname)) { |
| 2629 LOCAL_SET_GL_ERROR_INVALID_ENUM("glSamplerParameteriv", pname, "pname"); |
| 2630 return error::kNoError; |
| 2631 } |
| 2508 if (params == NULL) { | 2632 if (params == NULL) { |
| 2509 return error::kOutOfBounds; | 2633 return error::kOutOfBounds; |
| 2510 } | 2634 } |
| 2511 DoSamplerParameteriv(sampler, pname, params); | 2635 DoSamplerParameteriv(sampler, pname, params); |
| 2512 return error::kNoError; | 2636 return error::kNoError; |
| 2513 } | 2637 } |
| 2514 | 2638 |
| 2515 error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size, | 2639 error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size, |
| 2516 const void* cmd_data) { | 2640 const void* cmd_data) { |
| 2517 const gles2::cmds::Scissor& c = | 2641 const gles2::cmds::Scissor& c = |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2884 return error::kUnknownCommand; | 3008 return error::kUnknownCommand; |
| 2885 const gles2::cmds::TexStorage3D& c = | 3009 const gles2::cmds::TexStorage3D& c = |
| 2886 *static_cast<const gles2::cmds::TexStorage3D*>(cmd_data); | 3010 *static_cast<const gles2::cmds::TexStorage3D*>(cmd_data); |
| 2887 (void)c; | 3011 (void)c; |
| 2888 GLenum target = static_cast<GLenum>(c.target); | 3012 GLenum target = static_cast<GLenum>(c.target); |
| 2889 GLsizei levels = static_cast<GLsizei>(c.levels); | 3013 GLsizei levels = static_cast<GLsizei>(c.levels); |
| 2890 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); | 3014 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); |
| 2891 GLsizei width = static_cast<GLsizei>(c.width); | 3015 GLsizei width = static_cast<GLsizei>(c.width); |
| 2892 GLsizei height = static_cast<GLsizei>(c.height); | 3016 GLsizei height = static_cast<GLsizei>(c.height); |
| 2893 GLsizei depth = static_cast<GLsizei>(c.depth); | 3017 GLsizei depth = static_cast<GLsizei>(c.depth); |
| 3018 if (!validators_->texture_3_d_target.IsValid(target)) { |
| 3019 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage3D", target, "target"); |
| 3020 return error::kNoError; |
| 3021 } |
| 3022 if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) { |
| 3023 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage3D", internalFormat, |
| 3024 "internalFormat"); |
| 3025 return error::kNoError; |
| 3026 } |
| 2894 DoTexStorage3D(target, levels, internalFormat, width, height, depth); | 3027 DoTexStorage3D(target, levels, internalFormat, width, height, depth); |
| 2895 return error::kNoError; | 3028 return error::kNoError; |
| 2896 } | 3029 } |
| 2897 | 3030 |
| 2898 error::Error GLES2DecoderImpl::HandleTransformFeedbackVaryingsBucket( | 3031 error::Error GLES2DecoderImpl::HandleTransformFeedbackVaryingsBucket( |
| 2899 uint32_t immediate_data_size, | 3032 uint32_t immediate_data_size, |
| 2900 const void* cmd_data) { | 3033 const void* cmd_data) { |
| 2901 if (!unsafe_es3_apis_enabled()) | 3034 if (!unsafe_es3_apis_enabled()) |
| 2902 return error::kUnknownCommand; | 3035 return error::kUnknownCommand; |
| 2903 const gles2::cmds::TransformFeedbackVaryingsBucket& c = | 3036 const gles2::cmds::TransformFeedbackVaryingsBucket& c = |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2915 std::vector<GLint> len; | 3048 std::vector<GLint> len; |
| 2916 if (!bucket->GetAsStrings(&count, &strs, &len)) { | 3049 if (!bucket->GetAsStrings(&count, &strs, &len)) { |
| 2917 return error::kInvalidArguments; | 3050 return error::kInvalidArguments; |
| 2918 } | 3051 } |
| 2919 const char** varyings = | 3052 const char** varyings = |
| 2920 strs.size() > 0 ? const_cast<const char**>(&strs[0]) : NULL; | 3053 strs.size() > 0 ? const_cast<const char**>(&strs[0]) : NULL; |
| 2921 const GLint* length = | 3054 const GLint* length = |
| 2922 len.size() > 0 ? const_cast<const GLint*>(&len[0]) : NULL; | 3055 len.size() > 0 ? const_cast<const GLint*>(&len[0]) : NULL; |
| 2923 (void)length; | 3056 (void)length; |
| 2924 GLenum buffermode = static_cast<GLenum>(c.buffermode); | 3057 GLenum buffermode = static_cast<GLenum>(c.buffermode); |
| 3058 if (!validators_->buffer_mode.IsValid(buffermode)) { |
| 3059 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTransformFeedbackVaryings", buffermode, |
| 3060 "buffermode"); |
| 3061 return error::kNoError; |
| 3062 } |
| 2925 DoTransformFeedbackVaryings(program, count, varyings, buffermode); | 3063 DoTransformFeedbackVaryings(program, count, varyings, buffermode); |
| 2926 return error::kNoError; | 3064 return error::kNoError; |
| 2927 } | 3065 } |
| 2928 | 3066 |
| 2929 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, | 3067 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, |
| 2930 const void* cmd_data) { | 3068 const void* cmd_data) { |
| 2931 const gles2::cmds::Uniform1f& c = | 3069 const gles2::cmds::Uniform1f& c = |
| 2932 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); | 3070 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); |
| 2933 (void)c; | 3071 (void)c; |
| 2934 GLint location = static_cast<GLint>(c.location); | 3072 GLint location = static_cast<GLint>(c.location); |
| (...skipping 1345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4280 | 4418 |
| 4281 error::Error GLES2DecoderImpl::HandleBeginTransformFeedback( | 4419 error::Error GLES2DecoderImpl::HandleBeginTransformFeedback( |
| 4282 uint32_t immediate_data_size, | 4420 uint32_t immediate_data_size, |
| 4283 const void* cmd_data) { | 4421 const void* cmd_data) { |
| 4284 if (!unsafe_es3_apis_enabled()) | 4422 if (!unsafe_es3_apis_enabled()) |
| 4285 return error::kUnknownCommand; | 4423 return error::kUnknownCommand; |
| 4286 const gles2::cmds::BeginTransformFeedback& c = | 4424 const gles2::cmds::BeginTransformFeedback& c = |
| 4287 *static_cast<const gles2::cmds::BeginTransformFeedback*>(cmd_data); | 4425 *static_cast<const gles2::cmds::BeginTransformFeedback*>(cmd_data); |
| 4288 (void)c; | 4426 (void)c; |
| 4289 GLenum primitivemode = static_cast<GLenum>(c.primitivemode); | 4427 GLenum primitivemode = static_cast<GLenum>(c.primitivemode); |
| 4428 if (!validators_->transform_feedback_primitive_mode.IsValid(primitivemode)) { |
| 4429 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBeginTransformFeedback", primitivemode, |
| 4430 "primitivemode"); |
| 4431 return error::kNoError; |
| 4432 } |
| 4290 DoBeginTransformFeedback(primitivemode); | 4433 DoBeginTransformFeedback(primitivemode); |
| 4291 return error::kNoError; | 4434 return error::kNoError; |
| 4292 } | 4435 } |
| 4293 | 4436 |
| 4294 error::Error GLES2DecoderImpl::HandleEndTransformFeedback( | 4437 error::Error GLES2DecoderImpl::HandleEndTransformFeedback( |
| 4295 uint32_t immediate_data_size, | 4438 uint32_t immediate_data_size, |
| 4296 const void* cmd_data) { | 4439 const void* cmd_data) { |
| 4297 if (!unsafe_es3_apis_enabled()) | 4440 if (!unsafe_es3_apis_enabled()) |
| 4298 return error::kUnknownCommand; | 4441 return error::kUnknownCommand; |
| 4299 const gles2::cmds::EndTransformFeedback& c = | 4442 const gles2::cmds::EndTransformFeedback& c = |
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5108 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; | 5251 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; |
| 5109 return true; | 5252 return true; |
| 5110 } | 5253 } |
| 5111 return false; | 5254 return false; |
| 5112 default: | 5255 default: |
| 5113 NOTREACHED(); | 5256 NOTREACHED(); |
| 5114 return false; | 5257 return false; |
| 5115 } | 5258 } |
| 5116 } | 5259 } |
| 5117 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 5260 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| OLD | NEW |