Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698