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