| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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. DO NOT EDIT! | 5 // This file is auto-generated. DO NOT EDIT! |
| 6 | 6 |
| 7 // It is included by gles2_cmd_decoder.cc | 7 // It is included by gles2_cmd_decoder.cc |
| 8 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 8 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| 9 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 9 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| 10 | 10 |
| 11 error::Error GLES2DecoderImpl::HandleActiveTexture( | 11 error::Error GLES2DecoderImpl::HandleActiveTexture( |
| 12 uint32 immediate_data_size, const gles2::ActiveTexture& c) { | 12 uint32 immediate_data_size, const gles2::ActiveTexture& c) { |
| 13 GLenum texture = static_cast<GLenum>(c.texture); | 13 GLenum texture = static_cast<GLenum>(c.texture); |
| 14 DoActiveTexture(texture); | 14 DoActiveTexture(texture); |
| 15 return error::kNoError; | 15 return error::kNoError; |
| 16 } | 16 } |
| 17 | 17 |
| 18 error::Error GLES2DecoderImpl::HandleAttachShader( | 18 error::Error GLES2DecoderImpl::HandleAttachShader( |
| 19 uint32 immediate_data_size, const gles2::AttachShader& c) { | 19 uint32 immediate_data_size, const gles2::AttachShader& c) { |
| 20 GLuint program; | 20 GLuint program = c.program; |
| 21 if (!id_manager()->GetServiceId(c.program, &program)) { | 21 GLuint shader = c.shader; |
| 22 SetGLError(GL_INVALID_VALUE); | 22 DoAttachShader(program, shader); |
| 23 return error::kNoError; | |
| 24 } | |
| 25 GLuint shader; | |
| 26 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 27 SetGLError(GL_INVALID_VALUE); | |
| 28 return error::kNoError; | |
| 29 } | |
| 30 glAttachShader(program, shader); | |
| 31 return error::kNoError; | 23 return error::kNoError; |
| 32 } | 24 } |
| 33 | 25 |
| 34 error::Error GLES2DecoderImpl::HandleBindBuffer( | 26 error::Error GLES2DecoderImpl::HandleBindBuffer( |
| 35 uint32 immediate_data_size, const gles2::BindBuffer& c) { | 27 uint32 immediate_data_size, const gles2::BindBuffer& c) { |
| 36 GLenum target = static_cast<GLenum>(c.target); | 28 GLenum target = static_cast<GLenum>(c.target); |
| 37 GLuint buffer = c.buffer; | 29 GLuint buffer = c.buffer; |
| 38 if (!ValidateGLenumBufferTarget(target)) { | 30 if (!ValidateGLenumBufferTarget(target)) { |
| 39 SetGLError(GL_INVALID_ENUM); | 31 SetGLError(GL_INVALID_ENUM); |
| 40 return error::kNoError; | 32 return error::kNoError; |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 GLboolean red = static_cast<GLboolean>(c.red); | 249 GLboolean red = static_cast<GLboolean>(c.red); |
| 258 GLboolean green = static_cast<GLboolean>(c.green); | 250 GLboolean green = static_cast<GLboolean>(c.green); |
| 259 GLboolean blue = static_cast<GLboolean>(c.blue); | 251 GLboolean blue = static_cast<GLboolean>(c.blue); |
| 260 GLboolean alpha = static_cast<GLboolean>(c.alpha); | 252 GLboolean alpha = static_cast<GLboolean>(c.alpha); |
| 261 glColorMask(red, green, blue, alpha); | 253 glColorMask(red, green, blue, alpha); |
| 262 return error::kNoError; | 254 return error::kNoError; |
| 263 } | 255 } |
| 264 | 256 |
| 265 error::Error GLES2DecoderImpl::HandleCompileShader( | 257 error::Error GLES2DecoderImpl::HandleCompileShader( |
| 266 uint32 immediate_data_size, const gles2::CompileShader& c) { | 258 uint32 immediate_data_size, const gles2::CompileShader& c) { |
| 267 GLuint shader; | 259 GLuint shader = c.shader; |
| 268 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 269 SetGLError(GL_INVALID_VALUE); | |
| 270 return error::kNoError; | |
| 271 } | |
| 272 DoCompileShader(shader); | 260 DoCompileShader(shader); |
| 273 return error::kNoError; | 261 return error::kNoError; |
| 274 } | 262 } |
| 275 | 263 |
| 276 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D( | 264 error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D( |
| 277 uint32 immediate_data_size, const gles2::CompressedTexSubImage2D& c) { | 265 uint32 immediate_data_size, const gles2::CompressedTexSubImage2D& c) { |
| 278 GLenum target = static_cast<GLenum>(c.target); | 266 GLenum target = static_cast<GLenum>(c.target); |
| 279 GLint level = static_cast<GLint>(c.level); | 267 GLint level = static_cast<GLint>(c.level); |
| 280 GLint xoffset = static_cast<GLint>(c.xoffset); | 268 GLint xoffset = static_cast<GLint>(c.xoffset); |
| 281 GLint yoffset = static_cast<GLint>(c.yoffset); | 269 GLint yoffset = static_cast<GLint>(c.yoffset); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 SetGLError(GL_INVALID_VALUE); | 384 SetGLError(GL_INVALID_VALUE); |
| 397 return error::kNoError; | 385 return error::kNoError; |
| 398 } | 386 } |
| 399 glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); | 387 glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); |
| 400 return error::kNoError; | 388 return error::kNoError; |
| 401 } | 389 } |
| 402 | 390 |
| 403 error::Error GLES2DecoderImpl::HandleCreateProgram( | 391 error::Error GLES2DecoderImpl::HandleCreateProgram( |
| 404 uint32 immediate_data_size, const gles2::CreateProgram& c) { | 392 uint32 immediate_data_size, const gles2::CreateProgram& c) { |
| 405 uint32 client_id = c.client_id; | 393 uint32 client_id = c.client_id; |
| 406 CreateProgramHelper(client_id); | 394 if (!CreateProgramHelper(client_id)) { |
| 395 return error::kInvalidArguments; |
| 396 } |
| 407 return error::kNoError; | 397 return error::kNoError; |
| 408 } | 398 } |
| 409 | 399 |
| 410 error::Error GLES2DecoderImpl::HandleCreateShader( | 400 error::Error GLES2DecoderImpl::HandleCreateShader( |
| 411 uint32 immediate_data_size, const gles2::CreateShader& c) { | 401 uint32 immediate_data_size, const gles2::CreateShader& c) { |
| 412 GLenum type = static_cast<GLenum>(c.type); | 402 GLenum type = static_cast<GLenum>(c.type); |
| 413 if (!ValidateGLenumShaderType(type)) { | 403 if (!ValidateGLenumShaderType(type)) { |
| 414 SetGLError(GL_INVALID_ENUM); | 404 SetGLError(GL_INVALID_ENUM); |
| 415 return error::kNoError; | 405 return error::kNoError; |
| 416 } | 406 } |
| 417 uint32 client_id = c.client_id; | 407 uint32 client_id = c.client_id; |
| 418 CreateShaderHelper(type, client_id); | 408 if (!CreateShaderHelper(type, client_id)) { |
| 409 return error::kInvalidArguments; |
| 410 } |
| 419 return error::kNoError; | 411 return error::kNoError; |
| 420 } | 412 } |
| 421 | 413 |
| 422 error::Error GLES2DecoderImpl::HandleCullFace( | 414 error::Error GLES2DecoderImpl::HandleCullFace( |
| 423 uint32 immediate_data_size, const gles2::CullFace& c) { | 415 uint32 immediate_data_size, const gles2::CullFace& c) { |
| 424 GLenum mode = static_cast<GLenum>(c.mode); | 416 GLenum mode = static_cast<GLenum>(c.mode); |
| 425 if (!ValidateGLenumFaceType(mode)) { | 417 if (!ValidateGLenumFaceType(mode)) { |
| 426 SetGLError(GL_INVALID_ENUM); | 418 SetGLError(GL_INVALID_ENUM); |
| 427 return error::kNoError; | 419 return error::kNoError; |
| 428 } | 420 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 439 } | 431 } |
| 440 const GLuint* buffers = GetSharedMemoryAs<const GLuint*>( | 432 const GLuint* buffers = GetSharedMemoryAs<const GLuint*>( |
| 441 c.buffers_shm_id, c.buffers_shm_offset, data_size); | 433 c.buffers_shm_id, c.buffers_shm_offset, data_size); |
| 442 if (n < 0) { | 434 if (n < 0) { |
| 443 SetGLError(GL_INVALID_VALUE); | 435 SetGLError(GL_INVALID_VALUE); |
| 444 return error::kNoError; | 436 return error::kNoError; |
| 445 } | 437 } |
| 446 if (buffers == NULL) { | 438 if (buffers == NULL) { |
| 447 return error::kOutOfBounds; | 439 return error::kOutOfBounds; |
| 448 } | 440 } |
| 449 DeleteGLObjects<GLDeleteBuffersHelper>(n, buffers); | 441 DeleteBuffersHelper(n, buffers); |
| 450 return error::kNoError; | 442 return error::kNoError; |
| 451 } | 443 } |
| 452 | 444 |
| 453 error::Error GLES2DecoderImpl::HandleDeleteBuffersImmediate( | 445 error::Error GLES2DecoderImpl::HandleDeleteBuffersImmediate( |
| 454 uint32 immediate_data_size, const gles2::DeleteBuffersImmediate& c) { | 446 uint32 immediate_data_size, const gles2::DeleteBuffersImmediate& c) { |
| 455 GLsizei n = static_cast<GLsizei>(c.n); | 447 GLsizei n = static_cast<GLsizei>(c.n); |
| 456 uint32 data_size; | 448 uint32 data_size; |
| 457 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 449 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 458 return error::kOutOfBounds; | 450 return error::kOutOfBounds; |
| 459 } | 451 } |
| 460 const GLuint* buffers = GetImmediateDataAs<const GLuint*>( | 452 const GLuint* buffers = GetImmediateDataAs<const GLuint*>( |
| 461 c, data_size, immediate_data_size); | 453 c, data_size, immediate_data_size); |
| 462 if (n < 0) { | 454 if (n < 0) { |
| 463 SetGLError(GL_INVALID_VALUE); | 455 SetGLError(GL_INVALID_VALUE); |
| 464 return error::kNoError; | 456 return error::kNoError; |
| 465 } | 457 } |
| 466 if (buffers == NULL) { | 458 if (buffers == NULL) { |
| 467 return error::kOutOfBounds; | 459 return error::kOutOfBounds; |
| 468 } | 460 } |
| 469 DeleteGLObjects<GLDeleteBuffersHelper>(n, buffers); | 461 DeleteBuffersHelper(n, buffers); |
| 470 return error::kNoError; | 462 return error::kNoError; |
| 471 } | 463 } |
| 472 | 464 |
| 473 error::Error GLES2DecoderImpl::HandleDeleteFramebuffers( | 465 error::Error GLES2DecoderImpl::HandleDeleteFramebuffers( |
| 474 uint32 immediate_data_size, const gles2::DeleteFramebuffers& c) { | 466 uint32 immediate_data_size, const gles2::DeleteFramebuffers& c) { |
| 475 GLsizei n = static_cast<GLsizei>(c.n); | 467 GLsizei n = static_cast<GLsizei>(c.n); |
| 476 uint32 data_size; | 468 uint32 data_size; |
| 477 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 469 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 478 return error::kOutOfBounds; | 470 return error::kOutOfBounds; |
| 479 } | 471 } |
| 480 const GLuint* framebuffers = GetSharedMemoryAs<const GLuint*>( | 472 const GLuint* framebuffers = GetSharedMemoryAs<const GLuint*>( |
| 481 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); | 473 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); |
| 482 if (n < 0) { | 474 if (n < 0) { |
| 483 SetGLError(GL_INVALID_VALUE); | 475 SetGLError(GL_INVALID_VALUE); |
| 484 return error::kNoError; | 476 return error::kNoError; |
| 485 } | 477 } |
| 486 if (framebuffers == NULL) { | 478 if (framebuffers == NULL) { |
| 487 return error::kOutOfBounds; | 479 return error::kOutOfBounds; |
| 488 } | 480 } |
| 489 DeleteGLObjects<GLDeleteFramebuffersHelper>(n, framebuffers); | 481 DeleteFramebuffersHelper(n, framebuffers); |
| 490 return error::kNoError; | 482 return error::kNoError; |
| 491 } | 483 } |
| 492 | 484 |
| 493 error::Error GLES2DecoderImpl::HandleDeleteFramebuffersImmediate( | 485 error::Error GLES2DecoderImpl::HandleDeleteFramebuffersImmediate( |
| 494 uint32 immediate_data_size, const gles2::DeleteFramebuffersImmediate& c) { | 486 uint32 immediate_data_size, const gles2::DeleteFramebuffersImmediate& c) { |
| 495 GLsizei n = static_cast<GLsizei>(c.n); | 487 GLsizei n = static_cast<GLsizei>(c.n); |
| 496 uint32 data_size; | 488 uint32 data_size; |
| 497 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 489 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 498 return error::kOutOfBounds; | 490 return error::kOutOfBounds; |
| 499 } | 491 } |
| 500 const GLuint* framebuffers = GetImmediateDataAs<const GLuint*>( | 492 const GLuint* framebuffers = GetImmediateDataAs<const GLuint*>( |
| 501 c, data_size, immediate_data_size); | 493 c, data_size, immediate_data_size); |
| 502 if (n < 0) { | 494 if (n < 0) { |
| 503 SetGLError(GL_INVALID_VALUE); | 495 SetGLError(GL_INVALID_VALUE); |
| 504 return error::kNoError; | 496 return error::kNoError; |
| 505 } | 497 } |
| 506 if (framebuffers == NULL) { | 498 if (framebuffers == NULL) { |
| 507 return error::kOutOfBounds; | 499 return error::kOutOfBounds; |
| 508 } | 500 } |
| 509 DeleteGLObjects<GLDeleteFramebuffersHelper>(n, framebuffers); | 501 DeleteFramebuffersHelper(n, framebuffers); |
| 510 return error::kNoError; | 502 return error::kNoError; |
| 511 } | 503 } |
| 512 | 504 |
| 513 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffers( | 505 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffers( |
| 514 uint32 immediate_data_size, const gles2::DeleteRenderbuffers& c) { | 506 uint32 immediate_data_size, const gles2::DeleteRenderbuffers& c) { |
| 515 GLsizei n = static_cast<GLsizei>(c.n); | 507 GLsizei n = static_cast<GLsizei>(c.n); |
| 516 uint32 data_size; | 508 uint32 data_size; |
| 517 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 509 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 518 return error::kOutOfBounds; | 510 return error::kOutOfBounds; |
| 519 } | 511 } |
| 520 const GLuint* renderbuffers = GetSharedMemoryAs<const GLuint*>( | 512 const GLuint* renderbuffers = GetSharedMemoryAs<const GLuint*>( |
| 521 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); | 513 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); |
| 522 if (n < 0) { | 514 if (n < 0) { |
| 523 SetGLError(GL_INVALID_VALUE); | 515 SetGLError(GL_INVALID_VALUE); |
| 524 return error::kNoError; | 516 return error::kNoError; |
| 525 } | 517 } |
| 526 if (renderbuffers == NULL) { | 518 if (renderbuffers == NULL) { |
| 527 return error::kOutOfBounds; | 519 return error::kOutOfBounds; |
| 528 } | 520 } |
| 529 DeleteGLObjects<GLDeleteRenderbuffersHelper>(n, renderbuffers); | 521 DeleteRenderbuffersHelper(n, renderbuffers); |
| 530 return error::kNoError; | 522 return error::kNoError; |
| 531 } | 523 } |
| 532 | 524 |
| 533 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffersImmediate( | 525 error::Error GLES2DecoderImpl::HandleDeleteRenderbuffersImmediate( |
| 534 uint32 immediate_data_size, const gles2::DeleteRenderbuffersImmediate& c) { | 526 uint32 immediate_data_size, const gles2::DeleteRenderbuffersImmediate& c) { |
| 535 GLsizei n = static_cast<GLsizei>(c.n); | 527 GLsizei n = static_cast<GLsizei>(c.n); |
| 536 uint32 data_size; | 528 uint32 data_size; |
| 537 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 529 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 538 return error::kOutOfBounds; | 530 return error::kOutOfBounds; |
| 539 } | 531 } |
| 540 const GLuint* renderbuffers = GetImmediateDataAs<const GLuint*>( | 532 const GLuint* renderbuffers = GetImmediateDataAs<const GLuint*>( |
| 541 c, data_size, immediate_data_size); | 533 c, data_size, immediate_data_size); |
| 542 if (n < 0) { | 534 if (n < 0) { |
| 543 SetGLError(GL_INVALID_VALUE); | 535 SetGLError(GL_INVALID_VALUE); |
| 544 return error::kNoError; | 536 return error::kNoError; |
| 545 } | 537 } |
| 546 if (renderbuffers == NULL) { | 538 if (renderbuffers == NULL) { |
| 547 return error::kOutOfBounds; | 539 return error::kOutOfBounds; |
| 548 } | 540 } |
| 549 DeleteGLObjects<GLDeleteRenderbuffersHelper>(n, renderbuffers); | 541 DeleteRenderbuffersHelper(n, renderbuffers); |
| 550 return error::kNoError; | 542 return error::kNoError; |
| 551 } | 543 } |
| 552 | 544 |
| 553 error::Error GLES2DecoderImpl::HandleDeleteTextures( | 545 error::Error GLES2DecoderImpl::HandleDeleteTextures( |
| 554 uint32 immediate_data_size, const gles2::DeleteTextures& c) { | 546 uint32 immediate_data_size, const gles2::DeleteTextures& c) { |
| 555 GLsizei n = static_cast<GLsizei>(c.n); | 547 GLsizei n = static_cast<GLsizei>(c.n); |
| 556 uint32 data_size; | 548 uint32 data_size; |
| 557 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 549 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 558 return error::kOutOfBounds; | 550 return error::kOutOfBounds; |
| 559 } | 551 } |
| 560 const GLuint* textures = GetSharedMemoryAs<const GLuint*>( | 552 const GLuint* textures = GetSharedMemoryAs<const GLuint*>( |
| 561 c.textures_shm_id, c.textures_shm_offset, data_size); | 553 c.textures_shm_id, c.textures_shm_offset, data_size); |
| 562 if (n < 0) { | 554 if (n < 0) { |
| 563 SetGLError(GL_INVALID_VALUE); | 555 SetGLError(GL_INVALID_VALUE); |
| 564 return error::kNoError; | 556 return error::kNoError; |
| 565 } | 557 } |
| 566 if (textures == NULL) { | 558 if (textures == NULL) { |
| 567 return error::kOutOfBounds; | 559 return error::kOutOfBounds; |
| 568 } | 560 } |
| 569 DeleteGLObjects<GLDeleteTexturesHelper>(n, textures); | 561 DeleteTexturesHelper(n, textures); |
| 570 return error::kNoError; | 562 return error::kNoError; |
| 571 } | 563 } |
| 572 | 564 |
| 573 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate( | 565 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate( |
| 574 uint32 immediate_data_size, const gles2::DeleteTexturesImmediate& c) { | 566 uint32 immediate_data_size, const gles2::DeleteTexturesImmediate& c) { |
| 575 GLsizei n = static_cast<GLsizei>(c.n); | 567 GLsizei n = static_cast<GLsizei>(c.n); |
| 576 uint32 data_size; | 568 uint32 data_size; |
| 577 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 569 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 578 return error::kOutOfBounds; | 570 return error::kOutOfBounds; |
| 579 } | 571 } |
| 580 const GLuint* textures = GetImmediateDataAs<const GLuint*>( | 572 const GLuint* textures = GetImmediateDataAs<const GLuint*>( |
| 581 c, data_size, immediate_data_size); | 573 c, data_size, immediate_data_size); |
| 582 if (n < 0) { | 574 if (n < 0) { |
| 583 SetGLError(GL_INVALID_VALUE); | 575 SetGLError(GL_INVALID_VALUE); |
| 584 return error::kNoError; | 576 return error::kNoError; |
| 585 } | 577 } |
| 586 if (textures == NULL) { | 578 if (textures == NULL) { |
| 587 return error::kOutOfBounds; | 579 return error::kOutOfBounds; |
| 588 } | 580 } |
| 589 DeleteGLObjects<GLDeleteTexturesHelper>(n, textures); | 581 DeleteTexturesHelper(n, textures); |
| 590 return error::kNoError; | 582 return error::kNoError; |
| 591 } | 583 } |
| 592 | 584 |
| 593 error::Error GLES2DecoderImpl::HandleDepthFunc( | 585 error::Error GLES2DecoderImpl::HandleDepthFunc( |
| 594 uint32 immediate_data_size, const gles2::DepthFunc& c) { | 586 uint32 immediate_data_size, const gles2::DepthFunc& c) { |
| 595 GLenum func = static_cast<GLenum>(c.func); | 587 GLenum func = static_cast<GLenum>(c.func); |
| 596 if (!ValidateGLenumCmpFunction(func)) { | 588 if (!ValidateGLenumCmpFunction(func)) { |
| 597 SetGLError(GL_INVALID_ENUM); | 589 SetGLError(GL_INVALID_ENUM); |
| 598 return error::kNoError; | 590 return error::kNoError; |
| 599 } | 591 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 611 error::Error GLES2DecoderImpl::HandleDepthRangef( | 603 error::Error GLES2DecoderImpl::HandleDepthRangef( |
| 612 uint32 immediate_data_size, const gles2::DepthRangef& c) { | 604 uint32 immediate_data_size, const gles2::DepthRangef& c) { |
| 613 GLclampf zNear = static_cast<GLclampf>(c.zNear); | 605 GLclampf zNear = static_cast<GLclampf>(c.zNear); |
| 614 GLclampf zFar = static_cast<GLclampf>(c.zFar); | 606 GLclampf zFar = static_cast<GLclampf>(c.zFar); |
| 615 glDepthRange(zNear, zFar); | 607 glDepthRange(zNear, zFar); |
| 616 return error::kNoError; | 608 return error::kNoError; |
| 617 } | 609 } |
| 618 | 610 |
| 619 error::Error GLES2DecoderImpl::HandleDetachShader( | 611 error::Error GLES2DecoderImpl::HandleDetachShader( |
| 620 uint32 immediate_data_size, const gles2::DetachShader& c) { | 612 uint32 immediate_data_size, const gles2::DetachShader& c) { |
| 621 GLuint program; | 613 GLuint program = c.program; |
| 622 if (!id_manager()->GetServiceId(c.program, &program)) { | 614 GLuint shader = c.shader; |
| 623 SetGLError(GL_INVALID_VALUE); | 615 DoDetachShader(program, shader); |
| 624 return error::kNoError; | |
| 625 } | |
| 626 GLuint shader; | |
| 627 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 628 SetGLError(GL_INVALID_VALUE); | |
| 629 return error::kNoError; | |
| 630 } | |
| 631 glDetachShader(program, shader); | |
| 632 return error::kNoError; | 616 return error::kNoError; |
| 633 } | 617 } |
| 634 | 618 |
| 635 error::Error GLES2DecoderImpl::HandleDisable( | 619 error::Error GLES2DecoderImpl::HandleDisable( |
| 636 uint32 immediate_data_size, const gles2::Disable& c) { | 620 uint32 immediate_data_size, const gles2::Disable& c) { |
| 637 GLenum cap = static_cast<GLenum>(c.cap); | 621 GLenum cap = static_cast<GLenum>(c.cap); |
| 638 if (!ValidateGLenumCapability(cap)) { | 622 if (!ValidateGLenumCapability(cap)) { |
| 639 SetGLError(GL_INVALID_ENUM); | 623 SetGLError(GL_INVALID_ENUM); |
| 640 return error::kNoError; | 624 return error::kNoError; |
| 641 } | 625 } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 uint32 immediate_data_size, const gles2::Flush& c) { | 679 uint32 immediate_data_size, const gles2::Flush& c) { |
| 696 glFlush(); | 680 glFlush(); |
| 697 return error::kNoError; | 681 return error::kNoError; |
| 698 } | 682 } |
| 699 | 683 |
| 700 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( | 684 error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer( |
| 701 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { | 685 uint32 immediate_data_size, const gles2::FramebufferRenderbuffer& c) { |
| 702 GLenum target = static_cast<GLenum>(c.target); | 686 GLenum target = static_cast<GLenum>(c.target); |
| 703 GLenum attachment = static_cast<GLenum>(c.attachment); | 687 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 704 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); | 688 GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget); |
| 705 GLuint renderbuffer; | 689 GLuint renderbuffer = c.renderbuffer; |
| 706 if (!id_manager()->GetServiceId(c.renderbuffer, &renderbuffer)) { | |
| 707 SetGLError(GL_INVALID_VALUE); | |
| 708 return error::kNoError; | |
| 709 } | |
| 710 if (!ValidateGLenumFrameBufferTarget(target)) { | 690 if (!ValidateGLenumFrameBufferTarget(target)) { |
| 711 SetGLError(GL_INVALID_ENUM); | 691 SetGLError(GL_INVALID_ENUM); |
| 712 return error::kNoError; | 692 return error::kNoError; |
| 713 } | 693 } |
| 714 if (!ValidateGLenumAttachment(attachment)) { | 694 if (!ValidateGLenumAttachment(attachment)) { |
| 715 SetGLError(GL_INVALID_ENUM); | 695 SetGLError(GL_INVALID_ENUM); |
| 716 return error::kNoError; | 696 return error::kNoError; |
| 717 } | 697 } |
| 718 if (!ValidateGLenumRenderBufferTarget(renderbuffertarget)) { | 698 if (!ValidateGLenumRenderBufferTarget(renderbuffertarget)) { |
| 719 SetGLError(GL_INVALID_ENUM); | 699 SetGLError(GL_INVALID_ENUM); |
| 720 return error::kNoError; | 700 return error::kNoError; |
| 721 } | 701 } |
| 722 DoFramebufferRenderbuffer( | 702 DoFramebufferRenderbuffer( |
| 723 target, attachment, renderbuffertarget, renderbuffer); | 703 target, attachment, renderbuffertarget, renderbuffer); |
| 724 return error::kNoError; | 704 return error::kNoError; |
| 725 } | 705 } |
| 726 | 706 |
| 727 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( | 707 error::Error GLES2DecoderImpl::HandleFramebufferTexture2D( |
| 728 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { | 708 uint32 immediate_data_size, const gles2::FramebufferTexture2D& c) { |
| 729 GLenum target = static_cast<GLenum>(c.target); | 709 GLenum target = static_cast<GLenum>(c.target); |
| 730 GLenum attachment = static_cast<GLenum>(c.attachment); | 710 GLenum attachment = static_cast<GLenum>(c.attachment); |
| 731 GLenum textarget = static_cast<GLenum>(c.textarget); | 711 GLenum textarget = static_cast<GLenum>(c.textarget); |
| 732 GLuint texture; | 712 GLuint texture = c.texture; |
| 733 if (!id_manager()->GetServiceId(c.texture, &texture)) { | |
| 734 SetGLError(GL_INVALID_VALUE); | |
| 735 return error::kNoError; | |
| 736 } | |
| 737 GLint level = static_cast<GLint>(c.level); | 713 GLint level = static_cast<GLint>(c.level); |
| 738 if (!ValidateGLenumFrameBufferTarget(target)) { | 714 if (!ValidateGLenumFrameBufferTarget(target)) { |
| 739 SetGLError(GL_INVALID_ENUM); | 715 SetGLError(GL_INVALID_ENUM); |
| 740 return error::kNoError; | 716 return error::kNoError; |
| 741 } | 717 } |
| 742 if (!ValidateGLenumAttachment(attachment)) { | 718 if (!ValidateGLenumAttachment(attachment)) { |
| 743 SetGLError(GL_INVALID_ENUM); | 719 SetGLError(GL_INVALID_ENUM); |
| 744 return error::kNoError; | 720 return error::kNoError; |
| 745 } | 721 } |
| 746 if (!ValidateGLenumTextureTarget(textarget)) { | 722 if (!ValidateGLenumTextureTarget(textarget)) { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 771 } | 747 } |
| 772 GLuint* buffers = GetSharedMemoryAs<GLuint*>( | 748 GLuint* buffers = GetSharedMemoryAs<GLuint*>( |
| 773 c.buffers_shm_id, c.buffers_shm_offset, data_size); | 749 c.buffers_shm_id, c.buffers_shm_offset, data_size); |
| 774 if (n < 0) { | 750 if (n < 0) { |
| 775 SetGLError(GL_INVALID_VALUE); | 751 SetGLError(GL_INVALID_VALUE); |
| 776 return error::kNoError; | 752 return error::kNoError; |
| 777 } | 753 } |
| 778 if (buffers == NULL) { | 754 if (buffers == NULL) { |
| 779 return error::kOutOfBounds; | 755 return error::kOutOfBounds; |
| 780 } | 756 } |
| 781 if (!GenGLObjects<GLGenBuffersHelper>(n, buffers)) { | 757 if (!GenBuffersHelper(n, buffers)) { |
| 782 return error::kInvalidArguments; | 758 return error::kInvalidArguments; |
| 783 } | 759 } |
| 784 return error::kNoError; | 760 return error::kNoError; |
| 785 } | 761 } |
| 786 | 762 |
| 787 error::Error GLES2DecoderImpl::HandleGenBuffersImmediate( | 763 error::Error GLES2DecoderImpl::HandleGenBuffersImmediate( |
| 788 uint32 immediate_data_size, const gles2::GenBuffersImmediate& c) { | 764 uint32 immediate_data_size, const gles2::GenBuffersImmediate& c) { |
| 789 GLsizei n = static_cast<GLsizei>(c.n); | 765 GLsizei n = static_cast<GLsizei>(c.n); |
| 790 uint32 data_size; | 766 uint32 data_size; |
| 791 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 767 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 792 return error::kOutOfBounds; | 768 return error::kOutOfBounds; |
| 793 } | 769 } |
| 794 GLuint* buffers = GetImmediateDataAs<GLuint*>( | 770 GLuint* buffers = GetImmediateDataAs<GLuint*>( |
| 795 c, data_size, immediate_data_size); | 771 c, data_size, immediate_data_size); |
| 796 if (n < 0) { | 772 if (n < 0) { |
| 797 SetGLError(GL_INVALID_VALUE); | 773 SetGLError(GL_INVALID_VALUE); |
| 798 return error::kNoError; | 774 return error::kNoError; |
| 799 } | 775 } |
| 800 if (buffers == NULL) { | 776 if (buffers == NULL) { |
| 801 return error::kOutOfBounds; | 777 return error::kOutOfBounds; |
| 802 } | 778 } |
| 803 if (!GenGLObjects<GLGenBuffersHelper>(n, buffers)) { | 779 if (!GenBuffersHelper(n, buffers)) { |
| 804 return error::kInvalidArguments; | 780 return error::kInvalidArguments; |
| 805 } | 781 } |
| 806 return error::kNoError; | 782 return error::kNoError; |
| 807 } | 783 } |
| 808 | 784 |
| 809 error::Error GLES2DecoderImpl::HandleGenerateMipmap( | 785 error::Error GLES2DecoderImpl::HandleGenerateMipmap( |
| 810 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { | 786 uint32 immediate_data_size, const gles2::GenerateMipmap& c) { |
| 811 GLenum target = static_cast<GLenum>(c.target); | 787 GLenum target = static_cast<GLenum>(c.target); |
| 812 if (!ValidateGLenumTextureBindTarget(target)) { | 788 if (!ValidateGLenumTextureBindTarget(target)) { |
| 813 SetGLError(GL_INVALID_ENUM); | 789 SetGLError(GL_INVALID_ENUM); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 826 } | 802 } |
| 827 GLuint* framebuffers = GetSharedMemoryAs<GLuint*>( | 803 GLuint* framebuffers = GetSharedMemoryAs<GLuint*>( |
| 828 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); | 804 c.framebuffers_shm_id, c.framebuffers_shm_offset, data_size); |
| 829 if (n < 0) { | 805 if (n < 0) { |
| 830 SetGLError(GL_INVALID_VALUE); | 806 SetGLError(GL_INVALID_VALUE); |
| 831 return error::kNoError; | 807 return error::kNoError; |
| 832 } | 808 } |
| 833 if (framebuffers == NULL) { | 809 if (framebuffers == NULL) { |
| 834 return error::kOutOfBounds; | 810 return error::kOutOfBounds; |
| 835 } | 811 } |
| 836 if (!GenGLObjects<GLGenFramebuffersHelper>(n, framebuffers)) { | 812 if (!GenFramebuffersHelper(n, framebuffers)) { |
| 837 return error::kInvalidArguments; | 813 return error::kInvalidArguments; |
| 838 } | 814 } |
| 839 return error::kNoError; | 815 return error::kNoError; |
| 840 } | 816 } |
| 841 | 817 |
| 842 error::Error GLES2DecoderImpl::HandleGenFramebuffersImmediate( | 818 error::Error GLES2DecoderImpl::HandleGenFramebuffersImmediate( |
| 843 uint32 immediate_data_size, const gles2::GenFramebuffersImmediate& c) { | 819 uint32 immediate_data_size, const gles2::GenFramebuffersImmediate& c) { |
| 844 GLsizei n = static_cast<GLsizei>(c.n); | 820 GLsizei n = static_cast<GLsizei>(c.n); |
| 845 uint32 data_size; | 821 uint32 data_size; |
| 846 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 822 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 847 return error::kOutOfBounds; | 823 return error::kOutOfBounds; |
| 848 } | 824 } |
| 849 GLuint* framebuffers = GetImmediateDataAs<GLuint*>( | 825 GLuint* framebuffers = GetImmediateDataAs<GLuint*>( |
| 850 c, data_size, immediate_data_size); | 826 c, data_size, immediate_data_size); |
| 851 if (n < 0) { | 827 if (n < 0) { |
| 852 SetGLError(GL_INVALID_VALUE); | 828 SetGLError(GL_INVALID_VALUE); |
| 853 return error::kNoError; | 829 return error::kNoError; |
| 854 } | 830 } |
| 855 if (framebuffers == NULL) { | 831 if (framebuffers == NULL) { |
| 856 return error::kOutOfBounds; | 832 return error::kOutOfBounds; |
| 857 } | 833 } |
| 858 if (!GenGLObjects<GLGenFramebuffersHelper>(n, framebuffers)) { | 834 if (!GenFramebuffersHelper(n, framebuffers)) { |
| 859 return error::kInvalidArguments; | 835 return error::kInvalidArguments; |
| 860 } | 836 } |
| 861 return error::kNoError; | 837 return error::kNoError; |
| 862 } | 838 } |
| 863 | 839 |
| 864 error::Error GLES2DecoderImpl::HandleGenRenderbuffers( | 840 error::Error GLES2DecoderImpl::HandleGenRenderbuffers( |
| 865 uint32 immediate_data_size, const gles2::GenRenderbuffers& c) { | 841 uint32 immediate_data_size, const gles2::GenRenderbuffers& c) { |
| 866 GLsizei n = static_cast<GLsizei>(c.n); | 842 GLsizei n = static_cast<GLsizei>(c.n); |
| 867 uint32 data_size; | 843 uint32 data_size; |
| 868 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 844 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 869 return error::kOutOfBounds; | 845 return error::kOutOfBounds; |
| 870 } | 846 } |
| 871 GLuint* renderbuffers = GetSharedMemoryAs<GLuint*>( | 847 GLuint* renderbuffers = GetSharedMemoryAs<GLuint*>( |
| 872 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); | 848 c.renderbuffers_shm_id, c.renderbuffers_shm_offset, data_size); |
| 873 if (n < 0) { | 849 if (n < 0) { |
| 874 SetGLError(GL_INVALID_VALUE); | 850 SetGLError(GL_INVALID_VALUE); |
| 875 return error::kNoError; | 851 return error::kNoError; |
| 876 } | 852 } |
| 877 if (renderbuffers == NULL) { | 853 if (renderbuffers == NULL) { |
| 878 return error::kOutOfBounds; | 854 return error::kOutOfBounds; |
| 879 } | 855 } |
| 880 if (!GenGLObjects<GLGenRenderbuffersHelper>(n, renderbuffers)) { | 856 if (!GenRenderbuffersHelper(n, renderbuffers)) { |
| 881 return error::kInvalidArguments; | 857 return error::kInvalidArguments; |
| 882 } | 858 } |
| 883 return error::kNoError; | 859 return error::kNoError; |
| 884 } | 860 } |
| 885 | 861 |
| 886 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate( | 862 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate( |
| 887 uint32 immediate_data_size, const gles2::GenRenderbuffersImmediate& c) { | 863 uint32 immediate_data_size, const gles2::GenRenderbuffersImmediate& c) { |
| 888 GLsizei n = static_cast<GLsizei>(c.n); | 864 GLsizei n = static_cast<GLsizei>(c.n); |
| 889 uint32 data_size; | 865 uint32 data_size; |
| 890 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 866 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 891 return error::kOutOfBounds; | 867 return error::kOutOfBounds; |
| 892 } | 868 } |
| 893 GLuint* renderbuffers = GetImmediateDataAs<GLuint*>( | 869 GLuint* renderbuffers = GetImmediateDataAs<GLuint*>( |
| 894 c, data_size, immediate_data_size); | 870 c, data_size, immediate_data_size); |
| 895 if (n < 0) { | 871 if (n < 0) { |
| 896 SetGLError(GL_INVALID_VALUE); | 872 SetGLError(GL_INVALID_VALUE); |
| 897 return error::kNoError; | 873 return error::kNoError; |
| 898 } | 874 } |
| 899 if (renderbuffers == NULL) { | 875 if (renderbuffers == NULL) { |
| 900 return error::kOutOfBounds; | 876 return error::kOutOfBounds; |
| 901 } | 877 } |
| 902 if (!GenGLObjects<GLGenRenderbuffersHelper>(n, renderbuffers)) { | 878 if (!GenRenderbuffersHelper(n, renderbuffers)) { |
| 903 return error::kInvalidArguments; | 879 return error::kInvalidArguments; |
| 904 } | 880 } |
| 905 return error::kNoError; | 881 return error::kNoError; |
| 906 } | 882 } |
| 907 | 883 |
| 908 error::Error GLES2DecoderImpl::HandleGenTextures( | 884 error::Error GLES2DecoderImpl::HandleGenTextures( |
| 909 uint32 immediate_data_size, const gles2::GenTextures& c) { | 885 uint32 immediate_data_size, const gles2::GenTextures& c) { |
| 910 GLsizei n = static_cast<GLsizei>(c.n); | 886 GLsizei n = static_cast<GLsizei>(c.n); |
| 911 uint32 data_size; | 887 uint32 data_size; |
| 912 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 888 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 913 return error::kOutOfBounds; | 889 return error::kOutOfBounds; |
| 914 } | 890 } |
| 915 GLuint* textures = GetSharedMemoryAs<GLuint*>( | 891 GLuint* textures = GetSharedMemoryAs<GLuint*>( |
| 916 c.textures_shm_id, c.textures_shm_offset, data_size); | 892 c.textures_shm_id, c.textures_shm_offset, data_size); |
| 917 if (n < 0) { | 893 if (n < 0) { |
| 918 SetGLError(GL_INVALID_VALUE); | 894 SetGLError(GL_INVALID_VALUE); |
| 919 return error::kNoError; | 895 return error::kNoError; |
| 920 } | 896 } |
| 921 if (textures == NULL) { | 897 if (textures == NULL) { |
| 922 return error::kOutOfBounds; | 898 return error::kOutOfBounds; |
| 923 } | 899 } |
| 924 if (!GenGLObjects<GLGenTexturesHelper>(n, textures)) { | 900 if (!GenTexturesHelper(n, textures)) { |
| 925 return error::kInvalidArguments; | 901 return error::kInvalidArguments; |
| 926 } | 902 } |
| 927 return error::kNoError; | 903 return error::kNoError; |
| 928 } | 904 } |
| 929 | 905 |
| 930 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( | 906 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( |
| 931 uint32 immediate_data_size, const gles2::GenTexturesImmediate& c) { | 907 uint32 immediate_data_size, const gles2::GenTexturesImmediate& c) { |
| 932 GLsizei n = static_cast<GLsizei>(c.n); | 908 GLsizei n = static_cast<GLsizei>(c.n); |
| 933 uint32 data_size; | 909 uint32 data_size; |
| 934 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 910 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 935 return error::kOutOfBounds; | 911 return error::kOutOfBounds; |
| 936 } | 912 } |
| 937 GLuint* textures = GetImmediateDataAs<GLuint*>( | 913 GLuint* textures = GetImmediateDataAs<GLuint*>( |
| 938 c, data_size, immediate_data_size); | 914 c, data_size, immediate_data_size); |
| 939 if (n < 0) { | 915 if (n < 0) { |
| 940 SetGLError(GL_INVALID_VALUE); | 916 SetGLError(GL_INVALID_VALUE); |
| 941 return error::kNoError; | 917 return error::kNoError; |
| 942 } | 918 } |
| 943 if (textures == NULL) { | 919 if (textures == NULL) { |
| 944 return error::kOutOfBounds; | 920 return error::kOutOfBounds; |
| 945 } | 921 } |
| 946 if (!GenGLObjects<GLGenTexturesHelper>(n, textures)) { | 922 if (!GenTexturesHelper(n, textures)) { |
| 947 return error::kInvalidArguments; | 923 return error::kInvalidArguments; |
| 948 } | 924 } |
| 949 return error::kNoError; | 925 return error::kNoError; |
| 950 } | 926 } |
| 951 | 927 |
| 952 error::Error GLES2DecoderImpl::HandleGetBooleanv( | 928 error::Error GLES2DecoderImpl::HandleGetBooleanv( |
| 953 uint32 immediate_data_size, const gles2::GetBooleanv& c) { | 929 uint32 immediate_data_size, const gles2::GetBooleanv& c) { |
| 954 GLenum pname = static_cast<GLenum>(c.pname); | 930 GLenum pname = static_cast<GLenum>(c.pname); |
| 955 typedef GetBooleanv::Result Result; | 931 typedef GetBooleanv::Result Result; |
| 956 GLsizei num_values = util_.GLGetNumValuesReturned(pname); | 932 GLsizei num_values = util_.GLGetNumValuesReturned(pname); |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1142 if (error == GL_NO_ERROR) { | 1118 if (error == GL_NO_ERROR) { |
| 1143 result->SetNumResults(num_values); | 1119 result->SetNumResults(num_values); |
| 1144 } else { | 1120 } else { |
| 1145 SetGLError(error); | 1121 SetGLError(error); |
| 1146 } | 1122 } |
| 1147 return error::kNoError; | 1123 return error::kNoError; |
| 1148 } | 1124 } |
| 1149 | 1125 |
| 1150 error::Error GLES2DecoderImpl::HandleGetProgramiv( | 1126 error::Error GLES2DecoderImpl::HandleGetProgramiv( |
| 1151 uint32 immediate_data_size, const gles2::GetProgramiv& c) { | 1127 uint32 immediate_data_size, const gles2::GetProgramiv& c) { |
| 1152 GLuint program; | 1128 GLuint program = c.program; |
| 1153 if (!id_manager()->GetServiceId(c.program, &program)) { | |
| 1154 SetGLError(GL_INVALID_VALUE); | |
| 1155 return error::kNoError; | |
| 1156 } | |
| 1157 GLenum pname = static_cast<GLenum>(c.pname); | 1129 GLenum pname = static_cast<GLenum>(c.pname); |
| 1158 typedef GetProgramiv::Result Result; | 1130 typedef GetProgramiv::Result Result; |
| 1159 GLsizei num_values = util_.GLGetNumValuesReturned(pname); | 1131 GLsizei num_values = util_.GLGetNumValuesReturned(pname); |
| 1160 if (num_values == 0) { | 1132 if (num_values == 0) { |
| 1161 SetGLError(GL_INVALID_ENUM); | 1133 SetGLError(GL_INVALID_ENUM); |
| 1162 return error::kNoError; | 1134 return error::kNoError; |
| 1163 } | 1135 } |
| 1164 Result* result = GetSharedMemoryAs<Result*>( | 1136 Result* result = GetSharedMemoryAs<Result*>( |
| 1165 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1137 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1166 GLint* params = result ? result->GetData() : NULL; | 1138 GLint* params = result ? result->GetData() : NULL; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1179 DoGetProgramiv(program, pname, params); | 1151 DoGetProgramiv(program, pname, params); |
| 1180 GLenum error = glGetError(); | 1152 GLenum error = glGetError(); |
| 1181 if (error == GL_NO_ERROR) { | 1153 if (error == GL_NO_ERROR) { |
| 1182 result->SetNumResults(num_values); | 1154 result->SetNumResults(num_values); |
| 1183 } else { | 1155 } else { |
| 1184 SetGLError(error); | 1156 SetGLError(error); |
| 1185 } | 1157 } |
| 1186 return error::kNoError; | 1158 return error::kNoError; |
| 1187 } | 1159 } |
| 1188 | 1160 |
| 1189 error::Error GLES2DecoderImpl::HandleGetProgramInfoLog( | |
| 1190 uint32 immediate_data_size, const gles2::GetProgramInfoLog& c) { | |
| 1191 GLuint program; | |
| 1192 if (!id_manager()->GetServiceId(c.program, &program)) { | |
| 1193 SetGLError(GL_INVALID_VALUE); | |
| 1194 return error::kNoError; | |
| 1195 } | |
| 1196 uint32 bucket_id = static_cast<uint32>(c.bucket_id); | |
| 1197 GLint len = 0; | |
| 1198 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &len); | |
| 1199 Bucket* bucket = CreateBucket(bucket_id); | |
| 1200 bucket->SetSize(len + 1); | |
| 1201 glGetProgramInfoLog( | |
| 1202 program, len + 1, &len, bucket->GetDataAs<GLchar*>(0, len + 1)); | |
| 1203 return error::kNoError; | |
| 1204 } | |
| 1205 | |
| 1206 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( | 1161 error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( |
| 1207 uint32 immediate_data_size, const gles2::GetRenderbufferParameteriv& c) { | 1162 uint32 immediate_data_size, const gles2::GetRenderbufferParameteriv& c) { |
| 1208 GLenum target = static_cast<GLenum>(c.target); | 1163 GLenum target = static_cast<GLenum>(c.target); |
| 1209 GLenum pname = static_cast<GLenum>(c.pname); | 1164 GLenum pname = static_cast<GLenum>(c.pname); |
| 1210 typedef GetRenderbufferParameteriv::Result Result; | 1165 typedef GetRenderbufferParameteriv::Result Result; |
| 1211 GLsizei num_values = util_.GLGetNumValuesReturned(pname); | 1166 GLsizei num_values = util_.GLGetNumValuesReturned(pname); |
| 1212 if (num_values == 0) { | 1167 if (num_values == 0) { |
| 1213 SetGLError(GL_INVALID_ENUM); | 1168 SetGLError(GL_INVALID_ENUM); |
| 1214 return error::kNoError; | 1169 return error::kNoError; |
| 1215 } | 1170 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1237 if (error == GL_NO_ERROR) { | 1192 if (error == GL_NO_ERROR) { |
| 1238 result->SetNumResults(num_values); | 1193 result->SetNumResults(num_values); |
| 1239 } else { | 1194 } else { |
| 1240 SetGLError(error); | 1195 SetGLError(error); |
| 1241 } | 1196 } |
| 1242 return error::kNoError; | 1197 return error::kNoError; |
| 1243 } | 1198 } |
| 1244 | 1199 |
| 1245 error::Error GLES2DecoderImpl::HandleGetShaderiv( | 1200 error::Error GLES2DecoderImpl::HandleGetShaderiv( |
| 1246 uint32 immediate_data_size, const gles2::GetShaderiv& c) { | 1201 uint32 immediate_data_size, const gles2::GetShaderiv& c) { |
| 1247 GLuint shader; | 1202 GLuint shader = c.shader; |
| 1248 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 1249 SetGLError(GL_INVALID_VALUE); | |
| 1250 return error::kNoError; | |
| 1251 } | |
| 1252 GLenum pname = static_cast<GLenum>(c.pname); | 1203 GLenum pname = static_cast<GLenum>(c.pname); |
| 1253 typedef GetShaderiv::Result Result; | 1204 typedef GetShaderiv::Result Result; |
| 1254 GLsizei num_values = util_.GLGetNumValuesReturned(pname); | 1205 GLsizei num_values = util_.GLGetNumValuesReturned(pname); |
| 1255 if (num_values == 0) { | 1206 if (num_values == 0) { |
| 1256 SetGLError(GL_INVALID_ENUM); | 1207 SetGLError(GL_INVALID_ENUM); |
| 1257 return error::kNoError; | 1208 return error::kNoError; |
| 1258 } | 1209 } |
| 1259 Result* result = GetSharedMemoryAs<Result*>( | 1210 Result* result = GetSharedMemoryAs<Result*>( |
| 1260 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1211 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1261 GLint* params = result ? result->GetData() : NULL; | 1212 GLint* params = result ? result->GetData() : NULL; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1274 DoGetShaderiv(shader, pname, params); | 1225 DoGetShaderiv(shader, pname, params); |
| 1275 GLenum error = glGetError(); | 1226 GLenum error = glGetError(); |
| 1276 if (error == GL_NO_ERROR) { | 1227 if (error == GL_NO_ERROR) { |
| 1277 result->SetNumResults(num_values); | 1228 result->SetNumResults(num_values); |
| 1278 } else { | 1229 } else { |
| 1279 SetGLError(error); | 1230 SetGLError(error); |
| 1280 } | 1231 } |
| 1281 return error::kNoError; | 1232 return error::kNoError; |
| 1282 } | 1233 } |
| 1283 | 1234 |
| 1284 error::Error GLES2DecoderImpl::HandleGetShaderInfoLog( | |
| 1285 uint32 immediate_data_size, const gles2::GetShaderInfoLog& c) { | |
| 1286 GLuint shader; | |
| 1287 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 1288 SetGLError(GL_INVALID_VALUE); | |
| 1289 return error::kNoError; | |
| 1290 } | |
| 1291 uint32 bucket_id = static_cast<uint32>(c.bucket_id); | |
| 1292 GLint len = 0; | |
| 1293 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &len); | |
| 1294 Bucket* bucket = CreateBucket(bucket_id); | |
| 1295 bucket->SetSize(len + 1); | |
| 1296 glGetShaderInfoLog( | |
| 1297 shader, len + 1, &len, bucket->GetDataAs<GLchar*>(0, len + 1)); | |
| 1298 return error::kNoError; | |
| 1299 } | |
| 1300 | |
| 1301 error::Error GLES2DecoderImpl::HandleGetShaderSource( | |
| 1302 uint32 immediate_data_size, const gles2::GetShaderSource& c) { | |
| 1303 GLuint shader; | |
| 1304 if (!id_manager()->GetServiceId(c.shader, &shader)) { | |
| 1305 SetGLError(GL_INVALID_VALUE); | |
| 1306 return error::kNoError; | |
| 1307 } | |
| 1308 uint32 bucket_id = static_cast<uint32>(c.bucket_id); | |
| 1309 GLint len = 0; | |
| 1310 DoGetShaderiv(shader, GL_SHADER_SOURCE_LENGTH, &len); | |
| 1311 Bucket* bucket = CreateBucket(bucket_id); | |
| 1312 bucket->SetSize(len + 1); | |
| 1313 DoGetShaderSource( | |
| 1314 shader, len + 1, &len, bucket->GetDataAs<GLchar*>(0, len + 1)); | |
| 1315 return error::kNoError; | |
| 1316 } | |
| 1317 | |
| 1318 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( | 1235 error::Error GLES2DecoderImpl::HandleGetTexParameterfv( |
| 1319 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { | 1236 uint32 immediate_data_size, const gles2::GetTexParameterfv& c) { |
| 1320 GLenum target = static_cast<GLenum>(c.target); | 1237 GLenum target = static_cast<GLenum>(c.target); |
| 1321 GLenum pname = static_cast<GLenum>(c.pname); | 1238 GLenum pname = static_cast<GLenum>(c.pname); |
| 1322 typedef GetTexParameterfv::Result Result; | 1239 typedef GetTexParameterfv::Result Result; |
| 1323 GLsizei num_values = util_.GLGetNumValuesReturned(pname); | 1240 GLsizei num_values = util_.GLGetNumValuesReturned(pname); |
| 1324 if (num_values == 0) { | 1241 if (num_values == 0) { |
| 1325 SetGLError(GL_INVALID_ENUM); | 1242 SetGLError(GL_INVALID_ENUM); |
| 1326 return error::kNoError; | 1243 return error::kNoError; |
| 1327 } | 1244 } |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1474 if (!ValidateGLenumHintMode(mode)) { | 1391 if (!ValidateGLenumHintMode(mode)) { |
| 1475 SetGLError(GL_INVALID_ENUM); | 1392 SetGLError(GL_INVALID_ENUM); |
| 1476 return error::kNoError; | 1393 return error::kNoError; |
| 1477 } | 1394 } |
| 1478 glHint(target, mode); | 1395 glHint(target, mode); |
| 1479 return error::kNoError; | 1396 return error::kNoError; |
| 1480 } | 1397 } |
| 1481 | 1398 |
| 1482 error::Error GLES2DecoderImpl::HandleIsBuffer( | 1399 error::Error GLES2DecoderImpl::HandleIsBuffer( |
| 1483 uint32 immediate_data_size, const gles2::IsBuffer& c) { | 1400 uint32 immediate_data_size, const gles2::IsBuffer& c) { |
| 1484 GLuint buffer; | 1401 GLuint buffer = c.buffer; |
| 1485 if (!id_manager()->GetServiceId(c.buffer, &buffer)) { | |
| 1486 SetGLError(GL_INVALID_VALUE); | |
| 1487 return error::kNoError; | |
| 1488 } | |
| 1489 typedef IsBuffer::Result Result; | 1402 typedef IsBuffer::Result Result; |
| 1490 Result* result_dst = GetSharedMemoryAs<Result*>( | 1403 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1491 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1404 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1492 if (!result_dst) { | 1405 if (!result_dst) { |
| 1493 return error::kOutOfBounds; | 1406 return error::kOutOfBounds; |
| 1494 } | 1407 } |
| 1495 *result_dst = DoIsBuffer(buffer); | 1408 *result_dst = DoIsBuffer(buffer); |
| 1496 return error::kNoError; | 1409 return error::kNoError; |
| 1497 } | 1410 } |
| 1498 | 1411 |
| 1499 error::Error GLES2DecoderImpl::HandleIsEnabled( | 1412 error::Error GLES2DecoderImpl::HandleIsEnabled( |
| 1500 uint32 immediate_data_size, const gles2::IsEnabled& c) { | 1413 uint32 immediate_data_size, const gles2::IsEnabled& c) { |
| 1501 GLenum cap = static_cast<GLenum>(c.cap); | 1414 GLenum cap = static_cast<GLenum>(c.cap); |
| 1502 typedef IsEnabled::Result Result; | 1415 typedef IsEnabled::Result Result; |
| 1503 Result* result_dst = GetSharedMemoryAs<Result*>( | 1416 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1504 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1417 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1505 if (!result_dst) { | 1418 if (!result_dst) { |
| 1506 return error::kOutOfBounds; | 1419 return error::kOutOfBounds; |
| 1507 } | 1420 } |
| 1508 if (!ValidateGLenumCapability(cap)) { | 1421 if (!ValidateGLenumCapability(cap)) { |
| 1509 SetGLError(GL_INVALID_ENUM); | 1422 SetGLError(GL_INVALID_ENUM); |
| 1510 return error::kNoError; | 1423 return error::kNoError; |
| 1511 } | 1424 } |
| 1512 *result_dst = glIsEnabled(cap); | 1425 *result_dst = glIsEnabled(cap); |
| 1513 return error::kNoError; | 1426 return error::kNoError; |
| 1514 } | 1427 } |
| 1515 | 1428 |
| 1516 error::Error GLES2DecoderImpl::HandleIsFramebuffer( | 1429 error::Error GLES2DecoderImpl::HandleIsFramebuffer( |
| 1517 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { | 1430 uint32 immediate_data_size, const gles2::IsFramebuffer& c) { |
| 1518 GLuint framebuffer = static_cast<GLuint>(c.framebuffer); | 1431 GLuint framebuffer = c.framebuffer; |
| 1519 typedef IsFramebuffer::Result Result; | 1432 typedef IsFramebuffer::Result Result; |
| 1520 Result* result_dst = GetSharedMemoryAs<Result*>( | 1433 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1521 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1434 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1522 if (!result_dst) { | 1435 if (!result_dst) { |
| 1523 return error::kOutOfBounds; | 1436 return error::kOutOfBounds; |
| 1524 } | 1437 } |
| 1525 *result_dst = DoIsFramebuffer(framebuffer); | 1438 *result_dst = DoIsFramebuffer(framebuffer); |
| 1526 return error::kNoError; | 1439 return error::kNoError; |
| 1527 } | 1440 } |
| 1528 | 1441 |
| 1529 error::Error GLES2DecoderImpl::HandleIsProgram( | 1442 error::Error GLES2DecoderImpl::HandleIsProgram( |
| 1530 uint32 immediate_data_size, const gles2::IsProgram& c) { | 1443 uint32 immediate_data_size, const gles2::IsProgram& c) { |
| 1531 GLuint program = static_cast<GLuint>(c.program); | 1444 GLuint program = c.program; |
| 1532 typedef IsProgram::Result Result; | 1445 typedef IsProgram::Result Result; |
| 1533 Result* result_dst = GetSharedMemoryAs<Result*>( | 1446 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1534 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1447 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1535 if (!result_dst) { | 1448 if (!result_dst) { |
| 1536 return error::kOutOfBounds; | 1449 return error::kOutOfBounds; |
| 1537 } | 1450 } |
| 1538 *result_dst = DoIsProgram(program); | 1451 *result_dst = DoIsProgram(program); |
| 1539 return error::kNoError; | 1452 return error::kNoError; |
| 1540 } | 1453 } |
| 1541 | 1454 |
| 1542 error::Error GLES2DecoderImpl::HandleIsRenderbuffer( | 1455 error::Error GLES2DecoderImpl::HandleIsRenderbuffer( |
| 1543 uint32 immediate_data_size, const gles2::IsRenderbuffer& c) { | 1456 uint32 immediate_data_size, const gles2::IsRenderbuffer& c) { |
| 1544 GLuint renderbuffer = static_cast<GLuint>(c.renderbuffer); | 1457 GLuint renderbuffer = c.renderbuffer; |
| 1545 typedef IsRenderbuffer::Result Result; | 1458 typedef IsRenderbuffer::Result Result; |
| 1546 Result* result_dst = GetSharedMemoryAs<Result*>( | 1459 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1547 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1460 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1548 if (!result_dst) { | 1461 if (!result_dst) { |
| 1549 return error::kOutOfBounds; | 1462 return error::kOutOfBounds; |
| 1550 } | 1463 } |
| 1551 *result_dst = DoIsRenderbuffer(renderbuffer); | 1464 *result_dst = DoIsRenderbuffer(renderbuffer); |
| 1552 return error::kNoError; | 1465 return error::kNoError; |
| 1553 } | 1466 } |
| 1554 | 1467 |
| 1555 error::Error GLES2DecoderImpl::HandleIsShader( | 1468 error::Error GLES2DecoderImpl::HandleIsShader( |
| 1556 uint32 immediate_data_size, const gles2::IsShader& c) { | 1469 uint32 immediate_data_size, const gles2::IsShader& c) { |
| 1557 GLuint shader = static_cast<GLuint>(c.shader); | 1470 GLuint shader = c.shader; |
| 1558 typedef IsShader::Result Result; | 1471 typedef IsShader::Result Result; |
| 1559 Result* result_dst = GetSharedMemoryAs<Result*>( | 1472 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1560 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1473 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1561 if (!result_dst) { | 1474 if (!result_dst) { |
| 1562 return error::kOutOfBounds; | 1475 return error::kOutOfBounds; |
| 1563 } | 1476 } |
| 1564 *result_dst = DoIsShader(shader); | 1477 *result_dst = DoIsShader(shader); |
| 1565 return error::kNoError; | 1478 return error::kNoError; |
| 1566 } | 1479 } |
| 1567 | 1480 |
| 1568 error::Error GLES2DecoderImpl::HandleIsTexture( | 1481 error::Error GLES2DecoderImpl::HandleIsTexture( |
| 1569 uint32 immediate_data_size, const gles2::IsTexture& c) { | 1482 uint32 immediate_data_size, const gles2::IsTexture& c) { |
| 1570 GLuint texture = static_cast<GLuint>(c.texture); | 1483 GLuint texture = c.texture; |
| 1571 typedef IsTexture::Result Result; | 1484 typedef IsTexture::Result Result; |
| 1572 Result* result_dst = GetSharedMemoryAs<Result*>( | 1485 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1573 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1486 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1574 if (!result_dst) { | 1487 if (!result_dst) { |
| 1575 return error::kOutOfBounds; | 1488 return error::kOutOfBounds; |
| 1576 } | 1489 } |
| 1577 *result_dst = DoIsTexture(texture); | 1490 *result_dst = DoIsTexture(texture); |
| 1578 return error::kNoError; | 1491 return error::kNoError; |
| 1579 } | 1492 } |
| 1580 | 1493 |
| 1581 error::Error GLES2DecoderImpl::HandleLineWidth( | 1494 error::Error GLES2DecoderImpl::HandleLineWidth( |
| 1582 uint32 immediate_data_size, const gles2::LineWidth& c) { | 1495 uint32 immediate_data_size, const gles2::LineWidth& c) { |
| 1583 GLfloat width = static_cast<GLfloat>(c.width); | 1496 GLfloat width = static_cast<GLfloat>(c.width); |
| 1584 glLineWidth(width); | 1497 glLineWidth(width); |
| 1585 return error::kNoError; | 1498 return error::kNoError; |
| 1586 } | 1499 } |
| 1587 | 1500 |
| 1588 error::Error GLES2DecoderImpl::HandleLinkProgram( | 1501 error::Error GLES2DecoderImpl::HandleLinkProgram( |
| 1589 uint32 immediate_data_size, const gles2::LinkProgram& c) { | 1502 uint32 immediate_data_size, const gles2::LinkProgram& c) { |
| 1590 GLuint program; | 1503 GLuint program = c.program; |
| 1591 if (!id_manager()->GetServiceId(c.program, &program)) { | |
| 1592 SetGLError(GL_INVALID_VALUE); | |
| 1593 return error::kNoError; | |
| 1594 } | |
| 1595 DoLinkProgram(program); | 1504 DoLinkProgram(program); |
| 1596 return error::kNoError; | 1505 return error::kNoError; |
| 1597 } | 1506 } |
| 1598 | 1507 |
| 1599 error::Error GLES2DecoderImpl::HandlePolygonOffset( | 1508 error::Error GLES2DecoderImpl::HandlePolygonOffset( |
| 1600 uint32 immediate_data_size, const gles2::PolygonOffset& c) { | 1509 uint32 immediate_data_size, const gles2::PolygonOffset& c) { |
| 1601 GLfloat factor = static_cast<GLfloat>(c.factor); | 1510 GLfloat factor = static_cast<GLfloat>(c.factor); |
| 1602 GLfloat units = static_cast<GLfloat>(c.units); | 1511 GLfloat units = static_cast<GLfloat>(c.units); |
| 1603 glPolygonOffset(factor, units); | 1512 glPolygonOffset(factor, units); |
| 1604 return error::kNoError; | 1513 return error::kNoError; |
| (...skipping 981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2586 if (value == NULL) { | 2495 if (value == NULL) { |
| 2587 return error::kOutOfBounds; | 2496 return error::kOutOfBounds; |
| 2588 } | 2497 } |
| 2589 glUniformMatrix4fv(location, count, transpose, value); | 2498 glUniformMatrix4fv(location, count, transpose, value); |
| 2590 return error::kNoError; | 2499 return error::kNoError; |
| 2591 } | 2500 } |
| 2592 | 2501 |
| 2593 error::Error GLES2DecoderImpl::HandleUseProgram( | 2502 error::Error GLES2DecoderImpl::HandleUseProgram( |
| 2594 uint32 immediate_data_size, const gles2::UseProgram& c) { | 2503 uint32 immediate_data_size, const gles2::UseProgram& c) { |
| 2595 GLuint program = c.program; | 2504 GLuint program = c.program; |
| 2596 if (program != 0 && !id_manager()->GetServiceId(program, &program)) { | |
| 2597 SetGLError(GL_INVALID_VALUE); | |
| 2598 return error::kNoError; | |
| 2599 } | |
| 2600 DoUseProgram(program); | 2505 DoUseProgram(program); |
| 2601 return error::kNoError; | 2506 return error::kNoError; |
| 2602 } | 2507 } |
| 2603 | 2508 |
| 2604 error::Error GLES2DecoderImpl::HandleValidateProgram( | 2509 error::Error GLES2DecoderImpl::HandleValidateProgram( |
| 2605 uint32 immediate_data_size, const gles2::ValidateProgram& c) { | 2510 uint32 immediate_data_size, const gles2::ValidateProgram& c) { |
| 2606 GLuint program; | 2511 GLuint program = c.program; |
| 2607 if (!id_manager()->GetServiceId(c.program, &program)) { | 2512 DoValidateProgram(program); |
| 2608 SetGLError(GL_INVALID_VALUE); | |
| 2609 return error::kNoError; | |
| 2610 } | |
| 2611 glValidateProgram(program); | |
| 2612 return error::kNoError; | 2513 return error::kNoError; |
| 2613 } | 2514 } |
| 2614 | 2515 |
| 2615 error::Error GLES2DecoderImpl::HandleVertexAttrib1f( | 2516 error::Error GLES2DecoderImpl::HandleVertexAttrib1f( |
| 2616 uint32 immediate_data_size, const gles2::VertexAttrib1f& c) { | 2517 uint32 immediate_data_size, const gles2::VertexAttrib1f& c) { |
| 2617 GLuint indx = static_cast<GLuint>(c.indx); | 2518 GLuint indx = static_cast<GLuint>(c.indx); |
| 2618 GLfloat x = static_cast<GLfloat>(c.x); | 2519 GLfloat x = static_cast<GLfloat>(c.x); |
| 2619 glVertexAttrib1f(indx, x); | 2520 glVertexAttrib1f(indx, x); |
| 2620 return error::kNoError; | 2521 return error::kNoError; |
| 2621 } | 2522 } |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2803 if (height < 0) { | 2704 if (height < 0) { |
| 2804 SetGLError(GL_INVALID_VALUE); | 2705 SetGLError(GL_INVALID_VALUE); |
| 2805 return error::kNoError; | 2706 return error::kNoError; |
| 2806 } | 2707 } |
| 2807 glViewport(x, y, width, height); | 2708 glViewport(x, y, width, height); |
| 2808 return error::kNoError; | 2709 return error::kNoError; |
| 2809 } | 2710 } |
| 2810 | 2711 |
| 2811 error::Error GLES2DecoderImpl::HandleGetMaxValueInBuffer( | 2712 error::Error GLES2DecoderImpl::HandleGetMaxValueInBuffer( |
| 2812 uint32 immediate_data_size, const gles2::GetMaxValueInBuffer& c) { | 2713 uint32 immediate_data_size, const gles2::GetMaxValueInBuffer& c) { |
| 2813 GLuint buffer_id; | 2714 GLuint buffer_id = c.buffer_id; |
| 2814 if (!id_manager()->GetServiceId(c.buffer_id, &buffer_id)) { | |
| 2815 SetGLError(GL_INVALID_VALUE); | |
| 2816 return error::kNoError; | |
| 2817 } | |
| 2818 GLsizei count = static_cast<GLsizei>(c.count); | 2715 GLsizei count = static_cast<GLsizei>(c.count); |
| 2819 GLenum type = static_cast<GLenum>(c.type); | 2716 GLenum type = static_cast<GLenum>(c.type); |
| 2820 GLuint offset = static_cast<GLuint>(c.offset); | 2717 GLuint offset = static_cast<GLuint>(c.offset); |
| 2821 typedef GetMaxValueInBuffer::Result Result; | 2718 typedef GetMaxValueInBuffer::Result Result; |
| 2822 Result* result_dst = GetSharedMemoryAs<Result*>( | 2719 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 2823 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 2720 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 2824 if (!result_dst) { | 2721 if (!result_dst) { |
| 2825 return error::kOutOfBounds; | 2722 return error::kOutOfBounds; |
| 2826 } | 2723 } |
| 2827 if (count < 0) { | 2724 if (count < 0) { |
| 2828 SetGLError(GL_INVALID_VALUE); | 2725 SetGLError(GL_INVALID_VALUE); |
| 2829 return error::kNoError; | 2726 return error::kNoError; |
| 2830 } | 2727 } |
| 2831 if (!ValidateGLenumIndexType(type)) { | 2728 if (!ValidateGLenumIndexType(type)) { |
| 2832 SetGLError(GL_INVALID_ENUM); | 2729 SetGLError(GL_INVALID_ENUM); |
| 2833 return error::kNoError; | 2730 return error::kNoError; |
| 2834 } | 2731 } |
| 2835 *result_dst = DoGetMaxValueInBuffer(buffer_id, count, type, offset); | 2732 *result_dst = DoGetMaxValueInBuffer(buffer_id, count, type, offset); |
| 2836 return error::kNoError; | 2733 return error::kNoError; |
| 2837 } | 2734 } |
| 2838 | 2735 |
| 2839 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 2736 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| 2840 | 2737 |
| OLD | NEW |