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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 | 114 |
115 error::Error GLES2DecoderImpl::HandleBindSampler(uint32_t immediate_data_size, | 115 error::Error GLES2DecoderImpl::HandleBindSampler(uint32_t immediate_data_size, |
116 const void* cmd_data) { | 116 const void* cmd_data) { |
117 if (!unsafe_es3_apis_enabled()) | 117 if (!unsafe_es3_apis_enabled()) |
118 return error::kUnknownCommand; | 118 return error::kUnknownCommand; |
119 const gles2::cmds::BindSampler& c = | 119 const gles2::cmds::BindSampler& c = |
120 *static_cast<const gles2::cmds::BindSampler*>(cmd_data); | 120 *static_cast<const gles2::cmds::BindSampler*>(cmd_data); |
121 (void)c; | 121 (void)c; |
122 GLuint unit = static_cast<GLuint>(c.unit); | 122 GLuint unit = static_cast<GLuint>(c.unit); |
123 GLuint sampler = c.sampler; | 123 GLuint sampler = c.sampler; |
124 if (sampler == 0) { | 124 DoBindSampler(unit, sampler); |
125 glBindSampler(unit, sampler); | |
126 return error::kNoError; | |
127 } | |
128 if (!group_->GetSamplerServiceId(sampler, &sampler)) { | |
129 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBindSampler", | |
130 "invalid sampler id"); | |
131 return error::kNoError; | |
132 } | |
133 glBindSampler(unit, sampler); | |
134 return error::kNoError; | 125 return error::kNoError; |
135 } | 126 } |
136 | 127 |
137 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size, | 128 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size, |
138 const void* cmd_data) { | 129 const void* cmd_data) { |
139 const gles2::cmds::BindTexture& c = | 130 const gles2::cmds::BindTexture& c = |
140 *static_cast<const gles2::cmds::BindTexture*>(cmd_data); | 131 *static_cast<const gles2::cmds::BindTexture*>(cmd_data); |
141 (void)c; | 132 (void)c; |
142 GLenum target = static_cast<GLenum>(c.target); | 133 GLenum target = static_cast<GLenum>(c.target); |
143 GLuint texture = c.texture; | 134 GLuint texture = c.texture; |
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 GLsizei n = static_cast<GLsizei>(c.n); | 844 GLsizei n = static_cast<GLsizei>(c.n); |
854 uint32_t data_size; | 845 uint32_t data_size; |
855 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 846 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
856 return error::kOutOfBounds; | 847 return error::kOutOfBounds; |
857 } | 848 } |
858 const GLuint* samplers = | 849 const GLuint* samplers = |
859 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); | 850 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); |
860 if (samplers == NULL) { | 851 if (samplers == NULL) { |
861 return error::kOutOfBounds; | 852 return error::kOutOfBounds; |
862 } | 853 } |
863 for (GLsizei ii = 0; ii < n; ++ii) { | 854 DeleteSamplersHelper(n, samplers); |
864 GLuint service_id = 0; | |
865 if (group_->GetSamplerServiceId(samplers[ii], &service_id)) { | |
866 glDeleteSamplers(1, &service_id); | |
867 group_->RemoveSamplerId(samplers[ii]); | |
868 } | |
869 } | |
870 return error::kNoError; | 855 return error::kNoError; |
871 } | 856 } |
872 | 857 |
873 error::Error GLES2DecoderImpl::HandleDeleteSync(uint32_t immediate_data_size, | 858 error::Error GLES2DecoderImpl::HandleDeleteSync(uint32_t immediate_data_size, |
874 const void* cmd_data) { | 859 const void* cmd_data) { |
875 if (!unsafe_es3_apis_enabled()) | 860 if (!unsafe_es3_apis_enabled()) |
876 return error::kUnknownCommand; | 861 return error::kUnknownCommand; |
877 const gles2::cmds::DeleteSync& c = | 862 const gles2::cmds::DeleteSync& c = |
878 *static_cast<const gles2::cmds::DeleteSync*>(cmd_data); | 863 *static_cast<const gles2::cmds::DeleteSync*>(cmd_data); |
879 (void)c; | 864 (void)c; |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1267 GLsizei n = static_cast<GLsizei>(c.n); | 1252 GLsizei n = static_cast<GLsizei>(c.n); |
1268 uint32_t data_size; | 1253 uint32_t data_size; |
1269 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 1254 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
1270 return error::kOutOfBounds; | 1255 return error::kOutOfBounds; |
1271 } | 1256 } |
1272 GLuint* samplers = | 1257 GLuint* samplers = |
1273 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); | 1258 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); |
1274 if (samplers == NULL) { | 1259 if (samplers == NULL) { |
1275 return error::kOutOfBounds; | 1260 return error::kOutOfBounds; |
1276 } | 1261 } |
1277 for (GLsizei ii = 0; ii < n; ++ii) { | 1262 if (!GenSamplersHelper(n, samplers)) { |
1278 if (group_->GetSamplerServiceId(samplers[ii], NULL)) { | 1263 return error::kInvalidArguments; |
1279 return error::kInvalidArguments; | |
1280 } | |
1281 } | |
1282 scoped_ptr<GLuint[]> service_ids(new GLuint[n]); | |
1283 glGenSamplers(n, service_ids.get()); | |
1284 for (GLsizei ii = 0; ii < n; ++ii) { | |
1285 group_->AddSamplerId(samplers[ii], service_ids[ii]); | |
1286 } | 1264 } |
1287 return error::kNoError; | 1265 return error::kNoError; |
1288 } | 1266 } |
1289 | 1267 |
1290 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( | 1268 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( |
1291 uint32_t immediate_data_size, | 1269 uint32_t immediate_data_size, |
1292 const void* cmd_data) { | 1270 const void* cmd_data) { |
1293 const gles2::cmds::GenTexturesImmediate& c = | 1271 const gles2::cmds::GenTexturesImmediate& c = |
1294 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); | 1272 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); |
1295 (void)c; | 1273 (void)c; |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1741 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1719 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
1742 GLfloat* params = result ? result->GetData() : NULL; | 1720 GLfloat* params = result ? result->GetData() : NULL; |
1743 if (params == NULL) { | 1721 if (params == NULL) { |
1744 return error::kOutOfBounds; | 1722 return error::kOutOfBounds; |
1745 } | 1723 } |
1746 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); | 1724 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); |
1747 // Check that the client initialized the result. | 1725 // Check that the client initialized the result. |
1748 if (result->size != 0) { | 1726 if (result->size != 0) { |
1749 return error::kInvalidArguments; | 1727 return error::kInvalidArguments; |
1750 } | 1728 } |
1751 if (!group_->GetSamplerServiceId(sampler, &sampler)) { | 1729 DoGetSamplerParameterfv(sampler, pname, params); |
1752 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glGetSamplerParameterfv", | |
1753 "invalid sampler id"); | |
1754 return error::kNoError; | |
1755 } | |
1756 glGetSamplerParameterfv(sampler, pname, params); | |
1757 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); | 1730 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); |
1758 if (error == GL_NO_ERROR) { | 1731 if (error == GL_NO_ERROR) { |
1759 result->SetNumResults(num_values); | 1732 result->SetNumResults(num_values); |
1760 } | 1733 } |
1761 return error::kNoError; | 1734 return error::kNoError; |
1762 } | 1735 } |
1763 | 1736 |
1764 error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv( | 1737 error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv( |
1765 uint32_t immediate_data_size, | 1738 uint32_t immediate_data_size, |
1766 const void* cmd_data) { | 1739 const void* cmd_data) { |
(...skipping 11 matching lines...) Expand all Loading... |
1778 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); | 1751 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
1779 GLint* params = result ? result->GetData() : NULL; | 1752 GLint* params = result ? result->GetData() : NULL; |
1780 if (params == NULL) { | 1753 if (params == NULL) { |
1781 return error::kOutOfBounds; | 1754 return error::kOutOfBounds; |
1782 } | 1755 } |
1783 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); | 1756 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); |
1784 // Check that the client initialized the result. | 1757 // Check that the client initialized the result. |
1785 if (result->size != 0) { | 1758 if (result->size != 0) { |
1786 return error::kInvalidArguments; | 1759 return error::kInvalidArguments; |
1787 } | 1760 } |
1788 if (!group_->GetSamplerServiceId(sampler, &sampler)) { | 1761 DoGetSamplerParameteriv(sampler, pname, params); |
1789 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glGetSamplerParameteriv", | |
1790 "invalid sampler id"); | |
1791 return error::kNoError; | |
1792 } | |
1793 glGetSamplerParameteriv(sampler, pname, params); | |
1794 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); | 1762 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); |
1795 if (error == GL_NO_ERROR) { | 1763 if (error == GL_NO_ERROR) { |
1796 result->SetNumResults(num_values); | 1764 result->SetNumResults(num_values); |
1797 } | 1765 } |
1798 return error::kNoError; | 1766 return error::kNoError; |
1799 } | 1767 } |
1800 | 1768 |
1801 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, | 1769 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, |
1802 const void* cmd_data) { | 1770 const void* cmd_data) { |
1803 const gles2::cmds::GetShaderiv& c = | 1771 const gles2::cmds::GetShaderiv& c = |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2258 const gles2::cmds::IsSampler& c = | 2226 const gles2::cmds::IsSampler& c = |
2259 *static_cast<const gles2::cmds::IsSampler*>(cmd_data); | 2227 *static_cast<const gles2::cmds::IsSampler*>(cmd_data); |
2260 (void)c; | 2228 (void)c; |
2261 GLuint sampler = c.sampler; | 2229 GLuint sampler = c.sampler; |
2262 typedef cmds::IsSampler::Result Result; | 2230 typedef cmds::IsSampler::Result Result; |
2263 Result* result_dst = GetSharedMemoryAs<Result*>( | 2231 Result* result_dst = GetSharedMemoryAs<Result*>( |
2264 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 2232 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
2265 if (!result_dst) { | 2233 if (!result_dst) { |
2266 return error::kOutOfBounds; | 2234 return error::kOutOfBounds; |
2267 } | 2235 } |
2268 GLuint service_sampler = 0; | 2236 *result_dst = DoIsSampler(sampler); |
2269 *result_dst = group_->GetSamplerServiceId(sampler, &service_sampler); | |
2270 return error::kNoError; | 2237 return error::kNoError; |
2271 } | 2238 } |
2272 | 2239 |
2273 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size, | 2240 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size, |
2274 const void* cmd_data) { | 2241 const void* cmd_data) { |
2275 const gles2::cmds::IsShader& c = | 2242 const gles2::cmds::IsShader& c = |
2276 *static_cast<const gles2::cmds::IsShader*>(cmd_data); | 2243 *static_cast<const gles2::cmds::IsShader*>(cmd_data); |
2277 (void)c; | 2244 (void)c; |
2278 GLuint shader = c.shader; | 2245 GLuint shader = c.shader; |
2279 typedef cmds::IsShader::Result Result; | 2246 typedef cmds::IsShader::Result Result; |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2478 uint32_t immediate_data_size, | 2445 uint32_t immediate_data_size, |
2479 const void* cmd_data) { | 2446 const void* cmd_data) { |
2480 if (!unsafe_es3_apis_enabled()) | 2447 if (!unsafe_es3_apis_enabled()) |
2481 return error::kUnknownCommand; | 2448 return error::kUnknownCommand; |
2482 const gles2::cmds::SamplerParameterf& c = | 2449 const gles2::cmds::SamplerParameterf& c = |
2483 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); | 2450 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); |
2484 (void)c; | 2451 (void)c; |
2485 GLuint sampler = c.sampler; | 2452 GLuint sampler = c.sampler; |
2486 GLenum pname = static_cast<GLenum>(c.pname); | 2453 GLenum pname = static_cast<GLenum>(c.pname); |
2487 GLfloat param = static_cast<GLfloat>(c.param); | 2454 GLfloat param = static_cast<GLfloat>(c.param); |
2488 if (!group_->GetSamplerServiceId(sampler, &sampler)) { | 2455 DoSamplerParameterf(sampler, pname, param); |
2489 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glSamplerParameterf", | |
2490 "invalid sampler id"); | |
2491 return error::kNoError; | |
2492 } | |
2493 glSamplerParameterf(sampler, pname, param); | |
2494 return error::kNoError; | 2456 return error::kNoError; |
2495 } | 2457 } |
2496 | 2458 |
2497 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( | 2459 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( |
2498 uint32_t immediate_data_size, | 2460 uint32_t immediate_data_size, |
2499 const void* cmd_data) { | 2461 const void* cmd_data) { |
2500 if (!unsafe_es3_apis_enabled()) | 2462 if (!unsafe_es3_apis_enabled()) |
2501 return error::kUnknownCommand; | 2463 return error::kUnknownCommand; |
2502 const gles2::cmds::SamplerParameterfvImmediate& c = | 2464 const gles2::cmds::SamplerParameterfvImmediate& c = |
2503 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); | 2465 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); |
2504 (void)c; | 2466 (void)c; |
2505 GLuint sampler = c.sampler; | 2467 GLuint sampler = c.sampler; |
2506 GLenum pname = static_cast<GLenum>(c.pname); | 2468 GLenum pname = static_cast<GLenum>(c.pname); |
2507 uint32_t data_size; | 2469 uint32_t data_size; |
2508 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { | 2470 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { |
2509 return error::kOutOfBounds; | 2471 return error::kOutOfBounds; |
2510 } | 2472 } |
2511 if (data_size > immediate_data_size) { | 2473 if (data_size > immediate_data_size) { |
2512 return error::kOutOfBounds; | 2474 return error::kOutOfBounds; |
2513 } | 2475 } |
2514 const GLfloat* params = | 2476 const GLfloat* params = |
2515 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); | 2477 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
2516 if (params == NULL) { | 2478 if (params == NULL) { |
2517 return error::kOutOfBounds; | 2479 return error::kOutOfBounds; |
2518 } | 2480 } |
2519 group_->GetSamplerServiceId(sampler, &sampler); | |
2520 DoSamplerParameterfv(sampler, pname, params); | 2481 DoSamplerParameterfv(sampler, pname, params); |
2521 return error::kNoError; | 2482 return error::kNoError; |
2522 } | 2483 } |
2523 | 2484 |
2524 error::Error GLES2DecoderImpl::HandleSamplerParameteri( | 2485 error::Error GLES2DecoderImpl::HandleSamplerParameteri( |
2525 uint32_t immediate_data_size, | 2486 uint32_t immediate_data_size, |
2526 const void* cmd_data) { | 2487 const void* cmd_data) { |
2527 if (!unsafe_es3_apis_enabled()) | 2488 if (!unsafe_es3_apis_enabled()) |
2528 return error::kUnknownCommand; | 2489 return error::kUnknownCommand; |
2529 const gles2::cmds::SamplerParameteri& c = | 2490 const gles2::cmds::SamplerParameteri& c = |
2530 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); | 2491 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); |
2531 (void)c; | 2492 (void)c; |
2532 GLuint sampler = c.sampler; | 2493 GLuint sampler = c.sampler; |
2533 GLenum pname = static_cast<GLenum>(c.pname); | 2494 GLenum pname = static_cast<GLenum>(c.pname); |
2534 GLint param = static_cast<GLint>(c.param); | 2495 GLint param = static_cast<GLint>(c.param); |
2535 if (!group_->GetSamplerServiceId(sampler, &sampler)) { | 2496 DoSamplerParameteri(sampler, pname, param); |
2536 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glSamplerParameteri", | |
2537 "invalid sampler id"); | |
2538 return error::kNoError; | |
2539 } | |
2540 glSamplerParameteri(sampler, pname, param); | |
2541 return error::kNoError; | 2497 return error::kNoError; |
2542 } | 2498 } |
2543 | 2499 |
2544 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( | 2500 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( |
2545 uint32_t immediate_data_size, | 2501 uint32_t immediate_data_size, |
2546 const void* cmd_data) { | 2502 const void* cmd_data) { |
2547 if (!unsafe_es3_apis_enabled()) | 2503 if (!unsafe_es3_apis_enabled()) |
2548 return error::kUnknownCommand; | 2504 return error::kUnknownCommand; |
2549 const gles2::cmds::SamplerParameterivImmediate& c = | 2505 const gles2::cmds::SamplerParameterivImmediate& c = |
2550 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); | 2506 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); |
(...skipping 2620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5171 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; | 5127 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; |
5172 return true; | 5128 return true; |
5173 } | 5129 } |
5174 return false; | 5130 return false; |
5175 default: | 5131 default: |
5176 NOTREACHED(); | 5132 NOTREACHED(); |
5177 return false; | 5133 return false; |
5178 } | 5134 } |
5179 } | 5135 } |
5180 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 5136 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
OLD | NEW |