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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 GLenum target = static_cast<GLenum>(c.target); | 73 GLenum target = static_cast<GLenum>(c.target); |
74 GLuint renderbuffer = c.renderbuffer; | 74 GLuint renderbuffer = c.renderbuffer; |
75 if (!validators_->render_buffer_target.IsValid(target)) { | 75 if (!validators_->render_buffer_target.IsValid(target)) { |
76 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindRenderbuffer", target, "target"); | 76 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindRenderbuffer", target, "target"); |
77 return error::kNoError; | 77 return error::kNoError; |
78 } | 78 } |
79 DoBindRenderbuffer(target, renderbuffer); | 79 DoBindRenderbuffer(target, renderbuffer); |
80 return error::kNoError; | 80 return error::kNoError; |
81 } | 81 } |
82 | 82 |
| 83 error::Error GLES2DecoderImpl::HandleBindSampler(uint32_t immediate_data_size, |
| 84 const void* cmd_data) { |
| 85 if (!unsafe_es3_apis_enabled()) |
| 86 return error::kUnknownCommand; |
| 87 const gles2::cmds::BindSampler& c = |
| 88 *static_cast<const gles2::cmds::BindSampler*>(cmd_data); |
| 89 (void)c; |
| 90 GLuint unit = static_cast<GLuint>(c.unit); |
| 91 GLuint sampler = c.sampler; |
| 92 group_->GetSamplerServiceId(sampler, &sampler); |
| 93 glBindSampler(unit, sampler); |
| 94 return error::kNoError; |
| 95 } |
| 96 |
83 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size, | 97 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size, |
84 const void* cmd_data) { | 98 const void* cmd_data) { |
85 const gles2::cmds::BindTexture& c = | 99 const gles2::cmds::BindTexture& c = |
86 *static_cast<const gles2::cmds::BindTexture*>(cmd_data); | 100 *static_cast<const gles2::cmds::BindTexture*>(cmd_data); |
87 (void)c; | 101 (void)c; |
88 GLenum target = static_cast<GLenum>(c.target); | 102 GLenum target = static_cast<GLenum>(c.target); |
89 GLuint texture = c.texture; | 103 GLuint texture = c.texture; |
90 if (!validators_->texture_bind_target.IsValid(target)) { | 104 if (!validators_->texture_bind_target.IsValid(target)) { |
91 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexture", target, "target"); | 105 LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexture", target, "target"); |
92 return error::kNoError; | 106 return error::kNoError; |
93 } | 107 } |
94 DoBindTexture(target, texture); | 108 DoBindTexture(target, texture); |
95 return error::kNoError; | 109 return error::kNoError; |
96 } | 110 } |
97 | 111 |
| 112 error::Error GLES2DecoderImpl::HandleBindTransformFeedback( |
| 113 uint32_t immediate_data_size, |
| 114 const void* cmd_data) { |
| 115 if (!unsafe_es3_apis_enabled()) |
| 116 return error::kUnknownCommand; |
| 117 const gles2::cmds::BindTransformFeedback& c = |
| 118 *static_cast<const gles2::cmds::BindTransformFeedback*>(cmd_data); |
| 119 (void)c; |
| 120 GLenum target = static_cast<GLenum>(c.target); |
| 121 GLuint transformfeedback = c.transformfeedback; |
| 122 group_->GetTransformFeedbackServiceId(transformfeedback, &transformfeedback); |
| 123 glBindTransformFeedback(target, transformfeedback); |
| 124 return error::kNoError; |
| 125 } |
| 126 |
98 error::Error GLES2DecoderImpl::HandleBlendColor(uint32_t immediate_data_size, | 127 error::Error GLES2DecoderImpl::HandleBlendColor(uint32_t immediate_data_size, |
99 const void* cmd_data) { | 128 const void* cmd_data) { |
100 const gles2::cmds::BlendColor& c = | 129 const gles2::cmds::BlendColor& c = |
101 *static_cast<const gles2::cmds::BlendColor*>(cmd_data); | 130 *static_cast<const gles2::cmds::BlendColor*>(cmd_data); |
102 (void)c; | 131 (void)c; |
103 GLclampf red = static_cast<GLclampf>(c.red); | 132 GLclampf red = static_cast<GLclampf>(c.red); |
104 GLclampf green = static_cast<GLclampf>(c.green); | 133 GLclampf green = static_cast<GLclampf>(c.green); |
105 GLclampf blue = static_cast<GLclampf>(c.blue); | 134 GLclampf blue = static_cast<GLclampf>(c.blue); |
106 GLclampf alpha = static_cast<GLclampf>(c.alpha); | 135 GLclampf alpha = static_cast<GLclampf>(c.alpha); |
107 if (state_.blend_color_red != red || state_.blend_color_green != green || | 136 if (state_.blend_color_red != red || state_.blend_color_green != green || |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 } | 638 } |
610 const GLuint* renderbuffers = | 639 const GLuint* renderbuffers = |
611 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); | 640 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
612 if (renderbuffers == NULL) { | 641 if (renderbuffers == NULL) { |
613 return error::kOutOfBounds; | 642 return error::kOutOfBounds; |
614 } | 643 } |
615 DeleteRenderbuffersHelper(n, renderbuffers); | 644 DeleteRenderbuffersHelper(n, renderbuffers); |
616 return error::kNoError; | 645 return error::kNoError; |
617 } | 646 } |
618 | 647 |
| 648 error::Error GLES2DecoderImpl::HandleDeleteSamplersImmediate( |
| 649 uint32_t immediate_data_size, |
| 650 const void* cmd_data) { |
| 651 if (!unsafe_es3_apis_enabled()) |
| 652 return error::kUnknownCommand; |
| 653 const gles2::cmds::DeleteSamplersImmediate& c = |
| 654 *static_cast<const gles2::cmds::DeleteSamplersImmediate*>(cmd_data); |
| 655 (void)c; |
| 656 GLsizei n = static_cast<GLsizei>(c.n); |
| 657 uint32_t data_size; |
| 658 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 659 return error::kOutOfBounds; |
| 660 } |
| 661 const GLuint* samplers = |
| 662 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
| 663 if (samplers == NULL) { |
| 664 return error::kOutOfBounds; |
| 665 } |
| 666 for (GLsizei ii = 0; ii < n; ++ii) { |
| 667 GLuint service_id = 0; |
| 668 if (group_->GetSamplerServiceId(samplers[ii], &service_id)) { |
| 669 glDeleteSamplers(1, &service_id); |
| 670 group_->RemoveSamplerId(samplers[ii]); |
| 671 } |
| 672 } |
| 673 return error::kNoError; |
| 674 } |
| 675 |
619 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate( | 676 error::Error GLES2DecoderImpl::HandleDeleteTexturesImmediate( |
620 uint32_t immediate_data_size, | 677 uint32_t immediate_data_size, |
621 const void* cmd_data) { | 678 const void* cmd_data) { |
622 const gles2::cmds::DeleteTexturesImmediate& c = | 679 const gles2::cmds::DeleteTexturesImmediate& c = |
623 *static_cast<const gles2::cmds::DeleteTexturesImmediate*>(cmd_data); | 680 *static_cast<const gles2::cmds::DeleteTexturesImmediate*>(cmd_data); |
624 (void)c; | 681 (void)c; |
625 GLsizei n = static_cast<GLsizei>(c.n); | 682 GLsizei n = static_cast<GLsizei>(c.n); |
626 uint32_t data_size; | 683 uint32_t data_size; |
627 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 684 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
628 return error::kOutOfBounds; | 685 return error::kOutOfBounds; |
629 } | 686 } |
630 const GLuint* textures = | 687 const GLuint* textures = |
631 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); | 688 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
632 if (textures == NULL) { | 689 if (textures == NULL) { |
633 return error::kOutOfBounds; | 690 return error::kOutOfBounds; |
634 } | 691 } |
635 DeleteTexturesHelper(n, textures); | 692 DeleteTexturesHelper(n, textures); |
636 return error::kNoError; | 693 return error::kNoError; |
637 } | 694 } |
638 | 695 |
| 696 error::Error GLES2DecoderImpl::HandleDeleteTransformFeedbacksImmediate( |
| 697 uint32_t immediate_data_size, |
| 698 const void* cmd_data) { |
| 699 if (!unsafe_es3_apis_enabled()) |
| 700 return error::kUnknownCommand; |
| 701 const gles2::cmds::DeleteTransformFeedbacksImmediate& c = |
| 702 *static_cast<const gles2::cmds::DeleteTransformFeedbacksImmediate*>( |
| 703 cmd_data); |
| 704 (void)c; |
| 705 GLsizei n = static_cast<GLsizei>(c.n); |
| 706 uint32_t data_size; |
| 707 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 708 return error::kOutOfBounds; |
| 709 } |
| 710 const GLuint* ids = |
| 711 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
| 712 if (ids == NULL) { |
| 713 return error::kOutOfBounds; |
| 714 } |
| 715 for (GLsizei ii = 0; ii < n; ++ii) { |
| 716 GLuint service_id = 0; |
| 717 if (group_->GetTransformFeedbackServiceId(ids[ii], &service_id)) { |
| 718 glDeleteTransformFeedbacks(1, &service_id); |
| 719 group_->RemoveTransformFeedbackId(ids[ii]); |
| 720 } |
| 721 } |
| 722 return error::kNoError; |
| 723 } |
| 724 |
639 error::Error GLES2DecoderImpl::HandleDepthFunc(uint32_t immediate_data_size, | 725 error::Error GLES2DecoderImpl::HandleDepthFunc(uint32_t immediate_data_size, |
640 const void* cmd_data) { | 726 const void* cmd_data) { |
641 const gles2::cmds::DepthFunc& c = | 727 const gles2::cmds::DepthFunc& c = |
642 *static_cast<const gles2::cmds::DepthFunc*>(cmd_data); | 728 *static_cast<const gles2::cmds::DepthFunc*>(cmd_data); |
643 (void)c; | 729 (void)c; |
644 GLenum func = static_cast<GLenum>(c.func); | 730 GLenum func = static_cast<GLenum>(c.func); |
645 if (!validators_->cmp_function.IsValid(func)) { | 731 if (!validators_->cmp_function.IsValid(func)) { |
646 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDepthFunc", func, "func"); | 732 LOCAL_SET_GL_ERROR_INVALID_ENUM("glDepthFunc", func, "func"); |
647 return error::kNoError; | 733 return error::kNoError; |
648 } | 734 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); | 1013 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); |
928 if (renderbuffers == NULL) { | 1014 if (renderbuffers == NULL) { |
929 return error::kOutOfBounds; | 1015 return error::kOutOfBounds; |
930 } | 1016 } |
931 if (!GenRenderbuffersHelper(n, renderbuffers)) { | 1017 if (!GenRenderbuffersHelper(n, renderbuffers)) { |
932 return error::kInvalidArguments; | 1018 return error::kInvalidArguments; |
933 } | 1019 } |
934 return error::kNoError; | 1020 return error::kNoError; |
935 } | 1021 } |
936 | 1022 |
| 1023 error::Error GLES2DecoderImpl::HandleGenSamplersImmediate( |
| 1024 uint32_t immediate_data_size, |
| 1025 const void* cmd_data) { |
| 1026 if (!unsafe_es3_apis_enabled()) |
| 1027 return error::kUnknownCommand; |
| 1028 const gles2::cmds::GenSamplersImmediate& c = |
| 1029 *static_cast<const gles2::cmds::GenSamplersImmediate*>(cmd_data); |
| 1030 (void)c; |
| 1031 GLsizei n = static_cast<GLsizei>(c.n); |
| 1032 uint32_t data_size; |
| 1033 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 1034 return error::kOutOfBounds; |
| 1035 } |
| 1036 GLuint* samplers = |
| 1037 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); |
| 1038 if (samplers == NULL) { |
| 1039 return error::kOutOfBounds; |
| 1040 } |
| 1041 for (GLsizei ii = 0; ii < n; ++ii) { |
| 1042 if (group_->GetSamplerServiceId(samplers[ii], NULL)) { |
| 1043 return error::kInvalidArguments; |
| 1044 } |
| 1045 } |
| 1046 scoped_ptr<GLuint[]> service_ids(new GLuint[n]); |
| 1047 glGenSamplers(n, service_ids.get()); |
| 1048 for (GLsizei ii = 0; ii < n; ++ii) { |
| 1049 group_->AddSamplerId(samplers[ii], service_ids[ii]); |
| 1050 } |
| 1051 return error::kNoError; |
| 1052 } |
| 1053 |
937 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( | 1054 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( |
938 uint32_t immediate_data_size, | 1055 uint32_t immediate_data_size, |
939 const void* cmd_data) { | 1056 const void* cmd_data) { |
940 const gles2::cmds::GenTexturesImmediate& c = | 1057 const gles2::cmds::GenTexturesImmediate& c = |
941 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); | 1058 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); |
942 (void)c; | 1059 (void)c; |
943 GLsizei n = static_cast<GLsizei>(c.n); | 1060 GLsizei n = static_cast<GLsizei>(c.n); |
944 uint32_t data_size; | 1061 uint32_t data_size; |
945 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 1062 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
946 return error::kOutOfBounds; | 1063 return error::kOutOfBounds; |
947 } | 1064 } |
948 GLuint* textures = | 1065 GLuint* textures = |
949 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); | 1066 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); |
950 if (textures == NULL) { | 1067 if (textures == NULL) { |
951 return error::kOutOfBounds; | 1068 return error::kOutOfBounds; |
952 } | 1069 } |
953 if (!GenTexturesHelper(n, textures)) { | 1070 if (!GenTexturesHelper(n, textures)) { |
954 return error::kInvalidArguments; | 1071 return error::kInvalidArguments; |
955 } | 1072 } |
956 return error::kNoError; | 1073 return error::kNoError; |
957 } | 1074 } |
958 | 1075 |
| 1076 error::Error GLES2DecoderImpl::HandleGenTransformFeedbacksImmediate( |
| 1077 uint32_t immediate_data_size, |
| 1078 const void* cmd_data) { |
| 1079 if (!unsafe_es3_apis_enabled()) |
| 1080 return error::kUnknownCommand; |
| 1081 const gles2::cmds::GenTransformFeedbacksImmediate& c = |
| 1082 *static_cast<const gles2::cmds::GenTransformFeedbacksImmediate*>( |
| 1083 cmd_data); |
| 1084 (void)c; |
| 1085 GLsizei n = static_cast<GLsizei>(c.n); |
| 1086 uint32_t data_size; |
| 1087 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 1088 return error::kOutOfBounds; |
| 1089 } |
| 1090 GLuint* ids = GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); |
| 1091 if (ids == NULL) { |
| 1092 return error::kOutOfBounds; |
| 1093 } |
| 1094 for (GLsizei ii = 0; ii < n; ++ii) { |
| 1095 if (group_->GetTransformFeedbackServiceId(ids[ii], NULL)) { |
| 1096 return error::kInvalidArguments; |
| 1097 } |
| 1098 } |
| 1099 scoped_ptr<GLuint[]> service_ids(new GLuint[n]); |
| 1100 glGenTransformFeedbacks(n, service_ids.get()); |
| 1101 for (GLsizei ii = 0; ii < n; ++ii) { |
| 1102 group_->AddTransformFeedbackId(ids[ii], service_ids[ii]); |
| 1103 } |
| 1104 return error::kNoError; |
| 1105 } |
| 1106 |
959 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size, | 1107 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size, |
960 const void* cmd_data) { | 1108 const void* cmd_data) { |
961 const gles2::cmds::GetBooleanv& c = | 1109 const gles2::cmds::GetBooleanv& c = |
962 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data); | 1110 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data); |
963 (void)c; | 1111 (void)c; |
964 GLenum pname = static_cast<GLenum>(c.pname); | 1112 GLenum pname = static_cast<GLenum>(c.pname); |
965 typedef cmds::GetBooleanv::Result Result; | 1113 typedef cmds::GetBooleanv::Result Result; |
966 GLsizei num_values = 0; | 1114 GLsizei num_values = 0; |
967 GetNumValuesReturnedForGLGet(pname, &num_values); | 1115 GetNumValuesReturnedForGLGet(pname, &num_values); |
968 Result* result = GetSharedMemoryAs<Result*>( | 1116 Result* result = GetSharedMemoryAs<Result*>( |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1266 DoGetRenderbufferParameteriv(target, pname, params); | 1414 DoGetRenderbufferParameteriv(target, pname, params); |
1267 GLenum error = glGetError(); | 1415 GLenum error = glGetError(); |
1268 if (error == GL_NO_ERROR) { | 1416 if (error == GL_NO_ERROR) { |
1269 result->SetNumResults(num_values); | 1417 result->SetNumResults(num_values); |
1270 } else { | 1418 } else { |
1271 LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", ""); | 1419 LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", ""); |
1272 } | 1420 } |
1273 return error::kNoError; | 1421 return error::kNoError; |
1274 } | 1422 } |
1275 | 1423 |
| 1424 error::Error GLES2DecoderImpl::HandleGetSamplerParameterfv( |
| 1425 uint32_t immediate_data_size, |
| 1426 const void* cmd_data) { |
| 1427 if (!unsafe_es3_apis_enabled()) |
| 1428 return error::kUnknownCommand; |
| 1429 const gles2::cmds::GetSamplerParameterfv& c = |
| 1430 *static_cast<const gles2::cmds::GetSamplerParameterfv*>(cmd_data); |
| 1431 (void)c; |
| 1432 GLuint sampler = c.sampler; |
| 1433 GLenum pname = static_cast<GLenum>(c.pname); |
| 1434 typedef cmds::GetSamplerParameterfv::Result Result; |
| 1435 GLsizei num_values = 0; |
| 1436 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1437 Result* result = GetSharedMemoryAs<Result*>( |
| 1438 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1439 GLfloat* params = result ? result->GetData() : NULL; |
| 1440 if (params == NULL) { |
| 1441 return error::kOutOfBounds; |
| 1442 } |
| 1443 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); |
| 1444 // Check that the client initialized the result. |
| 1445 if (result->size != 0) { |
| 1446 return error::kInvalidArguments; |
| 1447 } |
| 1448 group_->GetSamplerServiceId(sampler, &sampler); |
| 1449 glGetSamplerParameterfv(sampler, pname, params); |
| 1450 GLenum error = glGetError(); |
| 1451 if (error == GL_NO_ERROR) { |
| 1452 result->SetNumResults(num_values); |
| 1453 } else { |
| 1454 LOCAL_SET_GL_ERROR(error, "GetSamplerParameterfv", ""); |
| 1455 } |
| 1456 return error::kNoError; |
| 1457 } |
| 1458 |
| 1459 error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv( |
| 1460 uint32_t immediate_data_size, |
| 1461 const void* cmd_data) { |
| 1462 if (!unsafe_es3_apis_enabled()) |
| 1463 return error::kUnknownCommand; |
| 1464 const gles2::cmds::GetSamplerParameteriv& c = |
| 1465 *static_cast<const gles2::cmds::GetSamplerParameteriv*>(cmd_data); |
| 1466 (void)c; |
| 1467 GLuint sampler = c.sampler; |
| 1468 GLenum pname = static_cast<GLenum>(c.pname); |
| 1469 typedef cmds::GetSamplerParameteriv::Result Result; |
| 1470 GLsizei num_values = 0; |
| 1471 GetNumValuesReturnedForGLGet(pname, &num_values); |
| 1472 Result* result = GetSharedMemoryAs<Result*>( |
| 1473 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| 1474 GLint* params = result ? result->GetData() : NULL; |
| 1475 if (params == NULL) { |
| 1476 return error::kOutOfBounds; |
| 1477 } |
| 1478 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); |
| 1479 // Check that the client initialized the result. |
| 1480 if (result->size != 0) { |
| 1481 return error::kInvalidArguments; |
| 1482 } |
| 1483 group_->GetSamplerServiceId(sampler, &sampler); |
| 1484 glGetSamplerParameteriv(sampler, pname, params); |
| 1485 GLenum error = glGetError(); |
| 1486 if (error == GL_NO_ERROR) { |
| 1487 result->SetNumResults(num_values); |
| 1488 } else { |
| 1489 LOCAL_SET_GL_ERROR(error, "GetSamplerParameteriv", ""); |
| 1490 } |
| 1491 return error::kNoError; |
| 1492 } |
| 1493 |
1276 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, | 1494 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, |
1277 const void* cmd_data) { | 1495 const void* cmd_data) { |
1278 const gles2::cmds::GetShaderiv& c = | 1496 const gles2::cmds::GetShaderiv& c = |
1279 *static_cast<const gles2::cmds::GetShaderiv*>(cmd_data); | 1497 *static_cast<const gles2::cmds::GetShaderiv*>(cmd_data); |
1280 (void)c; | 1498 (void)c; |
1281 GLuint shader = c.shader; | 1499 GLuint shader = c.shader; |
1282 GLenum pname = static_cast<GLenum>(c.pname); | 1500 GLenum pname = static_cast<GLenum>(c.pname); |
1283 typedef cmds::GetShaderiv::Result Result; | 1501 typedef cmds::GetShaderiv::Result Result; |
1284 GLsizei num_values = 0; | 1502 GLsizei num_values = 0; |
1285 GetNumValuesReturnedForGLGet(pname, &num_values); | 1503 GetNumValuesReturnedForGLGet(pname, &num_values); |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1639 typedef cmds::IsRenderbuffer::Result Result; | 1857 typedef cmds::IsRenderbuffer::Result Result; |
1640 Result* result_dst = GetSharedMemoryAs<Result*>( | 1858 Result* result_dst = GetSharedMemoryAs<Result*>( |
1641 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1859 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
1642 if (!result_dst) { | 1860 if (!result_dst) { |
1643 return error::kOutOfBounds; | 1861 return error::kOutOfBounds; |
1644 } | 1862 } |
1645 *result_dst = DoIsRenderbuffer(renderbuffer); | 1863 *result_dst = DoIsRenderbuffer(renderbuffer); |
1646 return error::kNoError; | 1864 return error::kNoError; |
1647 } | 1865 } |
1648 | 1866 |
| 1867 error::Error GLES2DecoderImpl::HandleIsSampler(uint32_t immediate_data_size, |
| 1868 const void* cmd_data) { |
| 1869 if (!unsafe_es3_apis_enabled()) |
| 1870 return error::kUnknownCommand; |
| 1871 const gles2::cmds::IsSampler& c = |
| 1872 *static_cast<const gles2::cmds::IsSampler*>(cmd_data); |
| 1873 (void)c; |
| 1874 GLuint sampler = c.sampler; |
| 1875 typedef cmds::IsSampler::Result Result; |
| 1876 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1877 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1878 if (!result_dst) { |
| 1879 return error::kOutOfBounds; |
| 1880 } |
| 1881 group_->GetSamplerServiceId(sampler, &sampler); |
| 1882 *result_dst = glIsSampler(sampler); |
| 1883 return error::kNoError; |
| 1884 } |
| 1885 |
1649 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size, | 1886 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size, |
1650 const void* cmd_data) { | 1887 const void* cmd_data) { |
1651 const gles2::cmds::IsShader& c = | 1888 const gles2::cmds::IsShader& c = |
1652 *static_cast<const gles2::cmds::IsShader*>(cmd_data); | 1889 *static_cast<const gles2::cmds::IsShader*>(cmd_data); |
1653 (void)c; | 1890 (void)c; |
1654 GLuint shader = c.shader; | 1891 GLuint shader = c.shader; |
1655 typedef cmds::IsShader::Result Result; | 1892 typedef cmds::IsShader::Result Result; |
1656 Result* result_dst = GetSharedMemoryAs<Result*>( | 1893 Result* result_dst = GetSharedMemoryAs<Result*>( |
1657 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1894 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
1658 if (!result_dst) { | 1895 if (!result_dst) { |
(...skipping 12 matching lines...) Expand all Loading... |
1671 typedef cmds::IsTexture::Result Result; | 1908 typedef cmds::IsTexture::Result Result; |
1672 Result* result_dst = GetSharedMemoryAs<Result*>( | 1909 Result* result_dst = GetSharedMemoryAs<Result*>( |
1673 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 1910 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
1674 if (!result_dst) { | 1911 if (!result_dst) { |
1675 return error::kOutOfBounds; | 1912 return error::kOutOfBounds; |
1676 } | 1913 } |
1677 *result_dst = DoIsTexture(texture); | 1914 *result_dst = DoIsTexture(texture); |
1678 return error::kNoError; | 1915 return error::kNoError; |
1679 } | 1916 } |
1680 | 1917 |
| 1918 error::Error GLES2DecoderImpl::HandleIsTransformFeedback( |
| 1919 uint32_t immediate_data_size, |
| 1920 const void* cmd_data) { |
| 1921 if (!unsafe_es3_apis_enabled()) |
| 1922 return error::kUnknownCommand; |
| 1923 const gles2::cmds::IsTransformFeedback& c = |
| 1924 *static_cast<const gles2::cmds::IsTransformFeedback*>(cmd_data); |
| 1925 (void)c; |
| 1926 GLuint transformfeedback = c.transformfeedback; |
| 1927 typedef cmds::IsTransformFeedback::Result Result; |
| 1928 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 1929 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 1930 if (!result_dst) { |
| 1931 return error::kOutOfBounds; |
| 1932 } |
| 1933 group_->GetTransformFeedbackServiceId(transformfeedback, &transformfeedback); |
| 1934 *result_dst = glIsTransformFeedback(transformfeedback); |
| 1935 return error::kNoError; |
| 1936 } |
| 1937 |
1681 error::Error GLES2DecoderImpl::HandleLineWidth(uint32_t immediate_data_size, | 1938 error::Error GLES2DecoderImpl::HandleLineWidth(uint32_t immediate_data_size, |
1682 const void* cmd_data) { | 1939 const void* cmd_data) { |
1683 const gles2::cmds::LineWidth& c = | 1940 const gles2::cmds::LineWidth& c = |
1684 *static_cast<const gles2::cmds::LineWidth*>(cmd_data); | 1941 *static_cast<const gles2::cmds::LineWidth*>(cmd_data); |
1685 (void)c; | 1942 (void)c; |
1686 GLfloat width = static_cast<GLfloat>(c.width); | 1943 GLfloat width = static_cast<GLfloat>(c.width); |
1687 if (width <= 0.0f || base::IsNaN(width)) { | 1944 if (width <= 0.0f || base::IsNaN(width)) { |
1688 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "LineWidth", "width out of range"); | 1945 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "LineWidth", "width out of range"); |
1689 return error::kNoError; | 1946 return error::kNoError; |
1690 } | 1947 } |
1691 if (state_.line_width != width) { | 1948 if (state_.line_width != width) { |
1692 state_.line_width = width; | 1949 state_.line_width = width; |
1693 glLineWidth(width); | 1950 glLineWidth(width); |
1694 } | 1951 } |
1695 return error::kNoError; | 1952 return error::kNoError; |
1696 } | 1953 } |
1697 | 1954 |
1698 error::Error GLES2DecoderImpl::HandleLinkProgram(uint32_t immediate_data_size, | 1955 error::Error GLES2DecoderImpl::HandleLinkProgram(uint32_t immediate_data_size, |
1699 const void* cmd_data) { | 1956 const void* cmd_data) { |
1700 const gles2::cmds::LinkProgram& c = | 1957 const gles2::cmds::LinkProgram& c = |
1701 *static_cast<const gles2::cmds::LinkProgram*>(cmd_data); | 1958 *static_cast<const gles2::cmds::LinkProgram*>(cmd_data); |
1702 (void)c; | 1959 (void)c; |
1703 GLuint program = c.program; | 1960 GLuint program = c.program; |
1704 DoLinkProgram(program); | 1961 DoLinkProgram(program); |
1705 return error::kNoError; | 1962 return error::kNoError; |
1706 } | 1963 } |
1707 | 1964 |
| 1965 error::Error GLES2DecoderImpl::HandlePauseTransformFeedback( |
| 1966 uint32_t immediate_data_size, |
| 1967 const void* cmd_data) { |
| 1968 if (!unsafe_es3_apis_enabled()) |
| 1969 return error::kUnknownCommand; |
| 1970 const gles2::cmds::PauseTransformFeedback& c = |
| 1971 *static_cast<const gles2::cmds::PauseTransformFeedback*>(cmd_data); |
| 1972 (void)c; |
| 1973 glPauseTransformFeedback(); |
| 1974 return error::kNoError; |
| 1975 } |
| 1976 |
1708 error::Error GLES2DecoderImpl::HandlePolygonOffset(uint32_t immediate_data_size, | 1977 error::Error GLES2DecoderImpl::HandlePolygonOffset(uint32_t immediate_data_size, |
1709 const void* cmd_data) { | 1978 const void* cmd_data) { |
1710 const gles2::cmds::PolygonOffset& c = | 1979 const gles2::cmds::PolygonOffset& c = |
1711 *static_cast<const gles2::cmds::PolygonOffset*>(cmd_data); | 1980 *static_cast<const gles2::cmds::PolygonOffset*>(cmd_data); |
1712 (void)c; | 1981 (void)c; |
1713 GLfloat factor = static_cast<GLfloat>(c.factor); | 1982 GLfloat factor = static_cast<GLfloat>(c.factor); |
1714 GLfloat units = static_cast<GLfloat>(c.units); | 1983 GLfloat units = static_cast<GLfloat>(c.units); |
1715 if (state_.polygon_offset_factor != factor || | 1984 if (state_.polygon_offset_factor != factor || |
1716 state_.polygon_offset_units != units) { | 1985 state_.polygon_offset_units != units) { |
1717 state_.polygon_offset_factor = factor; | 1986 state_.polygon_offset_factor = factor; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1767 return error::kNoError; | 2036 return error::kNoError; |
1768 } | 2037 } |
1769 if (height < 0) { | 2038 if (height < 0) { |
1770 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); | 2039 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); |
1771 return error::kNoError; | 2040 return error::kNoError; |
1772 } | 2041 } |
1773 DoRenderbufferStorage(target, internalformat, width, height); | 2042 DoRenderbufferStorage(target, internalformat, width, height); |
1774 return error::kNoError; | 2043 return error::kNoError; |
1775 } | 2044 } |
1776 | 2045 |
| 2046 error::Error GLES2DecoderImpl::HandleResumeTransformFeedback( |
| 2047 uint32_t immediate_data_size, |
| 2048 const void* cmd_data) { |
| 2049 if (!unsafe_es3_apis_enabled()) |
| 2050 return error::kUnknownCommand; |
| 2051 const gles2::cmds::ResumeTransformFeedback& c = |
| 2052 *static_cast<const gles2::cmds::ResumeTransformFeedback*>(cmd_data); |
| 2053 (void)c; |
| 2054 glResumeTransformFeedback(); |
| 2055 return error::kNoError; |
| 2056 } |
| 2057 |
1777 error::Error GLES2DecoderImpl::HandleSampleCoverage( | 2058 error::Error GLES2DecoderImpl::HandleSampleCoverage( |
1778 uint32_t immediate_data_size, | 2059 uint32_t immediate_data_size, |
1779 const void* cmd_data) { | 2060 const void* cmd_data) { |
1780 const gles2::cmds::SampleCoverage& c = | 2061 const gles2::cmds::SampleCoverage& c = |
1781 *static_cast<const gles2::cmds::SampleCoverage*>(cmd_data); | 2062 *static_cast<const gles2::cmds::SampleCoverage*>(cmd_data); |
1782 (void)c; | 2063 (void)c; |
1783 GLclampf value = static_cast<GLclampf>(c.value); | 2064 GLclampf value = static_cast<GLclampf>(c.value); |
1784 GLboolean invert = static_cast<GLboolean>(c.invert); | 2065 GLboolean invert = static_cast<GLboolean>(c.invert); |
1785 DoSampleCoverage(value, invert); | 2066 DoSampleCoverage(value, invert); |
1786 return error::kNoError; | 2067 return error::kNoError; |
1787 } | 2068 } |
1788 | 2069 |
| 2070 error::Error GLES2DecoderImpl::HandleSamplerParameterf( |
| 2071 uint32_t immediate_data_size, |
| 2072 const void* cmd_data) { |
| 2073 if (!unsafe_es3_apis_enabled()) |
| 2074 return error::kUnknownCommand; |
| 2075 const gles2::cmds::SamplerParameterf& c = |
| 2076 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); |
| 2077 (void)c; |
| 2078 GLuint sampler = c.sampler; |
| 2079 GLenum pname = static_cast<GLenum>(c.pname); |
| 2080 GLfloat param = static_cast<GLfloat>(c.param); |
| 2081 group_->GetSamplerServiceId(sampler, &sampler); |
| 2082 glSamplerParameterf(sampler, pname, param); |
| 2083 return error::kNoError; |
| 2084 } |
| 2085 |
| 2086 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( |
| 2087 uint32_t immediate_data_size, |
| 2088 const void* cmd_data) { |
| 2089 if (!unsafe_es3_apis_enabled()) |
| 2090 return error::kUnknownCommand; |
| 2091 const gles2::cmds::SamplerParameterfvImmediate& c = |
| 2092 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); |
| 2093 (void)c; |
| 2094 GLuint sampler = c.sampler; |
| 2095 GLenum pname = static_cast<GLenum>(c.pname); |
| 2096 uint32_t data_size; |
| 2097 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
| 2098 return error::kOutOfBounds; |
| 2099 } |
| 2100 if (data_size > immediate_data_size) { |
| 2101 return error::kOutOfBounds; |
| 2102 } |
| 2103 const GLfloat* params = |
| 2104 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
| 2105 if (params == NULL) { |
| 2106 return error::kOutOfBounds; |
| 2107 } |
| 2108 group_->GetSamplerServiceId(sampler, &sampler); |
| 2109 DoSamplerParameterfv(sampler, pname, params); |
| 2110 return error::kNoError; |
| 2111 } |
| 2112 |
| 2113 error::Error GLES2DecoderImpl::HandleSamplerParameteri( |
| 2114 uint32_t immediate_data_size, |
| 2115 const void* cmd_data) { |
| 2116 if (!unsafe_es3_apis_enabled()) |
| 2117 return error::kUnknownCommand; |
| 2118 const gles2::cmds::SamplerParameteri& c = |
| 2119 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); |
| 2120 (void)c; |
| 2121 GLuint sampler = c.sampler; |
| 2122 GLenum pname = static_cast<GLenum>(c.pname); |
| 2123 GLint param = static_cast<GLint>(c.param); |
| 2124 group_->GetSamplerServiceId(sampler, &sampler); |
| 2125 glSamplerParameteri(sampler, pname, param); |
| 2126 return error::kNoError; |
| 2127 } |
| 2128 |
| 2129 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( |
| 2130 uint32_t immediate_data_size, |
| 2131 const void* cmd_data) { |
| 2132 if (!unsafe_es3_apis_enabled()) |
| 2133 return error::kUnknownCommand; |
| 2134 const gles2::cmds::SamplerParameterivImmediate& c = |
| 2135 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); |
| 2136 (void)c; |
| 2137 GLuint sampler = c.sampler; |
| 2138 GLenum pname = static_cast<GLenum>(c.pname); |
| 2139 uint32_t data_size; |
| 2140 if (!ComputeDataSize(1, sizeof(GLint), 1, &data_size)) { |
| 2141 return error::kOutOfBounds; |
| 2142 } |
| 2143 if (data_size > immediate_data_size) { |
| 2144 return error::kOutOfBounds; |
| 2145 } |
| 2146 const GLint* params = |
| 2147 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); |
| 2148 if (params == NULL) { |
| 2149 return error::kOutOfBounds; |
| 2150 } |
| 2151 DoSamplerParameteriv(sampler, pname, params); |
| 2152 return error::kNoError; |
| 2153 } |
| 2154 |
1789 error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size, | 2155 error::Error GLES2DecoderImpl::HandleScissor(uint32_t immediate_data_size, |
1790 const void* cmd_data) { | 2156 const void* cmd_data) { |
1791 const gles2::cmds::Scissor& c = | 2157 const gles2::cmds::Scissor& c = |
1792 *static_cast<const gles2::cmds::Scissor*>(cmd_data); | 2158 *static_cast<const gles2::cmds::Scissor*>(cmd_data); |
1793 (void)c; | 2159 (void)c; |
1794 GLint x = static_cast<GLint>(c.x); | 2160 GLint x = static_cast<GLint>(c.x); |
1795 GLint y = static_cast<GLint>(c.y); | 2161 GLint y = static_cast<GLint>(c.y); |
1796 GLsizei width = static_cast<GLsizei>(c.width); | 2162 GLsizei width = static_cast<GLsizei>(c.width); |
1797 GLsizei height = static_cast<GLsizei>(c.height); | 2163 GLsizei height = static_cast<GLsizei>(c.height); |
1798 if (width < 0) { | 2164 if (width < 0) { |
(...skipping 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3409 } | 3775 } |
3410 const GLuint* queries = | 3776 const GLuint* queries = |
3411 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); | 3777 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
3412 if (queries == NULL) { | 3778 if (queries == NULL) { |
3413 return error::kOutOfBounds; | 3779 return error::kOutOfBounds; |
3414 } | 3780 } |
3415 DeleteQueriesEXTHelper(n, queries); | 3781 DeleteQueriesEXTHelper(n, queries); |
3416 return error::kNoError; | 3782 return error::kNoError; |
3417 } | 3783 } |
3418 | 3784 |
| 3785 error::Error GLES2DecoderImpl::HandleBeginTransformFeedback( |
| 3786 uint32_t immediate_data_size, |
| 3787 const void* cmd_data) { |
| 3788 if (!unsafe_es3_apis_enabled()) |
| 3789 return error::kUnknownCommand; |
| 3790 const gles2::cmds::BeginTransformFeedback& c = |
| 3791 *static_cast<const gles2::cmds::BeginTransformFeedback*>(cmd_data); |
| 3792 (void)c; |
| 3793 GLenum primitivemode = static_cast<GLenum>(c.primitivemode); |
| 3794 glBeginTransformFeedback(primitivemode); |
| 3795 return error::kNoError; |
| 3796 } |
| 3797 |
| 3798 error::Error GLES2DecoderImpl::HandleEndTransformFeedback( |
| 3799 uint32_t immediate_data_size, |
| 3800 const void* cmd_data) { |
| 3801 if (!unsafe_es3_apis_enabled()) |
| 3802 return error::kUnknownCommand; |
| 3803 const gles2::cmds::EndTransformFeedback& c = |
| 3804 *static_cast<const gles2::cmds::EndTransformFeedback*>(cmd_data); |
| 3805 (void)c; |
| 3806 glEndTransformFeedback(); |
| 3807 return error::kNoError; |
| 3808 } |
| 3809 |
3419 error::Error GLES2DecoderImpl::HandleInsertEventMarkerEXT( | 3810 error::Error GLES2DecoderImpl::HandleInsertEventMarkerEXT( |
3420 uint32_t immediate_data_size, | 3811 uint32_t immediate_data_size, |
3421 const void* cmd_data) { | 3812 const void* cmd_data) { |
3422 const gles2::cmds::InsertEventMarkerEXT& c = | 3813 const gles2::cmds::InsertEventMarkerEXT& c = |
3423 *static_cast<const gles2::cmds::InsertEventMarkerEXT*>(cmd_data); | 3814 *static_cast<const gles2::cmds::InsertEventMarkerEXT*>(cmd_data); |
3424 (void)c; | 3815 (void)c; |
3425 | 3816 |
3426 GLuint bucket_id = static_cast<GLuint>(c.bucket_id); | 3817 GLuint bucket_id = static_cast<GLuint>(c.bucket_id); |
3427 Bucket* bucket = GetBucket(bucket_id); | 3818 Bucket* bucket = GetBucket(bucket_id); |
3428 if (!bucket || bucket->size() == 0) { | 3819 if (!bucket || bucket->size() == 0) { |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4142 state_.ignore_cached_state) { | 4533 state_.ignore_cached_state) { |
4143 framebuffer_state_.clear_state_dirty = true; | 4534 framebuffer_state_.clear_state_dirty = true; |
4144 } | 4535 } |
4145 return false; | 4536 return false; |
4146 default: | 4537 default: |
4147 NOTREACHED(); | 4538 NOTREACHED(); |
4148 return false; | 4539 return false; |
4149 } | 4540 } |
4150 } | 4541 } |
4151 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 4542 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
OLD | NEW |