| 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 2414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2425 } | 2425 } |
| 2426 | 2426 |
| 2427 error::Error GLES2DecoderImpl::HandleShaderSourceBucket( | 2427 error::Error GLES2DecoderImpl::HandleShaderSourceBucket( |
| 2428 uint32_t immediate_data_size, | 2428 uint32_t immediate_data_size, |
| 2429 const void* cmd_data) { | 2429 const void* cmd_data) { |
| 2430 const gles2::cmds::ShaderSourceBucket& c = | 2430 const gles2::cmds::ShaderSourceBucket& c = |
| 2431 *static_cast<const gles2::cmds::ShaderSourceBucket*>(cmd_data); | 2431 *static_cast<const gles2::cmds::ShaderSourceBucket*>(cmd_data); |
| 2432 (void)c; | 2432 (void)c; |
| 2433 GLuint shader = static_cast<GLuint>(c.shader); | 2433 GLuint shader = static_cast<GLuint>(c.shader); |
| 2434 | 2434 |
| 2435 const size_t kMinBucketSize = sizeof(GLint); | |
| 2436 // Each string has at least |length| in the header and a NUL character. | |
| 2437 const size_t kMinStringSize = sizeof(GLint) + 1; | |
| 2438 Bucket* bucket = GetBucket(c.str_bucket_id); | 2435 Bucket* bucket = GetBucket(c.str_bucket_id); |
| 2439 if (!bucket) { | 2436 if (!bucket) { |
| 2440 return error::kInvalidArguments; | 2437 return error::kInvalidArguments; |
| 2441 } | 2438 } |
| 2442 const size_t bucket_size = bucket->size(); | 2439 GLsizei count = 0; |
| 2443 if (bucket_size < kMinBucketSize) { | 2440 std::vector<char*> strs; |
| 2441 std::vector<GLint> len; |
| 2442 if (!bucket->GetAsStrings(&count, &strs, &len)) { |
| 2444 return error::kInvalidArguments; | 2443 return error::kInvalidArguments; |
| 2445 } | 2444 } |
| 2446 const char* bucket_data = bucket->GetDataAs<const char*>(0, bucket_size); | 2445 const char** str = |
| 2447 const GLint* header = reinterpret_cast<const GLint*>(bucket_data); | 2446 strs.size() > 0 ? const_cast<const char**>(&strs[0]) : NULL; |
| 2448 GLsizei count = static_cast<GLsizei>(header[0]); | 2447 const GLint* length = |
| 2449 if (count < 0) { | 2448 len.size() > 0 ? const_cast<const GLint*>(&len[0]) : NULL; |
| 2450 return error::kInvalidArguments; | 2449 (void)length; |
| 2451 } | |
| 2452 const size_t max_count = (bucket_size - kMinBucketSize) / kMinStringSize; | |
| 2453 if (max_count < static_cast<size_t>(count)) { | |
| 2454 return error::kInvalidArguments; | |
| 2455 } | |
| 2456 const GLint* length = header + 1; | |
| 2457 scoped_ptr<const char* []> strs; | |
| 2458 if (count > 0) | |
| 2459 strs.reset(new const char* [count]); | |
| 2460 const char** str = strs.get(); | |
| 2461 base::CheckedNumeric<size_t> total_size = sizeof(GLint); | |
| 2462 total_size *= count + 1; // Header size. | |
| 2463 if (!total_size.IsValid()) | |
| 2464 return error::kInvalidArguments; | |
| 2465 for (GLsizei ii = 0; ii < count; ++ii) { | |
| 2466 str[ii] = bucket_data + total_size.ValueOrDefault(0); | |
| 2467 total_size += length[ii]; | |
| 2468 total_size += 1; // NUL char at the end of each char array. | |
| 2469 if (!total_size.IsValid() || total_size.ValueOrDefault(0) > bucket_size || | |
| 2470 str[ii][length[ii]] != 0) { | |
| 2471 return error::kInvalidArguments; | |
| 2472 } | |
| 2473 } | |
| 2474 if (total_size.ValueOrDefault(0) != bucket_size) { | |
| 2475 return error::kInvalidArguments; | |
| 2476 } | |
| 2477 DoShaderSource(shader, count, str, length); | 2450 DoShaderSource(shader, count, str, length); |
| 2478 return error::kNoError; | 2451 return error::kNoError; |
| 2479 } | 2452 } |
| 2480 | 2453 |
| 2481 error::Error GLES2DecoderImpl::HandleStencilFunc(uint32_t immediate_data_size, | 2454 error::Error GLES2DecoderImpl::HandleStencilFunc(uint32_t immediate_data_size, |
| 2482 const void* cmd_data) { | 2455 const void* cmd_data) { |
| 2483 const gles2::cmds::StencilFunc& c = | 2456 const gles2::cmds::StencilFunc& c = |
| 2484 *static_cast<const gles2::cmds::StencilFunc*>(cmd_data); | 2457 *static_cast<const gles2::cmds::StencilFunc*>(cmd_data); |
| 2485 (void)c; | 2458 (void)c; |
| 2486 GLenum func = static_cast<GLenum>(c.func); | 2459 GLenum func = static_cast<GLenum>(c.func); |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2810 uint32_t immediate_data_size, | 2783 uint32_t immediate_data_size, |
| 2811 const void* cmd_data) { | 2784 const void* cmd_data) { |
| 2812 if (!unsafe_es3_apis_enabled()) | 2785 if (!unsafe_es3_apis_enabled()) |
| 2813 return error::kUnknownCommand; | 2786 return error::kUnknownCommand; |
| 2814 const gles2::cmds::TransformFeedbackVaryingsBucket& c = | 2787 const gles2::cmds::TransformFeedbackVaryingsBucket& c = |
| 2815 *static_cast<const gles2::cmds::TransformFeedbackVaryingsBucket*>( | 2788 *static_cast<const gles2::cmds::TransformFeedbackVaryingsBucket*>( |
| 2816 cmd_data); | 2789 cmd_data); |
| 2817 (void)c; | 2790 (void)c; |
| 2818 GLuint program = static_cast<GLuint>(c.program); | 2791 GLuint program = static_cast<GLuint>(c.program); |
| 2819 | 2792 |
| 2820 const size_t kMinBucketSize = sizeof(GLint); | |
| 2821 // Each string has at least |length| in the header and a NUL character. | |
| 2822 const size_t kMinStringSize = sizeof(GLint) + 1; | |
| 2823 Bucket* bucket = GetBucket(c.varyings_bucket_id); | 2793 Bucket* bucket = GetBucket(c.varyings_bucket_id); |
| 2824 if (!bucket) { | 2794 if (!bucket) { |
| 2825 return error::kInvalidArguments; | 2795 return error::kInvalidArguments; |
| 2826 } | 2796 } |
| 2827 const size_t bucket_size = bucket->size(); | 2797 GLsizei count = 0; |
| 2828 if (bucket_size < kMinBucketSize) { | 2798 std::vector<char*> strs; |
| 2799 std::vector<GLint> len; |
| 2800 if (!bucket->GetAsStrings(&count, &strs, &len)) { |
| 2829 return error::kInvalidArguments; | 2801 return error::kInvalidArguments; |
| 2830 } | 2802 } |
| 2831 const char* bucket_data = bucket->GetDataAs<const char*>(0, bucket_size); | 2803 const char** varyings = |
| 2832 const GLint* header = reinterpret_cast<const GLint*>(bucket_data); | 2804 strs.size() > 0 ? const_cast<const char**>(&strs[0]) : NULL; |
| 2833 GLsizei count = static_cast<GLsizei>(header[0]); | 2805 const GLint* length = |
| 2834 if (count < 0) { | 2806 len.size() > 0 ? const_cast<const GLint*>(&len[0]) : NULL; |
| 2835 return error::kInvalidArguments; | 2807 (void)length; |
| 2836 } | |
| 2837 const size_t max_count = (bucket_size - kMinBucketSize) / kMinStringSize; | |
| 2838 if (max_count < static_cast<size_t>(count)) { | |
| 2839 return error::kInvalidArguments; | |
| 2840 } | |
| 2841 const GLint* length = header + 1; | |
| 2842 scoped_ptr<const char* []> strs; | |
| 2843 if (count > 0) | |
| 2844 strs.reset(new const char* [count]); | |
| 2845 const char** varyings = strs.get(); | |
| 2846 base::CheckedNumeric<size_t> total_size = sizeof(GLint); | |
| 2847 total_size *= count + 1; // Header size. | |
| 2848 if (!total_size.IsValid()) | |
| 2849 return error::kInvalidArguments; | |
| 2850 for (GLsizei ii = 0; ii < count; ++ii) { | |
| 2851 varyings[ii] = bucket_data + total_size.ValueOrDefault(0); | |
| 2852 total_size += length[ii]; | |
| 2853 total_size += 1; // NUL char at the end of each char array. | |
| 2854 if (!total_size.IsValid() || total_size.ValueOrDefault(0) > bucket_size || | |
| 2855 varyings[ii][length[ii]] != 0) { | |
| 2856 return error::kInvalidArguments; | |
| 2857 } | |
| 2858 } | |
| 2859 if (total_size.ValueOrDefault(0) != bucket_size) { | |
| 2860 return error::kInvalidArguments; | |
| 2861 } | |
| 2862 GLenum buffermode = static_cast<GLenum>(c.buffermode); | 2808 GLenum buffermode = static_cast<GLenum>(c.buffermode); |
| 2863 DoTransformFeedbackVaryings(program, count, varyings, buffermode); | 2809 DoTransformFeedbackVaryings(program, count, varyings, buffermode); |
| 2864 return error::kNoError; | 2810 return error::kNoError; |
| 2865 } | 2811 } |
| 2866 | 2812 |
| 2867 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, | 2813 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, |
| 2868 const void* cmd_data) { | 2814 const void* cmd_data) { |
| 2869 const gles2::cmds::Uniform1f& c = | 2815 const gles2::cmds::Uniform1f& c = |
| 2870 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); | 2816 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); |
| 2871 (void)c; | 2817 (void)c; |
| (...skipping 2001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4873 state_.ignore_cached_state) { | 4819 state_.ignore_cached_state) { |
| 4874 framebuffer_state_.clear_state_dirty = true; | 4820 framebuffer_state_.clear_state_dirty = true; |
| 4875 } | 4821 } |
| 4876 return false; | 4822 return false; |
| 4877 default: | 4823 default: |
| 4878 NOTREACHED(); | 4824 NOTREACHED(); |
| 4879 return false; | 4825 return false; |
| 4880 } | 4826 } |
| 4881 } | 4827 } |
| 4882 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 4828 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
| OLD | NEW |