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 2788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2799 GLenum target = static_cast<GLenum>(c.target); | 2799 GLenum target = static_cast<GLenum>(c.target); |
2800 GLsizei levels = static_cast<GLsizei>(c.levels); | 2800 GLsizei levels = static_cast<GLsizei>(c.levels); |
2801 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); | 2801 GLenum internalFormat = static_cast<GLenum>(c.internalFormat); |
2802 GLsizei width = static_cast<GLsizei>(c.width); | 2802 GLsizei width = static_cast<GLsizei>(c.width); |
2803 GLsizei height = static_cast<GLsizei>(c.height); | 2803 GLsizei height = static_cast<GLsizei>(c.height); |
2804 GLsizei depth = static_cast<GLsizei>(c.depth); | 2804 GLsizei depth = static_cast<GLsizei>(c.depth); |
2805 glTexStorage3D(target, levels, internalFormat, width, height, depth); | 2805 glTexStorage3D(target, levels, internalFormat, width, height, depth); |
2806 return error::kNoError; | 2806 return error::kNoError; |
2807 } | 2807 } |
2808 | 2808 |
| 2809 error::Error GLES2DecoderImpl::HandleTransformFeedbackVaryingsBucket( |
| 2810 uint32_t immediate_data_size, |
| 2811 const void* cmd_data) { |
| 2812 if (!unsafe_es3_apis_enabled()) |
| 2813 return error::kUnknownCommand; |
| 2814 const gles2::cmds::TransformFeedbackVaryingsBucket& c = |
| 2815 *static_cast<const gles2::cmds::TransformFeedbackVaryingsBucket*>( |
| 2816 cmd_data); |
| 2817 (void)c; |
| 2818 GLuint program = static_cast<GLuint>(c.program); |
| 2819 |
| 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); |
| 2824 if (!bucket) { |
| 2825 return error::kInvalidArguments; |
| 2826 } |
| 2827 const size_t bucket_size = bucket->size(); |
| 2828 if (bucket_size < kMinBucketSize) { |
| 2829 return error::kInvalidArguments; |
| 2830 } |
| 2831 const char* bucket_data = bucket->GetDataAs<const char*>(0, bucket_size); |
| 2832 const GLint* header = reinterpret_cast<const GLint*>(bucket_data); |
| 2833 GLsizei count = static_cast<GLsizei>(header[0]); |
| 2834 if (count < 0) { |
| 2835 return error::kInvalidArguments; |
| 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); |
| 2863 DoTransformFeedbackVaryings(program, count, varyings, buffermode); |
| 2864 return error::kNoError; |
| 2865 } |
| 2866 |
2809 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, | 2867 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, |
2810 const void* cmd_data) { | 2868 const void* cmd_data) { |
2811 const gles2::cmds::Uniform1f& c = | 2869 const gles2::cmds::Uniform1f& c = |
2812 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); | 2870 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); |
2813 (void)c; | 2871 (void)c; |
2814 GLint location = static_cast<GLint>(c.location); | 2872 GLint location = static_cast<GLint>(c.location); |
2815 GLfloat x = static_cast<GLfloat>(c.x); | 2873 GLfloat x = static_cast<GLfloat>(c.x); |
2816 GLfloat temp[1] = { | 2874 GLfloat temp[1] = { |
2817 x, | 2875 x, |
2818 }; | 2876 }; |
(...skipping 1996 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4815 state_.ignore_cached_state) { | 4873 state_.ignore_cached_state) { |
4816 framebuffer_state_.clear_state_dirty = true; | 4874 framebuffer_state_.clear_state_dirty = true; |
4817 } | 4875 } |
4818 return false; | 4876 return false; |
4819 default: | 4877 default: |
4820 NOTREACHED(); | 4878 NOTREACHED(); |
4821 return false; | 4879 return false; |
4822 } | 4880 } |
4823 } | 4881 } |
4824 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ | 4882 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ |
OLD | NEW |