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 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1740 } | 1740 } |
1741 } else { | 1741 } else { |
1742 GPU_CLIENT_LOG(" " << ii << ": NULL"); | 1742 GPU_CLIENT_LOG(" " << ii << ": NULL"); |
1743 } | 1743 } |
1744 } | 1744 } |
1745 }); | 1745 }); |
1746 if (count < 0) { | 1746 if (count < 0) { |
1747 SetGLError(GL_INVALID_VALUE, "glShaderSource", "count < 0"); | 1747 SetGLError(GL_INVALID_VALUE, "glShaderSource", "count < 0"); |
1748 return; | 1748 return; |
1749 } | 1749 } |
1750 // Compute the total size. | 1750 |
1751 base::CheckedNumeric<size_t> total_size = count; | 1751 if (!PackStringsToBucket(count, str, length, "glShaderSource")) { |
1752 total_size += 1; | |
1753 total_size *= sizeof(GLint); | |
1754 if (!total_size.IsValid()) { | |
1755 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow"); | |
1756 return; | 1752 return; |
1757 } | 1753 } |
1758 size_t header_size = total_size.ValueOrDefault(0); | |
1759 std::vector<GLint> header(count + 1); | |
1760 header[0] = static_cast<GLint>(count); | |
1761 for (GLsizei ii = 0; ii < count; ++ii) { | |
1762 GLint len = 0; | |
1763 if (str[ii]) { | |
1764 len = (length && length[ii] >= 0) | |
1765 ? length[ii] | |
1766 : base::checked_cast<GLint>(strlen(str[ii])); | |
1767 } | |
1768 total_size += len; | |
1769 total_size += 1; // NULL at the end of each char array. | |
1770 if (!total_size.IsValid()) { | |
1771 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow"); | |
1772 return; | |
1773 } | |
1774 header[ii + 1] = len; | |
1775 } | |
1776 // Pack data into a bucket on the service. | |
1777 helper_->SetBucketSize(kResultBucketId, total_size.ValueOrDefault(0)); | |
1778 size_t offset = 0; | |
1779 for (GLsizei ii = 0; ii <= count; ++ii) { | |
1780 const char* src = | |
1781 (ii == 0) ? reinterpret_cast<const char*>(&header[0]) : str[ii - 1]; | |
1782 base::CheckedNumeric<size_t> checked_size = | |
1783 (ii == 0) ? header_size : static_cast<size_t>(header[ii]); | |
1784 if (ii > 0) { | |
1785 checked_size += 1; // NULL in the end. | |
1786 } | |
1787 if (!checked_size.IsValid()) { | |
1788 SetGLError(GL_INVALID_VALUE, "glShaderSource", "overflow"); | |
1789 return; | |
1790 } | |
1791 size_t size = checked_size.ValueOrDefault(0); | |
1792 while (size) { | |
1793 ScopedTransferBufferPtr buffer(size, helper_, transfer_buffer_); | |
1794 if (!buffer.valid() || buffer.size() == 0) { | |
1795 SetGLError(GL_OUT_OF_MEMORY, "glShaderSource", "too large"); | |
1796 return; | |
1797 } | |
1798 size_t copy_size = buffer.size(); | |
1799 if (ii > 0 && buffer.size() == size) | |
1800 --copy_size; | |
1801 if (copy_size) | |
1802 memcpy(buffer.address(), src, copy_size); | |
1803 if (copy_size < buffer.size()) { | |
1804 // Append NULL in the end. | |
1805 DCHECK(copy_size + 1 == buffer.size()); | |
1806 char* str = reinterpret_cast<char*>(buffer.address()); | |
1807 str[copy_size] = 0; | |
1808 } | |
1809 helper_->SetBucketData(kResultBucketId, offset, buffer.size(), | |
1810 buffer.shm_id(), buffer.offset()); | |
1811 offset += buffer.size(); | |
1812 src += buffer.size(); | |
1813 size -= buffer.size(); | |
1814 } | |
1815 } | |
1816 DCHECK_EQ(total_size.ValueOrDefault(0), offset); | |
1817 helper_->ShaderSourceBucket(shader, kResultBucketId); | 1754 helper_->ShaderSourceBucket(shader, kResultBucketId); |
1818 helper_->SetBucketSize(kResultBucketId, 0); | 1755 helper_->SetBucketSize(kResultBucketId, 0); |
1819 CheckGLError(); | 1756 CheckGLError(); |
1820 } | 1757 } |
1821 | 1758 |
1822 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { | 1759 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { |
1823 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1760 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1824 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" | 1761 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" |
1825 << GLES2Util::GetStringCmpFunction(func) << ", " << ref | 1762 << GLES2Util::GetStringCmpFunction(func) << ", " << ref |
1826 << ", " << mask << ")"); | 1763 << ", " << mask << ")"); |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1983 GPU_CLIENT_LOG(" " << ii << ": ---\n" << varyings[ii] << "\n---"); | 1920 GPU_CLIENT_LOG(" " << ii << ": ---\n" << varyings[ii] << "\n---"); |
1984 } else { | 1921 } else { |
1985 GPU_CLIENT_LOG(" " << ii << ": NULL"); | 1922 GPU_CLIENT_LOG(" " << ii << ": NULL"); |
1986 } | 1923 } |
1987 } | 1924 } |
1988 }); | 1925 }); |
1989 if (count < 0) { | 1926 if (count < 0) { |
1990 SetGLError(GL_INVALID_VALUE, "glTransformFeedbackVaryings", "count < 0"); | 1927 SetGLError(GL_INVALID_VALUE, "glTransformFeedbackVaryings", "count < 0"); |
1991 return; | 1928 return; |
1992 } | 1929 } |
1993 // Compute the total size. | 1930 |
1994 base::CheckedNumeric<size_t> total_size = count; | 1931 if (!PackStringsToBucket(count, varyings, NULL, |
1995 total_size += 1; | 1932 "glTransformFeedbackVaryings")) { |
1996 total_size *= sizeof(GLint); | |
1997 if (!total_size.IsValid()) { | |
1998 SetGLError(GL_INVALID_VALUE, "glTransformFeedbackVaryings", "overflow"); | |
1999 return; | 1933 return; |
2000 } | 1934 } |
2001 size_t header_size = total_size.ValueOrDefault(0); | |
2002 std::vector<GLint> header(count + 1); | |
2003 header[0] = static_cast<GLint>(count); | |
2004 for (GLsizei ii = 0; ii < count; ++ii) { | |
2005 GLint len = 0; | |
2006 if (varyings[ii]) { | |
2007 len = static_cast<GLint>(strlen(varyings[ii])); | |
2008 } | |
2009 total_size += len; | |
2010 total_size += 1; // NULL at the end of each char array. | |
2011 if (!total_size.IsValid()) { | |
2012 SetGLError(GL_INVALID_VALUE, "glTransformFeedbackVaryings", "overflow"); | |
2013 return; | |
2014 } | |
2015 header[ii + 1] = len; | |
2016 } | |
2017 // Pack data into a bucket on the service. | |
2018 helper_->SetBucketSize(kResultBucketId, total_size.ValueOrDefault(0)); | |
2019 size_t offset = 0; | |
2020 for (GLsizei ii = 0; ii <= count; ++ii) { | |
2021 const char* src = (ii == 0) ? reinterpret_cast<const char*>(&header[0]) | |
2022 : varyings[ii - 1]; | |
2023 base::CheckedNumeric<size_t> checked_size = | |
2024 (ii == 0) ? header_size : static_cast<size_t>(header[ii]); | |
2025 if (ii > 0) { | |
2026 checked_size += 1; // NULL in the end. | |
2027 } | |
2028 if (!checked_size.IsValid()) { | |
2029 SetGLError(GL_INVALID_VALUE, "glTransformFeedbackVaryings", "overflow"); | |
2030 return; | |
2031 } | |
2032 size_t size = checked_size.ValueOrDefault(0); | |
2033 while (size) { | |
2034 ScopedTransferBufferPtr buffer(size, helper_, transfer_buffer_); | |
2035 if (!buffer.valid() || buffer.size() == 0) { | |
2036 SetGLError(GL_OUT_OF_MEMORY, "glTransformFeedbackVaryings", | |
2037 "too large"); | |
2038 return; | |
2039 } | |
2040 size_t copy_size = buffer.size(); | |
2041 if (ii > 0 && buffer.size() == size) | |
2042 --copy_size; | |
2043 if (copy_size) | |
2044 memcpy(buffer.address(), src, copy_size); | |
2045 if (copy_size < buffer.size()) { | |
2046 // Append NULL in the end. | |
2047 DCHECK(copy_size + 1 == buffer.size()); | |
2048 char* str = reinterpret_cast<char*>(buffer.address()); | |
2049 str[copy_size] = 0; | |
2050 } | |
2051 helper_->SetBucketData(kResultBucketId, offset, buffer.size(), | |
2052 buffer.shm_id(), buffer.offset()); | |
2053 offset += buffer.size(); | |
2054 src += buffer.size(); | |
2055 size -= buffer.size(); | |
2056 } | |
2057 } | |
2058 DCHECK_EQ(total_size.ValueOrDefault(0), offset); | |
2059 helper_->TransformFeedbackVaryingsBucket(program, kResultBucketId, | 1935 helper_->TransformFeedbackVaryingsBucket(program, kResultBucketId, |
2060 buffermode); | 1936 buffermode); |
2061 helper_->SetBucketSize(kResultBucketId, 0); | 1937 helper_->SetBucketSize(kResultBucketId, 0); |
2062 CheckGLError(); | 1938 CheckGLError(); |
2063 } | 1939 } |
2064 | 1940 |
2065 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { | 1941 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { |
2066 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1942 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
2067 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " | 1943 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " |
2068 << x << ")"); | 1944 << x << ")"); |
(...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3448 | 3324 |
3449 void GLES2Implementation::BlendBarrierKHR() { | 3325 void GLES2Implementation::BlendBarrierKHR() { |
3450 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 3326 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
3451 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendBarrierKHR(" | 3327 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendBarrierKHR(" |
3452 << ")"); | 3328 << ")"); |
3453 helper_->BlendBarrierKHR(); | 3329 helper_->BlendBarrierKHR(); |
3454 CheckGLError(); | 3330 CheckGLError(); |
3455 } | 3331 } |
3456 | 3332 |
3457 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ | 3333 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
OLD | NEW |