| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """code generator for GLES2 command buffers.""" | 6 """code generator for GLES2 command buffers.""" |
| 7 | 7 |
| 8 import itertools | 8 import itertools |
| 9 import os | 9 import os |
| 10 import os.path | 10 import os.path |
| (...skipping 1637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1648 'impl_func': False, | 1648 'impl_func': False, |
| 1649 'expectation': False, | 1649 'expectation': False, |
| 1650 'immediate': False, | 1650 'immediate': False, |
| 1651 'extension': True, | 1651 'extension': True, |
| 1652 'chromium': True, | 1652 'chromium': True, |
| 1653 }, | 1653 }, |
| 1654 'GetActiveAttrib': { | 1654 'GetActiveAttrib': { |
| 1655 'type': 'Custom', | 1655 'type': 'Custom', |
| 1656 'immediate': False, | 1656 'immediate': False, |
| 1657 'cmd_args': | 1657 'cmd_args': |
| 1658 'GLidProgram program, GLuint index, uint32 name_bucket_id, ' | 1658 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' |
| 1659 'void* result', | 1659 'void* result', |
| 1660 'result': [ | 1660 'result': [ |
| 1661 'int32 success', | 1661 'int32_t success', |
| 1662 'int32 size', | 1662 'int32_t size', |
| 1663 'uint32 type', | 1663 'uint32_t type', |
| 1664 ], | 1664 ], |
| 1665 }, | 1665 }, |
| 1666 'GetActiveUniform': { | 1666 'GetActiveUniform': { |
| 1667 'type': 'Custom', | 1667 'type': 'Custom', |
| 1668 'immediate': False, | 1668 'immediate': False, |
| 1669 'cmd_args': | 1669 'cmd_args': |
| 1670 'GLidProgram program, GLuint index, uint32 name_bucket_id, ' | 1670 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' |
| 1671 'void* result', | 1671 'void* result', |
| 1672 'result': [ | 1672 'result': [ |
| 1673 'int32 success', | 1673 'int32_t success', |
| 1674 'int32 size', | 1674 'int32_t size', |
| 1675 'uint32 type', | 1675 'uint32_t type', |
| 1676 ], | 1676 ], |
| 1677 }, | 1677 }, |
| 1678 'GetAttachedShaders': { | 1678 'GetAttachedShaders': { |
| 1679 'type': 'Custom', | 1679 'type': 'Custom', |
| 1680 'immediate': False, | 1680 'immediate': False, |
| 1681 'cmd_args': 'GLidProgram program, void* result, uint32 result_size', | 1681 'cmd_args': 'GLidProgram program, void* result, uint32_t result_size', |
| 1682 'result': ['SizedResult<GLuint>'], | 1682 'result': ['SizedResult<GLuint>'], |
| 1683 }, | 1683 }, |
| 1684 'GetAttribLocation': { | 1684 'GetAttribLocation': { |
| 1685 'type': 'HandWritten', | 1685 'type': 'HandWritten', |
| 1686 'immediate': False, | 1686 'immediate': False, |
| 1687 'bucket': True, | 1687 'bucket': True, |
| 1688 'needs_size': True, | 1688 'needs_size': True, |
| 1689 'cmd_args': | 1689 'cmd_args': |
| 1690 'GLidProgram program, const char* name, NonImmediate GLint* location', | 1690 'GLidProgram program, const char* name, NonImmediate GLint* location', |
| 1691 'result': ['GLint'], | 1691 'result': ['GLint'], |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1754 'expectation': False, | 1754 'expectation': False, |
| 1755 }, | 1755 }, |
| 1756 'GetProgramInfoCHROMIUM': { | 1756 'GetProgramInfoCHROMIUM': { |
| 1757 'type': 'Custom', | 1757 'type': 'Custom', |
| 1758 'immediate': False, | 1758 'immediate': False, |
| 1759 'expectation': False, | 1759 'expectation': False, |
| 1760 'impl_func': False, | 1760 'impl_func': False, |
| 1761 'extension': True, | 1761 'extension': True, |
| 1762 'chromium': True, | 1762 'chromium': True, |
| 1763 'client_test': False, | 1763 'client_test': False, |
| 1764 'cmd_args': 'GLidProgram program, uint32 bucket_id', | 1764 'cmd_args': 'GLidProgram program, uint32_t bucket_id', |
| 1765 'result': [ | 1765 'result': [ |
| 1766 'uint32 link_status', | 1766 'uint32_t link_status', |
| 1767 'uint32 num_attribs', | 1767 'uint32_t num_attribs', |
| 1768 'uint32 num_uniforms', | 1768 'uint32_t num_uniforms', |
| 1769 ], | 1769 ], |
| 1770 }, | 1770 }, |
| 1771 'GetProgramInfoLog': { | 1771 'GetProgramInfoLog': { |
| 1772 'type': 'STRn', | 1772 'type': 'STRn', |
| 1773 'expectation': False, | 1773 'expectation': False, |
| 1774 }, | 1774 }, |
| 1775 'GetRenderbufferParameteriv': { | 1775 'GetRenderbufferParameteriv': { |
| 1776 'type': 'GETn', | 1776 'type': 'GETn', |
| 1777 'decoder_func': 'DoGetRenderbufferParameteriv', | 1777 'decoder_func': 'DoGetRenderbufferParameteriv', |
| 1778 'gl_test_func': 'glGetRenderbufferParameterivEXT', | 1778 'gl_test_func': 'glGetRenderbufferParameterivEXT', |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1789 'get_len_enum': 'GL_INFO_LOG_LENGTH', | 1789 'get_len_enum': 'GL_INFO_LOG_LENGTH', |
| 1790 'unit_test': False, | 1790 'unit_test': False, |
| 1791 }, | 1791 }, |
| 1792 'GetShaderPrecisionFormat': { | 1792 'GetShaderPrecisionFormat': { |
| 1793 'type': 'Custom', | 1793 'type': 'Custom', |
| 1794 'immediate': False, | 1794 'immediate': False, |
| 1795 'cmd_args': | 1795 'cmd_args': |
| 1796 'GLenumShaderType shadertype, GLenumShaderPrecision precisiontype, ' | 1796 'GLenumShaderType shadertype, GLenumShaderPrecision precisiontype, ' |
| 1797 'void* result', | 1797 'void* result', |
| 1798 'result': [ | 1798 'result': [ |
| 1799 'int32 success', | 1799 'int32_t success', |
| 1800 'int32 min_range', | 1800 'int32_t min_range', |
| 1801 'int32 max_range', | 1801 'int32_t max_range', |
| 1802 'int32 precision', | 1802 'int32_t precision', |
| 1803 ], | 1803 ], |
| 1804 }, | 1804 }, |
| 1805 'GetShaderSource': { | 1805 'GetShaderSource': { |
| 1806 'type': 'STRn', | 1806 'type': 'STRn', |
| 1807 'get_len_func': 'DoGetShaderiv', | 1807 'get_len_func': 'DoGetShaderiv', |
| 1808 'get_len_enum': 'GL_SHADER_SOURCE_LENGTH', | 1808 'get_len_enum': 'GL_SHADER_SOURCE_LENGTH', |
| 1809 'unit_test': False, | 1809 'unit_test': False, |
| 1810 'client_test': False, | 1810 'client_test': False, |
| 1811 }, | 1811 }, |
| 1812 'GetString': { | 1812 'GetString': { |
| 1813 'type': 'Custom', | 1813 'type': 'Custom', |
| 1814 'client_test': False, | 1814 'client_test': False, |
| 1815 'cmd_args': 'GLenumStringType name, uint32 bucket_id', | 1815 'cmd_args': 'GLenumStringType name, uint32_t bucket_id', |
| 1816 }, | 1816 }, |
| 1817 'GetTexParameterfv': { | 1817 'GetTexParameterfv': { |
| 1818 'type': 'GETn', | 1818 'type': 'GETn', |
| 1819 'decoder_func': 'DoGetTexParameterfv', | 1819 'decoder_func': 'DoGetTexParameterfv', |
| 1820 'result': ['SizedResult<GLfloat>'] | 1820 'result': ['SizedResult<GLfloat>'] |
| 1821 }, | 1821 }, |
| 1822 'GetTexParameteriv': { | 1822 'GetTexParameteriv': { |
| 1823 'type': 'GETn', | 1823 'type': 'GETn', |
| 1824 'decoder_func': 'DoGetTexParameteriv', | 1824 'decoder_func': 'DoGetTexParameteriv', |
| 1825 'result': ['SizedResult<GLint>'] | 1825 'result': ['SizedResult<GLint>'] |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1990 '// ReadPixels has the result separated from the pixel buffer so that\n' | 1990 '// ReadPixels has the result separated from the pixel buffer so that\n' |
| 1991 '// it is easier to specify the result going to some specific place\n' | 1991 '// it is easier to specify the result going to some specific place\n' |
| 1992 '// that exactly fits the rectangle of pixels.\n', | 1992 '// that exactly fits the rectangle of pixels.\n', |
| 1993 'type': 'Custom', | 1993 'type': 'Custom', |
| 1994 'immediate': False, | 1994 'immediate': False, |
| 1995 'impl_func': False, | 1995 'impl_func': False, |
| 1996 'client_test': False, | 1996 'client_test': False, |
| 1997 'cmd_args': | 1997 'cmd_args': |
| 1998 'GLint x, GLint y, GLsizei width, GLsizei height, ' | 1998 'GLint x, GLint y, GLsizei width, GLsizei height, ' |
| 1999 'GLenumReadPixelFormat format, GLenumReadPixelType type, ' | 1999 'GLenumReadPixelFormat format, GLenumReadPixelType type, ' |
| 2000 'uint32 pixels_shm_id, uint32 pixels_shm_offset, ' | 2000 'uint32_t pixels_shm_id, uint32_t pixels_shm_offset, ' |
| 2001 'uint32 result_shm_id, uint32 result_shm_offset, ' | 2001 'uint32_t result_shm_id, uint32_t result_shm_offset, ' |
| 2002 'GLboolean async', | 2002 'GLboolean async', |
| 2003 'result': ['uint32'], | 2003 'result': ['uint32_t'], |
| 2004 'defer_reads': True, | 2004 'defer_reads': True, |
| 2005 }, | 2005 }, |
| 2006 'RegisterSharedIdsCHROMIUM': { | 2006 'RegisterSharedIdsCHROMIUM': { |
| 2007 'type': 'Custom', | 2007 'type': 'Custom', |
| 2008 'decoder_func': 'DoRegisterSharedIdsCHROMIUM', | 2008 'decoder_func': 'DoRegisterSharedIdsCHROMIUM', |
| 2009 'impl_func': False, | 2009 'impl_func': False, |
| 2010 'expectation': False, | 2010 'expectation': False, |
| 2011 'immediate': False, | 2011 'immediate': False, |
| 2012 'extension': True, | 2012 'extension': True, |
| 2013 'chromium': True, | 2013 'chromium': True, |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2248 'type': 'Custom', | 2248 'type': 'Custom', |
| 2249 'impl_func': False, | 2249 'impl_func': False, |
| 2250 'unit_test': False, | 2250 'unit_test': False, |
| 2251 'extension': True, | 2251 'extension': True, |
| 2252 'chromium': True, | 2252 'chromium': True, |
| 2253 }, | 2253 }, |
| 2254 'GetRequestableExtensionsCHROMIUM': { | 2254 'GetRequestableExtensionsCHROMIUM': { |
| 2255 'type': 'Custom', | 2255 'type': 'Custom', |
| 2256 'impl_func': False, | 2256 'impl_func': False, |
| 2257 'immediate': False, | 2257 'immediate': False, |
| 2258 'cmd_args': 'uint32 bucket_id', | 2258 'cmd_args': 'uint32_t bucket_id', |
| 2259 'extension': True, | 2259 'extension': True, |
| 2260 'chromium': True, | 2260 'chromium': True, |
| 2261 }, | 2261 }, |
| 2262 'RequestExtensionCHROMIUM': { | 2262 'RequestExtensionCHROMIUM': { |
| 2263 'type': 'Custom', | 2263 'type': 'Custom', |
| 2264 'impl_func': False, | 2264 'impl_func': False, |
| 2265 'immediate': False, | 2265 'immediate': False, |
| 2266 'client_test': False, | 2266 'client_test': False, |
| 2267 'cmd_args': 'uint32 bucket_id', | 2267 'cmd_args': 'uint32_t bucket_id', |
| 2268 'extension': True, | 2268 'extension': True, |
| 2269 'chromium': True, | 2269 'chromium': True, |
| 2270 }, | 2270 }, |
| 2271 'RateLimitOffscreenContextCHROMIUM': { | 2271 'RateLimitOffscreenContextCHROMIUM': { |
| 2272 'gen_cmd': False, | 2272 'gen_cmd': False, |
| 2273 'extension': True, | 2273 'extension': True, |
| 2274 'chromium': True, | 2274 'chromium': True, |
| 2275 'client_test': False, | 2275 'client_test': False, |
| 2276 }, | 2276 }, |
| 2277 'CreateStreamTextureCHROMIUM': { | 2277 'CreateStreamTextureCHROMIUM': { |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2489 'AsyncTexImage2DCHROMIUM': { | 2489 'AsyncTexImage2DCHROMIUM': { |
| 2490 'type': 'Manual', | 2490 'type': 'Manual', |
| 2491 'immediate': False, | 2491 'immediate': False, |
| 2492 'client_test': False, | 2492 'client_test': False, |
| 2493 'cmd_args': 'GLenumTextureTarget target, GLint level, ' | 2493 'cmd_args': 'GLenumTextureTarget target, GLint level, ' |
| 2494 'GLintTextureInternalFormat internalformat, ' | 2494 'GLintTextureInternalFormat internalformat, ' |
| 2495 'GLsizei width, GLsizei height, ' | 2495 'GLsizei width, GLsizei height, ' |
| 2496 'GLintTextureBorder border, ' | 2496 'GLintTextureBorder border, ' |
| 2497 'GLenumTextureFormat format, GLenumPixelType type, ' | 2497 'GLenumTextureFormat format, GLenumPixelType type, ' |
| 2498 'const void* pixels, ' | 2498 'const void* pixels, ' |
| 2499 'uint32 async_upload_token, ' | 2499 'uint32_t async_upload_token, ' |
| 2500 'void* sync_data', | 2500 'void* sync_data', |
| 2501 'extension': True, | 2501 'extension': True, |
| 2502 'chromium': True, | 2502 'chromium': True, |
| 2503 }, | 2503 }, |
| 2504 'AsyncTexSubImage2DCHROMIUM': { | 2504 'AsyncTexSubImage2DCHROMIUM': { |
| 2505 'type': 'Manual', | 2505 'type': 'Manual', |
| 2506 'immediate': False, | 2506 'immediate': False, |
| 2507 'client_test': False, | 2507 'client_test': False, |
| 2508 'cmd_args': 'GLenumTextureTarget target, GLint level, ' | 2508 'cmd_args': 'GLenumTextureTarget target, GLint level, ' |
| 2509 'GLint xoffset, GLint yoffset, ' | 2509 'GLint xoffset, GLint yoffset, ' |
| 2510 'GLsizei width, GLsizei height, ' | 2510 'GLsizei width, GLsizei height, ' |
| 2511 'GLenumTextureFormat format, GLenumPixelType type, ' | 2511 'GLenumTextureFormat format, GLenumPixelType type, ' |
| 2512 'const void* data, ' | 2512 'const void* data, ' |
| 2513 'uint32 async_upload_token, ' | 2513 'uint32_t async_upload_token, ' |
| 2514 'void* sync_data', | 2514 'void* sync_data', |
| 2515 'extension': True, | 2515 'extension': True, |
| 2516 'chromium': True, | 2516 'chromium': True, |
| 2517 }, | 2517 }, |
| 2518 'WaitAsyncTexImage2DCHROMIUM': { | 2518 'WaitAsyncTexImage2DCHROMIUM': { |
| 2519 'type': 'Manual', | 2519 'type': 'Manual', |
| 2520 'immediate': False, | 2520 'immediate': False, |
| 2521 'client_test': False, | 2521 'client_test': False, |
| 2522 'extension': True, | 2522 'extension': True, |
| 2523 'chromium': True, | 2523 'chromium': True, |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2796 """Writes a format test for a command.""" | 2796 """Writes a format test for a command.""" |
| 2797 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 2797 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
| 2798 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % | 2798 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 2799 (func.name, func.name)) | 2799 (func.name, func.name)) |
| 2800 file.Write(" void* next_cmd = cmd.Set(\n") | 2800 file.Write(" void* next_cmd = cmd.Set(\n") |
| 2801 file.Write(" &cmd") | 2801 file.Write(" &cmd") |
| 2802 args = func.GetCmdArgs() | 2802 args = func.GetCmdArgs() |
| 2803 for value, arg in enumerate(args): | 2803 for value, arg in enumerate(args): |
| 2804 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) | 2804 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) |
| 2805 file.Write(");\n") | 2805 file.Write(");\n") |
| 2806 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % | 2806 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" % |
| 2807 func.name) | 2807 func.name) |
| 2808 file.Write(" cmd.header.command);\n") | 2808 file.Write(" cmd.header.command);\n") |
| 2809 func.type_handler.WriteCmdSizeTest(func, file) | 2809 func.type_handler.WriteCmdSizeTest(func, file) |
| 2810 for value, arg in enumerate(args): | 2810 for value, arg in enumerate(args): |
| 2811 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 2811 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
| 2812 (arg.type, value + 11, arg.name)) | 2812 (arg.type, value + 11, arg.name)) |
| 2813 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 2813 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
| 2814 file.Write(" next_cmd, sizeof(cmd));\n") | 2814 file.Write(" next_cmd, sizeof(cmd));\n") |
| 2815 file.Write("}\n") | 2815 file.Write("}\n") |
| 2816 file.Write("\n") | 2816 file.Write("\n") |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2840 def WriteBucketHandlerImplementation (self, func, file): | 2840 def WriteBucketHandlerImplementation (self, func, file): |
| 2841 """Writes the handler impl for the bucket version of a command.""" | 2841 """Writes the handler impl for the bucket version of a command.""" |
| 2842 file.Write(" %s(%s);\n" % | 2842 file.Write(" %s(%s);\n" % |
| 2843 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 2843 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
| 2844 | 2844 |
| 2845 def WriteServiceImplementation(self, func, file): | 2845 def WriteServiceImplementation(self, func, file): |
| 2846 """Writes the service implementation for a command.""" | 2846 """Writes the service implementation for a command.""" |
| 2847 file.Write( | 2847 file.Write( |
| 2848 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2848 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 2849 file.Write( | 2849 file.Write( |
| 2850 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 2850 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2851 func.name) | 2851 func.name) |
| 2852 self.WriteHandlerDeferReadWrite(func, file); | 2852 self.WriteHandlerDeferReadWrite(func, file); |
| 2853 if len(func.GetOriginalArgs()) > 0: | 2853 if len(func.GetOriginalArgs()) > 0: |
| 2854 last_arg = func.GetLastOriginalArg() | 2854 last_arg = func.GetLastOriginalArg() |
| 2855 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2855 all_but_last_arg = func.GetOriginalArgs()[:-1] |
| 2856 for arg in all_but_last_arg: | 2856 for arg in all_but_last_arg: |
| 2857 arg.WriteGetCode(file) | 2857 arg.WriteGetCode(file) |
| 2858 self.WriteGetDataSizeCode(func, file) | 2858 self.WriteGetDataSizeCode(func, file) |
| 2859 last_arg.WriteGetCode(file) | 2859 last_arg.WriteGetCode(file) |
| 2860 func.WriteHandlerValidation(file) | 2860 func.WriteHandlerValidation(file) |
| 2861 func.WriteHandlerImplementation(file) | 2861 func.WriteHandlerImplementation(file) |
| 2862 file.Write(" return error::kNoError;\n") | 2862 file.Write(" return error::kNoError;\n") |
| 2863 file.Write("}\n") | 2863 file.Write("}\n") |
| 2864 file.Write("\n") | 2864 file.Write("\n") |
| 2865 | 2865 |
| 2866 def WriteImmediateServiceImplementation(self, func, file): | 2866 def WriteImmediateServiceImplementation(self, func, file): |
| 2867 """Writes the service implementation for an immediate version of command.""" | 2867 """Writes the service implementation for an immediate version of command.""" |
| 2868 file.Write( | 2868 file.Write( |
| 2869 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2869 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 2870 file.Write( | 2870 file.Write( |
| 2871 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 2871 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2872 func.name) | 2872 func.name) |
| 2873 self.WriteHandlerDeferReadWrite(func, file); | 2873 self.WriteHandlerDeferReadWrite(func, file); |
| 2874 last_arg = func.GetLastOriginalArg() | 2874 last_arg = func.GetLastOriginalArg() |
| 2875 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2875 all_but_last_arg = func.GetOriginalArgs()[:-1] |
| 2876 for arg in all_but_last_arg: | 2876 for arg in all_but_last_arg: |
| 2877 arg.WriteGetCode(file) | 2877 arg.WriteGetCode(file) |
| 2878 self.WriteGetDataSizeCode(func, file) | 2878 self.WriteGetDataSizeCode(func, file) |
| 2879 last_arg.WriteGetCode(file) | 2879 last_arg.WriteGetCode(file) |
| 2880 func.WriteHandlerValidation(file) | 2880 func.WriteHandlerValidation(file) |
| 2881 func.WriteHandlerImplementation(file) | 2881 func.WriteHandlerImplementation(file) |
| 2882 file.Write(" return error::kNoError;\n") | 2882 file.Write(" return error::kNoError;\n") |
| 2883 file.Write("}\n") | 2883 file.Write("}\n") |
| 2884 file.Write("\n") | 2884 file.Write("\n") |
| 2885 | 2885 |
| 2886 def WriteBucketServiceImplementation(self, func, file): | 2886 def WriteBucketServiceImplementation(self, func, file): |
| 2887 """Writes the service implementation for a bucket version of command.""" | 2887 """Writes the service implementation for a bucket version of command.""" |
| 2888 file.Write( | 2888 file.Write( |
| 2889 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 2889 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 2890 file.Write( | 2890 file.Write( |
| 2891 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 2891 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 2892 func.name) | 2892 func.name) |
| 2893 self.WriteHandlerDeferReadWrite(func, file); | 2893 self.WriteHandlerDeferReadWrite(func, file); |
| 2894 last_arg = func.GetLastOriginalArg() | 2894 last_arg = func.GetLastOriginalArg() |
| 2895 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2895 all_but_last_arg = func.GetOriginalArgs()[:-1] |
| 2896 for arg in all_but_last_arg: | 2896 for arg in all_but_last_arg: |
| 2897 arg.WriteGetCode(file) | 2897 arg.WriteGetCode(file) |
| 2898 self.WriteGetDataSizeCode(func, file) | 2898 self.WriteGetDataSizeCode(func, file) |
| 2899 last_arg.WriteGetCode(file) | 2899 last_arg.WriteGetCode(file) |
| 2900 func.WriteHandlerValidation(file) | 2900 func.WriteHandlerValidation(file) |
| 2901 func.WriteHandlerImplementation(file) | 2901 func.WriteHandlerImplementation(file) |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3195 """Writes the client side destintion initialization validation.""" | 3195 """Writes the client side destintion initialization validation.""" |
| 3196 for arg in func.GetOriginalArgs(): | 3196 for arg in func.GetOriginalArgs(): |
| 3197 arg.WriteDestinationInitalizationValidation(file, func) | 3197 arg.WriteDestinationInitalizationValidation(file, func) |
| 3198 | 3198 |
| 3199 def WriteTraceEvent(self, func, file): | 3199 def WriteTraceEvent(self, func, file): |
| 3200 file.Write(' TRACE_EVENT0("gpu", "GLES2Implementation::%s");\n' % | 3200 file.Write(' TRACE_EVENT0("gpu", "GLES2Implementation::%s");\n' % |
| 3201 func.original_name) | 3201 func.original_name) |
| 3202 | 3202 |
| 3203 def WriteImmediateCmdComputeSize(self, func, file): | 3203 def WriteImmediateCmdComputeSize(self, func, file): |
| 3204 """Writes the size computation code for the immediate version of a cmd.""" | 3204 """Writes the size computation code for the immediate version of a cmd.""" |
| 3205 file.Write(" static uint32 ComputeSize(uint32 size_in_bytes) {\n") | 3205 file.Write(" static uint32_t ComputeSize(uint32_t size_in_bytes) {\n") |
| 3206 file.Write(" return static_cast<uint32>(\n") | 3206 file.Write(" return static_cast<uint32_t>(\n") |
| 3207 file.Write(" sizeof(ValueType) + // NOLINT\n") | 3207 file.Write(" sizeof(ValueType) + // NOLINT\n") |
| 3208 file.Write(" RoundSizeToMultipleOfEntries(size_in_bytes));\n") | 3208 file.Write(" RoundSizeToMultipleOfEntries(size_in_bytes));\n") |
| 3209 file.Write(" }\n") | 3209 file.Write(" }\n") |
| 3210 file.Write("\n") | 3210 file.Write("\n") |
| 3211 | 3211 |
| 3212 def WriteImmediateCmdSetHeader(self, func, file): | 3212 def WriteImmediateCmdSetHeader(self, func, file): |
| 3213 """Writes the SetHeader function for the immediate version of a cmd.""" | 3213 """Writes the SetHeader function for the immediate version of a cmd.""" |
| 3214 file.Write(" void SetHeader(uint32 size_in_bytes) {\n") | 3214 file.Write(" void SetHeader(uint32_t size_in_bytes) {\n") |
| 3215 file.Write(" header.SetCmdByTotalSize<ValueType>(size_in_bytes);\n") | 3215 file.Write(" header.SetCmdByTotalSize<ValueType>(size_in_bytes);\n") |
| 3216 file.Write(" }\n") | 3216 file.Write(" }\n") |
| 3217 file.Write("\n") | 3217 file.Write("\n") |
| 3218 | 3218 |
| 3219 def WriteImmediateCmdInit(self, func, file): | 3219 def WriteImmediateCmdInit(self, func, file): |
| 3220 """Writes the Init function for the immediate version of a command.""" | 3220 """Writes the Init function for the immediate version of a command.""" |
| 3221 raise NotImplementedError(func.name) | 3221 raise NotImplementedError(func.name) |
| 3222 | 3222 |
| 3223 def WriteImmediateCmdSet(self, func, file): | 3223 def WriteImmediateCmdSet(self, func, file): |
| 3224 """Writes the Set function for the immediate version of a command.""" | 3224 """Writes the Set function for the immediate version of a command.""" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3236 """ | 3236 """ |
| 3237 file.Write(code % { | 3237 file.Write(code % { |
| 3238 "name": func.name, | 3238 "name": func.name, |
| 3239 "typed_args": func.MakeTypedCmdArgString(""), | 3239 "typed_args": func.MakeTypedCmdArgString(""), |
| 3240 "args": func.MakeCmdArgString(""), | 3240 "args": func.MakeCmdArgString(""), |
| 3241 }) | 3241 }) |
| 3242 | 3242 |
| 3243 def WriteImmediateCmdHelper(self, func, file): | 3243 def WriteImmediateCmdHelper(self, func, file): |
| 3244 """Writes the cmd helper definition for the immediate version of a cmd.""" | 3244 """Writes the cmd helper definition for the immediate version of a cmd.""" |
| 3245 code = """ void %(name)s(%(typed_args)s) { | 3245 code = """ void %(name)s(%(typed_args)s) { |
| 3246 const uint32 s = 0; // TODO(gman): compute correct size | 3246 const uint32_t s = 0; // TODO(gman): compute correct size |
| 3247 gles2::cmds::%(name)s* c = | 3247 gles2::cmds::%(name)s* c = |
| 3248 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(s); | 3248 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(s); |
| 3249 if (c) { | 3249 if (c) { |
| 3250 c->Init(%(args)s); | 3250 c->Init(%(args)s); |
| 3251 } | 3251 } |
| 3252 } | 3252 } |
| 3253 | 3253 |
| 3254 """ | 3254 """ |
| 3255 file.Write(code % { | 3255 file.Write(code % { |
| 3256 "name": func.name, | 3256 "name": func.name, |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3481 def WriteServiceUnitTest(self, func, file): | 3481 def WriteServiceUnitTest(self, func, file): |
| 3482 """Overrriden from TypeHandler.""" | 3482 """Overrriden from TypeHandler.""" |
| 3483 file.Write("// TODO(gman): %s\n\n" % func.name) | 3483 file.Write("// TODO(gman): %s\n\n" % func.name) |
| 3484 | 3484 |
| 3485 def WriteImmediateServiceUnitTest(self, func, file): | 3485 def WriteImmediateServiceUnitTest(self, func, file): |
| 3486 """Overrriden from TypeHandler.""" | 3486 """Overrriden from TypeHandler.""" |
| 3487 file.Write("// TODO(gman): %s\n\n" % func.name) | 3487 file.Write("// TODO(gman): %s\n\n" % func.name) |
| 3488 | 3488 |
| 3489 def WriteImmediateCmdGetTotalSize(self, func, file): | 3489 def WriteImmediateCmdGetTotalSize(self, func, file): |
| 3490 """Overrriden from TypeHandler.""" | 3490 """Overrriden from TypeHandler.""" |
| 3491 file.Write(" uint32 total_size = 0; // TODO(gman): get correct size.\n") | 3491 file.Write( |
| 3492 " uint32_t total_size = 0; // TODO(gman): get correct size.\n") |
| 3492 | 3493 |
| 3493 def WriteImmediateCmdInit(self, func, file): | 3494 def WriteImmediateCmdInit(self, func, file): |
| 3494 """Overrriden from TypeHandler.""" | 3495 """Overrriden from TypeHandler.""" |
| 3495 file.Write(" void Init(%s) {\n" % func.MakeTypedCmdArgString("_")) | 3496 file.Write(" void Init(%s) {\n" % func.MakeTypedCmdArgString("_")) |
| 3496 self.WriteImmediateCmdGetTotalSize(func, file) | 3497 self.WriteImmediateCmdGetTotalSize(func, file) |
| 3497 file.Write(" SetHeader(total_size);\n") | 3498 file.Write(" SetHeader(total_size);\n") |
| 3498 args = func.GetCmdArgs() | 3499 args = func.GetCmdArgs() |
| 3499 for arg in args: | 3500 for arg in args: |
| 3500 file.Write(" %s = _%s;\n" % (arg.name, arg.name)) | 3501 file.Write(" %s = _%s;\n" % (arg.name, arg.name)) |
| 3501 file.Write(" }\n") | 3502 file.Write(" }\n") |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3542 if func.return_type != "void": | 3543 if func.return_type != "void": |
| 3543 file.Write(" return 0;\n") | 3544 file.Write(" return 0;\n") |
| 3544 file.Write("}\n") | 3545 file.Write("}\n") |
| 3545 file.Write("\n") | 3546 file.Write("\n") |
| 3546 | 3547 |
| 3547 def WriteServiceImplementation(self, func, file): | 3548 def WriteServiceImplementation(self, func, file): |
| 3548 """Overrriden from TypeHandler.""" | 3549 """Overrriden from TypeHandler.""" |
| 3549 file.Write( | 3550 file.Write( |
| 3550 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 3551 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 3551 file.Write( | 3552 file.Write( |
| 3552 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 3553 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 3553 func.name) | 3554 func.name) |
| 3554 file.Write(" // TODO: for now this is a no-op\n") | 3555 file.Write(" // TODO: for now this is a no-op\n") |
| 3555 file.Write( | 3556 file.Write( |
| 3556 " LOCAL_SET_GL_ERROR(" | 3557 " LOCAL_SET_GL_ERROR(" |
| 3557 "GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" % | 3558 "GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" % |
| 3558 func.name) | 3559 func.name) |
| 3559 file.Write(" return error::kNoError;\n") | 3560 file.Write(" return error::kNoError;\n") |
| 3560 file.Write("}\n") | 3561 file.Write("}\n") |
| 3561 file.Write("\n") | 3562 file.Write("\n") |
| 3562 | 3563 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3695 func.cmd_args = func.cmd_args[:-1] | 3696 func.cmd_args = func.cmd_args[:-1] |
| 3696 func.AddCmdArg(Argument('bucket_id', 'GLuint')) | 3697 func.AddCmdArg(Argument('bucket_id', 'GLuint')) |
| 3697 | 3698 |
| 3698 def WriteGetDataSizeCode(self, func, file): | 3699 def WriteGetDataSizeCode(self, func, file): |
| 3699 """Overrriden from TypeHandler.""" | 3700 """Overrriden from TypeHandler.""" |
| 3700 # TODO(gman): Move this data to _FUNCTION_INFO? | 3701 # TODO(gman): Move this data to _FUNCTION_INFO? |
| 3701 name = func.name | 3702 name = func.name |
| 3702 if name.endswith("Immediate"): | 3703 if name.endswith("Immediate"): |
| 3703 name = name[0:-9] | 3704 name = name[0:-9] |
| 3704 if name == 'BufferData' or name == 'BufferSubData': | 3705 if name == 'BufferData' or name == 'BufferSubData': |
| 3705 file.Write(" uint32 data_size = size;\n") | 3706 file.Write(" uint32_t data_size = size;\n") |
| 3706 elif (name == 'CompressedTexImage2D' or | 3707 elif (name == 'CompressedTexImage2D' or |
| 3707 name == 'CompressedTexSubImage2D'): | 3708 name == 'CompressedTexSubImage2D'): |
| 3708 file.Write(" uint32 data_size = imageSize;\n") | 3709 file.Write(" uint32_t data_size = imageSize;\n") |
| 3709 elif (name == 'CompressedTexSubImage2DBucket'): | 3710 elif (name == 'CompressedTexSubImage2DBucket'): |
| 3710 file.Write(" Bucket* bucket = GetBucket(c.bucket_id);\n") | 3711 file.Write(" Bucket* bucket = GetBucket(c.bucket_id);\n") |
| 3711 file.Write(" uint32 data_size = bucket->size();\n") | 3712 file.Write(" uint32_t data_size = bucket->size();\n") |
| 3712 file.Write(" GLsizei imageSize = data_size;\n") | 3713 file.Write(" GLsizei imageSize = data_size;\n") |
| 3713 elif name == 'TexImage2D' or name == 'TexSubImage2D': | 3714 elif name == 'TexImage2D' or name == 'TexSubImage2D': |
| 3714 code = """ uint32 data_size; | 3715 code = """ uint32_t data_size; |
| 3715 if (!GLES2Util::ComputeImageDataSize( | 3716 if (!GLES2Util::ComputeImageDataSize( |
| 3716 width, height, format, type, unpack_alignment_, &data_size)) { | 3717 width, height, format, type, unpack_alignment_, &data_size)) { |
| 3717 return error::kOutOfBounds; | 3718 return error::kOutOfBounds; |
| 3718 } | 3719 } |
| 3719 """ | 3720 """ |
| 3720 file.Write(code) | 3721 file.Write(code) |
| 3721 else: | 3722 else: |
| 3722 file.Write("// uint32 data_size = 0; // TODO(gman): get correct size!\n") | 3723 file.Write( |
| 3724 "// uint32_t data_size = 0; // TODO(gman): get correct size!\n") |
| 3723 | 3725 |
| 3724 def WriteImmediateCmdGetTotalSize(self, func, file): | 3726 def WriteImmediateCmdGetTotalSize(self, func, file): |
| 3725 """Overrriden from TypeHandler.""" | 3727 """Overrriden from TypeHandler.""" |
| 3726 pass | 3728 pass |
| 3727 | 3729 |
| 3728 def WriteImmediateCmdSizeTest(self, func, file): | 3730 def WriteImmediateCmdSizeTest(self, func, file): |
| 3729 """Overrriden from TypeHandler.""" | 3731 """Overrriden from TypeHandler.""" |
| 3730 file.Write(" EXPECT_EQ(sizeof(cmd), total_size);\n") | 3732 file.Write(" EXPECT_EQ(sizeof(cmd), total_size);\n") |
| 3731 | 3733 |
| 3732 def WriteImmediateCmdInit(self, func, file): | 3734 def WriteImmediateCmdInit(self, func, file): |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3938 | 3940 |
| 3939 def __init__(self): | 3941 def __init__(self): |
| 3940 TypeHandler.__init__(self) | 3942 TypeHandler.__init__(self) |
| 3941 | 3943 |
| 3942 def InitFunction(self, func): | 3944 def InitFunction(self, func): |
| 3943 """Overrriden from TypeHandler.""" | 3945 """Overrriden from TypeHandler.""" |
| 3944 pass | 3946 pass |
| 3945 | 3947 |
| 3946 def WriteGetDataSizeCode(self, func, file): | 3948 def WriteGetDataSizeCode(self, func, file): |
| 3947 """Overrriden from TypeHandler.""" | 3949 """Overrriden from TypeHandler.""" |
| 3948 code = """ uint32 data_size; | 3950 code = """ uint32_t data_size; |
| 3949 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 3951 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 3950 return error::kOutOfBounds; | 3952 return error::kOutOfBounds; |
| 3951 } | 3953 } |
| 3952 """ | 3954 """ |
| 3953 file.Write(code) | 3955 file.Write(code) |
| 3954 | 3956 |
| 3955 def WriteHandlerImplementation (self, func, file): | 3957 def WriteHandlerImplementation (self, func, file): |
| 3956 """Overrriden from TypeHandler.""" | 3958 """Overrriden from TypeHandler.""" |
| 3957 file.Write(" if (!%sHelper(n, %s)) {\n" | 3959 file.Write(" if (!%sHelper(n, %s)) {\n" |
| 3958 " return error::kInvalidArguments;\n" | 3960 " return error::kInvalidArguments;\n" |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4087 EXPECT_EQ(error::kInvalidArguments, | 4089 EXPECT_EQ(error::kInvalidArguments, |
| 4088 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); | 4090 ExecuteImmediateCmd(*cmd, sizeof(&client_%(resource_name)s_id_))); |
| 4089 } | 4091 } |
| 4090 """ | 4092 """ |
| 4091 self.WriteValidUnitTest(func, file, invalid_test, { | 4093 self.WriteValidUnitTest(func, file, invalid_test, { |
| 4092 'resource_name': func.GetInfo('resource_type').lower(), | 4094 'resource_name': func.GetInfo('resource_type').lower(), |
| 4093 }) | 4095 }) |
| 4094 | 4096 |
| 4095 def WriteImmediateCmdComputeSize(self, func, file): | 4097 def WriteImmediateCmdComputeSize(self, func, file): |
| 4096 """Overrriden from TypeHandler.""" | 4098 """Overrriden from TypeHandler.""" |
| 4097 file.Write(" static uint32 ComputeDataSize(GLsizei n) {\n") | 4099 file.Write(" static uint32_t ComputeDataSize(GLsizei n) {\n") |
| 4098 file.Write( | 4100 file.Write( |
| 4099 " return static_cast<uint32>(sizeof(GLuint) * n); // NOLINT\n") | 4101 " return static_cast<uint32_t>(sizeof(GLuint) * n); // NOLINT\n") |
| 4100 file.Write(" }\n") | 4102 file.Write(" }\n") |
| 4101 file.Write("\n") | 4103 file.Write("\n") |
| 4102 file.Write(" static uint32 ComputeSize(GLsizei n) {\n") | 4104 file.Write(" static uint32_t ComputeSize(GLsizei n) {\n") |
| 4103 file.Write(" return static_cast<uint32>(\n") | 4105 file.Write(" return static_cast<uint32_t>(\n") |
| 4104 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n") | 4106 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n") |
| 4105 file.Write(" }\n") | 4107 file.Write(" }\n") |
| 4106 file.Write("\n") | 4108 file.Write("\n") |
| 4107 | 4109 |
| 4108 def WriteImmediateCmdSetHeader(self, func, file): | 4110 def WriteImmediateCmdSetHeader(self, func, file): |
| 4109 """Overrriden from TypeHandler.""" | 4111 """Overrriden from TypeHandler.""" |
| 4110 file.Write(" void SetHeader(GLsizei n) {\n") | 4112 file.Write(" void SetHeader(GLsizei n) {\n") |
| 4111 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n") | 4113 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n") |
| 4112 file.Write(" }\n") | 4114 file.Write(" }\n") |
| 4113 file.Write("\n") | 4115 file.Write("\n") |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4129 | 4131 |
| 4130 def WriteImmediateCmdSet(self, func, file): | 4132 def WriteImmediateCmdSet(self, func, file): |
| 4131 """Overrriden from TypeHandler.""" | 4133 """Overrriden from TypeHandler.""" |
| 4132 last_arg = func.GetLastOriginalArg() | 4134 last_arg = func.GetLastOriginalArg() |
| 4133 copy_args = func.MakeCmdArgString("_", False) | 4135 copy_args = func.MakeCmdArgString("_", False) |
| 4134 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % | 4136 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % |
| 4135 (func.MakeTypedCmdArgString("_", True), | 4137 (func.MakeTypedCmdArgString("_", True), |
| 4136 last_arg.type, last_arg.name)) | 4138 last_arg.type, last_arg.name)) |
| 4137 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % | 4139 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % |
| 4138 (copy_args, last_arg.name)) | 4140 (copy_args, last_arg.name)) |
| 4139 file.Write(" const uint32 size = ComputeSize(_n);\n") | 4141 file.Write(" const uint32_t size = ComputeSize(_n);\n") |
| 4140 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4142 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
| 4141 "cmd, size);\n") | 4143 "cmd, size);\n") |
| 4142 file.Write(" }\n") | 4144 file.Write(" }\n") |
| 4143 file.Write("\n") | 4145 file.Write("\n") |
| 4144 | 4146 |
| 4145 def WriteImmediateCmdHelper(self, func, file): | 4147 def WriteImmediateCmdHelper(self, func, file): |
| 4146 """Overrriden from TypeHandler.""" | 4148 """Overrriden from TypeHandler.""" |
| 4147 code = """ void %(name)s(%(typed_args)s) { | 4149 code = """ void %(name)s(%(typed_args)s) { |
| 4148 const uint32 size = gles2::cmds::%(name)s::ComputeSize(n); | 4150 const uint32_t size = gles2::cmds::%(name)s::ComputeSize(n); |
| 4149 gles2::cmds::%(name)s* c = | 4151 gles2::cmds::%(name)s* c = |
| 4150 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); | 4152 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
| 4151 if (c) { | 4153 if (c) { |
| 4152 c->Init(%(args)s); | 4154 c->Init(%(args)s); |
| 4153 } | 4155 } |
| 4154 } | 4156 } |
| 4155 | 4157 |
| 4156 """ | 4158 """ |
| 4157 file.Write(code % { | 4159 file.Write(code % { |
| 4158 "name": func.name, | 4160 "name": func.name, |
| 4159 "typed_args": func.MakeTypedOriginalArgString(""), | 4161 "typed_args": func.MakeTypedOriginalArgString(""), |
| 4160 "args": func.MakeOriginalArgString(""), | 4162 "args": func.MakeOriginalArgString(""), |
| 4161 }) | 4163 }) |
| 4162 | 4164 |
| 4163 def WriteImmediateFormatTest(self, func, file): | 4165 def WriteImmediateFormatTest(self, func, file): |
| 4164 """Overrriden from TypeHandler.""" | 4166 """Overrriden from TypeHandler.""" |
| 4165 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 4167 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
| 4166 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") | 4168 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") |
| 4167 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % | 4169 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4168 (func.name, func.name)) | 4170 (func.name, func.name)) |
| 4169 file.Write(" void* next_cmd = cmd.Set(\n") | 4171 file.Write(" void* next_cmd = cmd.Set(\n") |
| 4170 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") | 4172 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") |
| 4171 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % | 4173 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" % |
| 4172 func.name) | 4174 func.name) |
| 4173 file.Write(" cmd.header.command);\n") | 4175 file.Write(" cmd.header.command);\n") |
| 4174 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 4176 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
| 4175 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") | 4177 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") |
| 4176 file.Write(" cmd.header.size * 4u);\n") | 4178 file.Write(" cmd.header.size * 4u);\n") |
| 4177 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); | 4179 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); |
| 4178 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 4180 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
| 4179 file.Write(" next_cmd, sizeof(cmd) +\n") | 4181 file.Write(" next_cmd, sizeof(cmd) +\n") |
| 4180 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") | 4182 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") |
| 4181 file.Write(" // TODO(gman): Check that ids were inserted;\n") | 4183 file.Write(" // TODO(gman): Check that ids were inserted;\n") |
| 4182 file.Write("}\n") | 4184 file.Write("}\n") |
| 4183 file.Write("\n") | 4185 file.Write("\n") |
| 4184 | 4186 |
| 4185 | 4187 |
| 4186 class CreateHandler(TypeHandler): | 4188 class CreateHandler(TypeHandler): |
| 4187 """Handler for glCreate___ type functions.""" | 4189 """Handler for glCreate___ type functions.""" |
| 4188 | 4190 |
| 4189 def __init__(self): | 4191 def __init__(self): |
| 4190 TypeHandler.__init__(self) | 4192 TypeHandler.__init__(self) |
| 4191 | 4193 |
| 4192 def InitFunction(self, func): | 4194 def InitFunction(self, func): |
| 4193 """Overrriden from TypeHandler.""" | 4195 """Overrriden from TypeHandler.""" |
| 4194 func.AddCmdArg(Argument("client_id", 'uint32')) | 4196 func.AddCmdArg(Argument("client_id", 'uint32_t')) |
| 4195 | 4197 |
| 4196 def WriteServiceUnitTest(self, func, file): | 4198 def WriteServiceUnitTest(self, func, file): |
| 4197 """Overrriden from TypeHandler.""" | 4199 """Overrriden from TypeHandler.""" |
| 4198 valid_test = """ | 4200 valid_test = """ |
| 4199 TEST_P(%(test_name)s, %(name)sValidArgs) { | 4201 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 4200 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 4202 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
| 4201 .WillOnce(Return(kNewServiceId)); | 4203 .WillOnce(Return(kNewServiceId)); |
| 4202 SpecializedSetup<cmds::%(name)s, 0>(true); | 4204 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 4203 cmds::%(name)s cmd; | 4205 cmds::%(name)s cmd; |
| 4204 cmd.Init(%(args)s%(comma)skNewClientId); | 4206 cmd.Init(%(args)s%(comma)skNewClientId); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4222 cmd.Init(%(args)s%(comma)skNewClientId); | 4224 cmd.Init(%(args)s%(comma)skNewClientId); |
| 4223 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s | 4225 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));%(gl_error_test)s |
| 4224 } | 4226 } |
| 4225 """ | 4227 """ |
| 4226 self.WriteInvalidUnitTest(func, file, invalid_test, { | 4228 self.WriteInvalidUnitTest(func, file, invalid_test, { |
| 4227 'comma': comma, | 4229 'comma': comma, |
| 4228 }) | 4230 }) |
| 4229 | 4231 |
| 4230 def WriteHandlerImplementation (self, func, file): | 4232 def WriteHandlerImplementation (self, func, file): |
| 4231 """Overrriden from TypeHandler.""" | 4233 """Overrriden from TypeHandler.""" |
| 4232 file.Write(" uint32 client_id = c.client_id;\n") | 4234 file.Write(" uint32_t client_id = c.client_id;\n") |
| 4233 file.Write(" if (!%sHelper(%s)) {\n" % | 4235 file.Write(" if (!%sHelper(%s)) {\n" % |
| 4234 (func.name, func.MakeCmdArgString(""))) | 4236 (func.name, func.MakeCmdArgString(""))) |
| 4235 file.Write(" return error::kInvalidArguments;\n") | 4237 file.Write(" return error::kInvalidArguments;\n") |
| 4236 file.Write(" }\n") | 4238 file.Write(" }\n") |
| 4237 | 4239 |
| 4238 def WriteGLES2Implementation(self, func, file): | 4240 def WriteGLES2Implementation(self, func, file): |
| 4239 """Overrriden from TypeHandler.""" | 4241 """Overrriden from TypeHandler.""" |
| 4240 file.Write("%s GLES2Implementation::%s(%s) {\n" % | 4242 file.Write("%s GLES2Implementation::%s(%s) {\n" % |
| 4241 (func.return_type, func.original_name, | 4243 (func.return_type, func.original_name, |
| 4242 func.MakeTypedOriginalArgString(""))) | 4244 func.MakeTypedOriginalArgString(""))) |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4288 | 4290 |
| 4289 | 4291 |
| 4290 class DELnHandler(TypeHandler): | 4292 class DELnHandler(TypeHandler): |
| 4291 """Handler for glDelete___ type functions.""" | 4293 """Handler for glDelete___ type functions.""" |
| 4292 | 4294 |
| 4293 def __init__(self): | 4295 def __init__(self): |
| 4294 TypeHandler.__init__(self) | 4296 TypeHandler.__init__(self) |
| 4295 | 4297 |
| 4296 def WriteGetDataSizeCode(self, func, file): | 4298 def WriteGetDataSizeCode(self, func, file): |
| 4297 """Overrriden from TypeHandler.""" | 4299 """Overrriden from TypeHandler.""" |
| 4298 code = """ uint32 data_size; | 4300 code = """ uint32_t data_size; |
| 4299 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | 4301 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { |
| 4300 return error::kOutOfBounds; | 4302 return error::kOutOfBounds; |
| 4301 } | 4303 } |
| 4302 """ | 4304 """ |
| 4303 file.Write(code) | 4305 file.Write(code) |
| 4304 | 4306 |
| 4305 def WriteGLES2ImplementationUnitTest(self, func, file): | 4307 def WriteGLES2ImplementationUnitTest(self, func, file): |
| 4306 """Overrriden from TypeHandler.""" | 4308 """Overrriden from TypeHandler.""" |
| 4307 code = """ | 4309 code = """ |
| 4308 TEST_F(GLES2ImplementationTest, %(name)s) { | 4310 TEST_F(GLES2ImplementationTest, %(name)s) { |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4435 arg.WriteClientSideValidationCode(file, func) | 4437 arg.WriteClientSideValidationCode(file, func) |
| 4436 code = """ %(name)sHelper(%(args)s); | 4438 code = """ %(name)sHelper(%(args)s); |
| 4437 CheckGLError(); | 4439 CheckGLError(); |
| 4438 } | 4440 } |
| 4439 | 4441 |
| 4440 """ | 4442 """ |
| 4441 file.Write(code % args) | 4443 file.Write(code % args) |
| 4442 | 4444 |
| 4443 def WriteImmediateCmdComputeSize(self, func, file): | 4445 def WriteImmediateCmdComputeSize(self, func, file): |
| 4444 """Overrriden from TypeHandler.""" | 4446 """Overrriden from TypeHandler.""" |
| 4445 file.Write(" static uint32 ComputeDataSize(GLsizei n) {\n") | 4447 file.Write(" static uint32_t ComputeDataSize(GLsizei n) {\n") |
| 4446 file.Write( | 4448 file.Write( |
| 4447 " return static_cast<uint32>(sizeof(GLuint) * n); // NOLINT\n") | 4449 " return static_cast<uint32_t>(sizeof(GLuint) * n); // NOLINT\n") |
| 4448 file.Write(" }\n") | 4450 file.Write(" }\n") |
| 4449 file.Write("\n") | 4451 file.Write("\n") |
| 4450 file.Write(" static uint32 ComputeSize(GLsizei n) {\n") | 4452 file.Write(" static uint32_t ComputeSize(GLsizei n) {\n") |
| 4451 file.Write(" return static_cast<uint32>(\n") | 4453 file.Write(" return static_cast<uint32_t>(\n") |
| 4452 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n") | 4454 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n") |
| 4453 file.Write(" }\n") | 4455 file.Write(" }\n") |
| 4454 file.Write("\n") | 4456 file.Write("\n") |
| 4455 | 4457 |
| 4456 def WriteImmediateCmdSetHeader(self, func, file): | 4458 def WriteImmediateCmdSetHeader(self, func, file): |
| 4457 """Overrriden from TypeHandler.""" | 4459 """Overrriden from TypeHandler.""" |
| 4458 file.Write(" void SetHeader(GLsizei n) {\n") | 4460 file.Write(" void SetHeader(GLsizei n) {\n") |
| 4459 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n") | 4461 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n") |
| 4460 file.Write(" }\n") | 4462 file.Write(" }\n") |
| 4461 file.Write("\n") | 4463 file.Write("\n") |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4477 | 4479 |
| 4478 def WriteImmediateCmdSet(self, func, file): | 4480 def WriteImmediateCmdSet(self, func, file): |
| 4479 """Overrriden from TypeHandler.""" | 4481 """Overrriden from TypeHandler.""" |
| 4480 last_arg = func.GetLastOriginalArg() | 4482 last_arg = func.GetLastOriginalArg() |
| 4481 copy_args = func.MakeCmdArgString("_", False) | 4483 copy_args = func.MakeCmdArgString("_", False) |
| 4482 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % | 4484 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % |
| 4483 (func.MakeTypedCmdArgString("_", True), | 4485 (func.MakeTypedCmdArgString("_", True), |
| 4484 last_arg.type, last_arg.name)) | 4486 last_arg.type, last_arg.name)) |
| 4485 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % | 4487 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % |
| 4486 (copy_args, last_arg.name)) | 4488 (copy_args, last_arg.name)) |
| 4487 file.Write(" const uint32 size = ComputeSize(_n);\n") | 4489 file.Write(" const uint32_t size = ComputeSize(_n);\n") |
| 4488 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4490 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
| 4489 "cmd, size);\n") | 4491 "cmd, size);\n") |
| 4490 file.Write(" }\n") | 4492 file.Write(" }\n") |
| 4491 file.Write("\n") | 4493 file.Write("\n") |
| 4492 | 4494 |
| 4493 def WriteImmediateCmdHelper(self, func, file): | 4495 def WriteImmediateCmdHelper(self, func, file): |
| 4494 """Overrriden from TypeHandler.""" | 4496 """Overrriden from TypeHandler.""" |
| 4495 code = """ void %(name)s(%(typed_args)s) { | 4497 code = """ void %(name)s(%(typed_args)s) { |
| 4496 const uint32 size = gles2::cmds::%(name)s::ComputeSize(n); | 4498 const uint32_t size = gles2::cmds::%(name)s::ComputeSize(n); |
| 4497 gles2::cmds::%(name)s* c = | 4499 gles2::cmds::%(name)s* c = |
| 4498 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); | 4500 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
| 4499 if (c) { | 4501 if (c) { |
| 4500 c->Init(%(args)s); | 4502 c->Init(%(args)s); |
| 4501 } | 4503 } |
| 4502 } | 4504 } |
| 4503 | 4505 |
| 4504 """ | 4506 """ |
| 4505 file.Write(code % { | 4507 file.Write(code % { |
| 4506 "name": func.name, | 4508 "name": func.name, |
| 4507 "typed_args": func.MakeTypedOriginalArgString(""), | 4509 "typed_args": func.MakeTypedOriginalArgString(""), |
| 4508 "args": func.MakeOriginalArgString(""), | 4510 "args": func.MakeOriginalArgString(""), |
| 4509 }) | 4511 }) |
| 4510 | 4512 |
| 4511 def WriteImmediateFormatTest(self, func, file): | 4513 def WriteImmediateFormatTest(self, func, file): |
| 4512 """Overrriden from TypeHandler.""" | 4514 """Overrriden from TypeHandler.""" |
| 4513 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) | 4515 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
| 4514 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") | 4516 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n") |
| 4515 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % | 4517 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4516 (func.name, func.name)) | 4518 (func.name, func.name)) |
| 4517 file.Write(" void* next_cmd = cmd.Set(\n") | 4519 file.Write(" void* next_cmd = cmd.Set(\n") |
| 4518 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") | 4520 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n") |
| 4519 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % | 4521 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" % |
| 4520 func.name) | 4522 func.name) |
| 4521 file.Write(" cmd.header.command);\n") | 4523 file.Write(" cmd.header.command);\n") |
| 4522 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 4524 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
| 4523 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") | 4525 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n") |
| 4524 file.Write(" cmd.header.size * 4u);\n") | 4526 file.Write(" cmd.header.size * 4u);\n") |
| 4525 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); | 4527 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n"); |
| 4526 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 4528 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
| 4527 file.Write(" next_cmd, sizeof(cmd) +\n") | 4529 file.Write(" next_cmd, sizeof(cmd) +\n") |
| 4528 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") | 4530 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n") |
| 4529 file.Write(" // TODO(gman): Check that ids were inserted;\n") | 4531 file.Write(" // TODO(gman): Check that ids were inserted;\n") |
| 4530 file.Write("}\n") | 4532 file.Write("}\n") |
| 4531 file.Write("\n") | 4533 file.Write("\n") |
| 4532 | 4534 |
| 4533 | 4535 |
| 4534 class GETnHandler(TypeHandler): | 4536 class GETnHandler(TypeHandler): |
| 4535 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions.""" | 4537 """Handler for GETn for glGetBooleanv, glGetFloatv, ... type functions.""" |
| 4536 | 4538 |
| 4537 def __init__(self): | 4539 def __init__(self): |
| 4538 TypeHandler.__init__(self) | 4540 TypeHandler.__init__(self) |
| 4539 | 4541 |
| 4540 def AddImmediateFunction(self, generator, func): | 4542 def AddImmediateFunction(self, generator, func): |
| 4541 """Overrriden from TypeHandler.""" | 4543 """Overrriden from TypeHandler.""" |
| 4542 pass | 4544 pass |
| 4543 | 4545 |
| 4544 def WriteServiceImplementation(self, func, file): | 4546 def WriteServiceImplementation(self, func, file): |
| 4545 """Overrriden from TypeHandler.""" | 4547 """Overrriden from TypeHandler.""" |
| 4546 file.Write( | 4548 file.Write( |
| 4547 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 4549 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 4548 file.Write( | 4550 file.Write( |
| 4549 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 4551 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 4550 func.name) | 4552 func.name) |
| 4551 last_arg = func.GetLastOriginalArg() | 4553 last_arg = func.GetLastOriginalArg() |
| 4552 | 4554 |
| 4553 all_but_last_args = func.GetOriginalArgs()[:-1] | 4555 all_but_last_args = func.GetOriginalArgs()[:-1] |
| 4554 for arg in all_but_last_args: | 4556 for arg in all_but_last_args: |
| 4555 arg.WriteGetCode(file) | 4557 arg.WriteGetCode(file) |
| 4556 | 4558 |
| 4557 code = """ typedef cmds::%(func_name)s::Result Result; | 4559 code = """ typedef cmds::%(func_name)s::Result Result; |
| 4558 GLsizei num_values = 0; | 4560 GLsizei num_values = 0; |
| 4559 GetNumValuesReturnedForGLGet(pname, &num_values); | 4561 GetNumValuesReturnedForGLGet(pname, &num_values); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4619 Result* result = GetResultAs<Result*>(); | 4621 Result* result = GetResultAs<Result*>(); |
| 4620 if (!result) { | 4622 if (!result) { |
| 4621 return; | 4623 return; |
| 4622 } | 4624 } |
| 4623 result->SetNumResults(0); | 4625 result->SetNumResults(0); |
| 4624 helper_->%(func_name)s(%(arg_string)s, | 4626 helper_->%(func_name)s(%(arg_string)s, |
| 4625 GetResultShmId(), GetResultShmOffset()); | 4627 GetResultShmId(), GetResultShmOffset()); |
| 4626 WaitForCmd(); | 4628 WaitForCmd(); |
| 4627 result->CopyResult(params); | 4629 result->CopyResult(params); |
| 4628 GPU_CLIENT_LOG_CODE_BLOCK({ | 4630 GPU_CLIENT_LOG_CODE_BLOCK({ |
| 4629 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 4631 for (int32_t i = 0; i < result->GetNumResults(); ++i) { |
| 4630 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 4632 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
| 4631 } | 4633 } |
| 4632 }); | 4634 }); |
| 4633 CheckGLError(); | 4635 CheckGLError(); |
| 4634 } | 4636 } |
| 4635 """ | 4637 """ |
| 4636 file.Write(code % { | 4638 file.Write(code % { |
| 4637 'func_name': func.name, | 4639 'func_name': func.name, |
| 4638 'arg_string': arg_string, | 4640 'arg_string': arg_string, |
| 4639 'all_arg_string': all_arg_string, | 4641 'all_arg_string': all_arg_string, |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4814 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; | 4816 %(data_type)s temp[%(data_count)s] = { %(data_value)s, }; |
| 4815 cmd.Init(%(all_but_last_args)s, &temp[0]); | 4817 cmd.Init(%(all_but_last_args)s, &temp[0]); |
| 4816 EXPECT_EQ(error::%(parse_result)s, | 4818 EXPECT_EQ(error::%(parse_result)s, |
| 4817 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 4819 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
| 4818 } | 4820 } |
| 4819 """ | 4821 """ |
| 4820 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 4822 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
| 4821 | 4823 |
| 4822 def WriteGetDataSizeCode(self, func, file): | 4824 def WriteGetDataSizeCode(self, func, file): |
| 4823 """Overrriden from TypeHandler.""" | 4825 """Overrriden from TypeHandler.""" |
| 4824 code = """ uint32 data_size; | 4826 code = """ uint32_t data_size; |
| 4825 if (!ComputeDataSize(1, sizeof(%s), %d, &data_size)) { | 4827 if (!ComputeDataSize(1, sizeof(%s), %d, &data_size)) { |
| 4826 return error::kOutOfBounds; | 4828 return error::kOutOfBounds; |
| 4827 } | 4829 } |
| 4828 """ | 4830 """ |
| 4829 file.Write(code % (func.info.data_type, func.info.count)) | 4831 file.Write(code % (func.info.data_type, func.info.count)) |
| 4830 if func.is_immediate: | 4832 if func.is_immediate: |
| 4831 file.Write(" if (data_size > immediate_data_size) {\n") | 4833 file.Write(" if (data_size > immediate_data_size) {\n") |
| 4832 file.Write(" return error::kOutOfBounds;\n") | 4834 file.Write(" return error::kOutOfBounds;\n") |
| 4833 file.Write(" }\n") | 4835 file.Write(" }\n") |
| 4834 | 4836 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4886 file.Write(code % { | 4888 file.Write(code % { |
| 4887 'name': func.name, | 4889 'name': func.name, |
| 4888 'type': func.GetInfo('data_type'), | 4890 'type': func.GetInfo('data_type'), |
| 4889 'count': func.GetInfo('count'), | 4891 'count': func.GetInfo('count'), |
| 4890 'args': ", ".join(gl_arg_strings), | 4892 'args': ", ".join(gl_arg_strings), |
| 4891 'cmd_args': ", ".join(cmd_arg_strings), | 4893 'cmd_args': ", ".join(cmd_arg_strings), |
| 4892 }) | 4894 }) |
| 4893 | 4895 |
| 4894 def WriteImmediateCmdComputeSize(self, func, file): | 4896 def WriteImmediateCmdComputeSize(self, func, file): |
| 4895 """Overrriden from TypeHandler.""" | 4897 """Overrriden from TypeHandler.""" |
| 4896 file.Write(" static uint32 ComputeDataSize() {\n") | 4898 file.Write(" static uint32_t ComputeDataSize() {\n") |
| 4897 file.Write(" return static_cast<uint32>(\n") | 4899 file.Write(" return static_cast<uint32_t>(\n") |
| 4898 file.Write(" sizeof(%s) * %d); // NOLINT\n" % | 4900 file.Write(" sizeof(%s) * %d); // NOLINT\n" % |
| 4899 (func.info.data_type, func.info.count)) | 4901 (func.info.data_type, func.info.count)) |
| 4900 file.Write(" }\n") | 4902 file.Write(" }\n") |
| 4901 file.Write("\n") | 4903 file.Write("\n") |
| 4902 file.Write(" static uint32 ComputeSize() {\n") | 4904 file.Write(" static uint32_t ComputeSize() {\n") |
| 4903 file.Write(" return static_cast<uint32>(\n") | 4905 file.Write(" return static_cast<uint32_t>(\n") |
| 4904 file.Write( | 4906 file.Write( |
| 4905 " sizeof(ValueType) + ComputeDataSize()); // NOLINT\n") | 4907 " sizeof(ValueType) + ComputeDataSize()); // NOLINT\n") |
| 4906 file.Write(" }\n") | 4908 file.Write(" }\n") |
| 4907 file.Write("\n") | 4909 file.Write("\n") |
| 4908 | 4910 |
| 4909 def WriteImmediateCmdSetHeader(self, func, file): | 4911 def WriteImmediateCmdSetHeader(self, func, file): |
| 4910 """Overrriden from TypeHandler.""" | 4912 """Overrriden from TypeHandler.""" |
| 4911 file.Write(" void SetHeader() {\n") | 4913 file.Write(" void SetHeader() {\n") |
| 4912 file.Write( | 4914 file.Write( |
| 4913 " header.SetCmdByTotalSize<ValueType>(ComputeSize());\n") | 4915 " header.SetCmdByTotalSize<ValueType>(ComputeSize());\n") |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4931 | 4933 |
| 4932 def WriteImmediateCmdSet(self, func, file): | 4934 def WriteImmediateCmdSet(self, func, file): |
| 4933 """Overrriden from TypeHandler.""" | 4935 """Overrriden from TypeHandler.""" |
| 4934 last_arg = func.GetLastOriginalArg() | 4936 last_arg = func.GetLastOriginalArg() |
| 4935 copy_args = func.MakeCmdArgString("_", False) | 4937 copy_args = func.MakeCmdArgString("_", False) |
| 4936 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % | 4938 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % |
| 4937 (func.MakeTypedCmdArgString("_", True), | 4939 (func.MakeTypedCmdArgString("_", True), |
| 4938 last_arg.type, last_arg.name)) | 4940 last_arg.type, last_arg.name)) |
| 4939 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % | 4941 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % |
| 4940 (copy_args, last_arg.name)) | 4942 (copy_args, last_arg.name)) |
| 4941 file.Write(" const uint32 size = ComputeSize();\n") | 4943 file.Write(" const uint32_t size = ComputeSize();\n") |
| 4942 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 4944 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
| 4943 "cmd, size);\n") | 4945 "cmd, size);\n") |
| 4944 file.Write(" }\n") | 4946 file.Write(" }\n") |
| 4945 file.Write("\n") | 4947 file.Write("\n") |
| 4946 | 4948 |
| 4947 def WriteImmediateCmdHelper(self, func, file): | 4949 def WriteImmediateCmdHelper(self, func, file): |
| 4948 """Overrriden from TypeHandler.""" | 4950 """Overrriden from TypeHandler.""" |
| 4949 code = """ void %(name)s(%(typed_args)s) { | 4951 code = """ void %(name)s(%(typed_args)s) { |
| 4950 const uint32 size = gles2::cmds::%(name)s::ComputeSize(); | 4952 const uint32_t size = gles2::cmds::%(name)s::ComputeSize(); |
| 4951 gles2::cmds::%(name)s* c = | 4953 gles2::cmds::%(name)s* c = |
| 4952 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); | 4954 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
| 4953 if (c) { | 4955 if (c) { |
| 4954 c->Init(%(args)s); | 4956 c->Init(%(args)s); |
| 4955 } | 4957 } |
| 4956 } | 4958 } |
| 4957 | 4959 |
| 4958 """ | 4960 """ |
| 4959 file.Write(code % { | 4961 file.Write(code % { |
| 4960 "name": func.name, | 4962 "name": func.name, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4973 file.Write(" };\n") | 4975 file.Write(" };\n") |
| 4974 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % | 4976 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
| 4975 (func.name, func.name)) | 4977 (func.name, func.name)) |
| 4976 file.Write(" void* next_cmd = cmd.Set(\n") | 4978 file.Write(" void* next_cmd = cmd.Set(\n") |
| 4977 file.Write(" &cmd") | 4979 file.Write(" &cmd") |
| 4978 args = func.GetCmdArgs() | 4980 args = func.GetCmdArgs() |
| 4979 for value, arg in enumerate(args): | 4981 for value, arg in enumerate(args): |
| 4980 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) | 4982 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11)) |
| 4981 file.Write(",\n data);\n") | 4983 file.Write(",\n data);\n") |
| 4982 args = func.GetCmdArgs() | 4984 args = func.GetCmdArgs() |
| 4983 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" | 4985 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" |
| 4984 % func.name) | 4986 % func.name) |
| 4985 file.Write(" cmd.header.command);\n") | 4987 file.Write(" cmd.header.command);\n") |
| 4986 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") | 4988 file.Write(" EXPECT_EQ(sizeof(cmd) +\n") |
| 4987 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n") | 4989 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n") |
| 4988 file.Write(" cmd.header.size * 4u);\n") | 4990 file.Write(" cmd.header.size * 4u);\n") |
| 4989 for value, arg in enumerate(args): | 4991 for value, arg in enumerate(args): |
| 4990 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 4992 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
| 4991 (arg.type, value + 11, arg.name)) | 4993 (arg.type, value + 11, arg.name)) |
| 4992 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 4994 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
| 4993 file.Write(" next_cmd, sizeof(cmd) +\n") | 4995 file.Write(" next_cmd, sizeof(cmd) +\n") |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5081 %(data_type)s temp[%(data_count)s * 2] = { 0, }; | 5083 %(data_type)s temp[%(data_count)s * 2] = { 0, }; |
| 5082 cmd.Init(%(all_but_last_args)s, &temp[0]); | 5084 cmd.Init(%(all_but_last_args)s, &temp[0]); |
| 5083 EXPECT_EQ(error::%(parse_result)s, | 5085 EXPECT_EQ(error::%(parse_result)s, |
| 5084 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s | 5086 ExecuteImmediateCmd(cmd, sizeof(temp)));%(gl_error_test)s |
| 5085 } | 5087 } |
| 5086 """ | 5088 """ |
| 5087 self.WriteInvalidUnitTest(func, file, invalid_test, extra) | 5089 self.WriteInvalidUnitTest(func, file, invalid_test, extra) |
| 5088 | 5090 |
| 5089 def WriteGetDataSizeCode(self, func, file): | 5091 def WriteGetDataSizeCode(self, func, file): |
| 5090 """Overrriden from TypeHandler.""" | 5092 """Overrriden from TypeHandler.""" |
| 5091 code = """ uint32 data_size; | 5093 code = """ uint32_t data_size; |
| 5092 if (!ComputeDataSize(count, sizeof(%s), %d, &data_size)) { | 5094 if (!ComputeDataSize(count, sizeof(%s), %d, &data_size)) { |
| 5093 return error::kOutOfBounds; | 5095 return error::kOutOfBounds; |
| 5094 } | 5096 } |
| 5095 """ | 5097 """ |
| 5096 file.Write(code % (func.info.data_type, func.info.count)) | 5098 file.Write(code % (func.info.data_type, func.info.count)) |
| 5097 if func.is_immediate: | 5099 if func.is_immediate: |
| 5098 file.Write(" if (data_size > immediate_data_size) {\n") | 5100 file.Write(" if (data_size > immediate_data_size) {\n") |
| 5099 file.Write(" return error::kOutOfBounds;\n") | 5101 file.Write(" return error::kOutOfBounds;\n") |
| 5100 file.Write(" }\n") | 5102 file.Write(" }\n") |
| 5101 | 5103 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5159 'name': func.name, | 5161 'name': func.name, |
| 5160 'type': func.GetInfo('data_type'), | 5162 'type': func.GetInfo('data_type'), |
| 5161 'count': func.GetInfo('count'), | 5163 'count': func.GetInfo('count'), |
| 5162 'args': ", ".join(gl_arg_strings), | 5164 'args': ", ".join(gl_arg_strings), |
| 5163 'cmd_args': ", ".join(cmd_arg_strings), | 5165 'cmd_args': ", ".join(cmd_arg_strings), |
| 5164 'count_param': count_param, | 5166 'count_param': count_param, |
| 5165 }) | 5167 }) |
| 5166 | 5168 |
| 5167 def WriteImmediateCmdComputeSize(self, func, file): | 5169 def WriteImmediateCmdComputeSize(self, func, file): |
| 5168 """Overrriden from TypeHandler.""" | 5170 """Overrriden from TypeHandler.""" |
| 5169 file.Write(" static uint32 ComputeDataSize(GLsizei count) {\n") | 5171 file.Write(" static uint32_t ComputeDataSize(GLsizei count) {\n") |
| 5170 file.Write(" return static_cast<uint32>(\n") | 5172 file.Write(" return static_cast<uint32_t>(\n") |
| 5171 file.Write(" sizeof(%s) * %d * count); // NOLINT\n" % | 5173 file.Write(" sizeof(%s) * %d * count); // NOLINT\n" % |
| 5172 (func.info.data_type, func.info.count)) | 5174 (func.info.data_type, func.info.count)) |
| 5173 file.Write(" }\n") | 5175 file.Write(" }\n") |
| 5174 file.Write("\n") | 5176 file.Write("\n") |
| 5175 file.Write(" static uint32 ComputeSize(GLsizei count) {\n") | 5177 file.Write(" static uint32_t ComputeSize(GLsizei count) {\n") |
| 5176 file.Write(" return static_cast<uint32>(\n") | 5178 file.Write(" return static_cast<uint32_t>(\n") |
| 5177 file.Write( | 5179 file.Write( |
| 5178 " sizeof(ValueType) + ComputeDataSize(count)); // NOLINT\n") | 5180 " sizeof(ValueType) + ComputeDataSize(count)); // NOLINT\n") |
| 5179 file.Write(" }\n") | 5181 file.Write(" }\n") |
| 5180 file.Write("\n") | 5182 file.Write("\n") |
| 5181 | 5183 |
| 5182 def WriteImmediateCmdSetHeader(self, func, file): | 5184 def WriteImmediateCmdSetHeader(self, func, file): |
| 5183 """Overrriden from TypeHandler.""" | 5185 """Overrriden from TypeHandler.""" |
| 5184 file.Write(" void SetHeader(GLsizei count) {\n") | 5186 file.Write(" void SetHeader(GLsizei count) {\n") |
| 5185 file.Write( | 5187 file.Write( |
| 5186 " header.SetCmdByTotalSize<ValueType>(ComputeSize(count));\n") | 5188 " header.SetCmdByTotalSize<ValueType>(ComputeSize(count));\n") |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5204 | 5206 |
| 5205 def WriteImmediateCmdSet(self, func, file): | 5207 def WriteImmediateCmdSet(self, func, file): |
| 5206 """Overrriden from TypeHandler.""" | 5208 """Overrriden from TypeHandler.""" |
| 5207 last_arg = func.GetLastOriginalArg() | 5209 last_arg = func.GetLastOriginalArg() |
| 5208 copy_args = func.MakeCmdArgString("_", False) | 5210 copy_args = func.MakeCmdArgString("_", False) |
| 5209 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % | 5211 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" % |
| 5210 (func.MakeTypedCmdArgString("_", True), | 5212 (func.MakeTypedCmdArgString("_", True), |
| 5211 last_arg.type, last_arg.name)) | 5213 last_arg.type, last_arg.name)) |
| 5212 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % | 5214 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" % |
| 5213 (copy_args, last_arg.name)) | 5215 (copy_args, last_arg.name)) |
| 5214 file.Write(" const uint32 size = ComputeSize(_count);\n") | 5216 file.Write(" const uint32_t size = ComputeSize(_count);\n") |
| 5215 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" | 5217 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
| 5216 "cmd, size);\n") | 5218 "cmd, size);\n") |
| 5217 file.Write(" }\n") | 5219 file.Write(" }\n") |
| 5218 file.Write("\n") | 5220 file.Write("\n") |
| 5219 | 5221 |
| 5220 def WriteImmediateCmdHelper(self, func, file): | 5222 def WriteImmediateCmdHelper(self, func, file): |
| 5221 """Overrriden from TypeHandler.""" | 5223 """Overrriden from TypeHandler.""" |
| 5222 code = """ void %(name)s(%(typed_args)s) { | 5224 code = """ void %(name)s(%(typed_args)s) { |
| 5223 const uint32 size = gles2::cmds::%(name)s::ComputeSize(count); | 5225 const uint32_t size = gles2::cmds::%(name)s::ComputeSize(count); |
| 5224 gles2::cmds::%(name)s* c = | 5226 gles2::cmds::%(name)s* c = |
| 5225 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); | 5227 GetImmediateCmdSpaceTotalSize<gles2::cmds::%(name)s>(size); |
| 5226 if (c) { | 5228 if (c) { |
| 5227 c->Init(%(args)s); | 5229 c->Init(%(args)s); |
| 5228 } | 5230 } |
| 5229 } | 5231 } |
| 5230 | 5232 |
| 5231 """ | 5233 """ |
| 5232 file.Write(code % { | 5234 file.Write(code % { |
| 5233 "name": func.name, | 5235 "name": func.name, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 5253 (func.name, func.name)) | 5255 (func.name, func.name)) |
| 5254 file.Write(" const GLsizei kNumElements = %d;\n" % count_param) | 5256 file.Write(" const GLsizei kNumElements = %d;\n" % count_param) |
| 5255 file.Write(" const size_t kExpectedCmdSize =\n") | 5257 file.Write(" const size_t kExpectedCmdSize =\n") |
| 5256 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" % | 5258 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" % |
| 5257 (func.info.data_type, func.info.count)) | 5259 (func.info.data_type, func.info.count)) |
| 5258 file.Write(" void* next_cmd = cmd.Set(\n") | 5260 file.Write(" void* next_cmd = cmd.Set(\n") |
| 5259 file.Write(" &cmd") | 5261 file.Write(" &cmd") |
| 5260 for value, arg in enumerate(args): | 5262 for value, arg in enumerate(args): |
| 5261 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1)) | 5263 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1)) |
| 5262 file.Write(",\n data);\n") | 5264 file.Write(",\n data);\n") |
| 5263 file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % | 5265 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" % |
| 5264 func.name) | 5266 func.name) |
| 5265 file.Write(" cmd.header.command);\n") | 5267 file.Write(" cmd.header.command);\n") |
| 5266 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n") | 5268 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n") |
| 5267 for value, arg in enumerate(args): | 5269 for value, arg in enumerate(args): |
| 5268 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 5270 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
| 5269 (arg.type, value + 1, arg.name)) | 5271 (arg.type, value + 1, arg.name)) |
| 5270 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") | 5272 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n") |
| 5271 file.Write(" next_cmd, sizeof(cmd) +\n") | 5273 file.Write(" next_cmd, sizeof(cmd) +\n") |
| 5272 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") | 5274 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n") |
| 5273 file.Write(" // TODO(gman): Check that data was inserted;\n") | 5275 file.Write(" // TODO(gman): Check that data was inserted;\n") |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5337 | 5339 |
| 5338 | 5340 |
| 5339 class GLcharHandler(CustomHandler): | 5341 class GLcharHandler(CustomHandler): |
| 5340 """Handler for functions that pass a single string .""" | 5342 """Handler for functions that pass a single string .""" |
| 5341 | 5343 |
| 5342 def __init__(self): | 5344 def __init__(self): |
| 5343 CustomHandler.__init__(self) | 5345 CustomHandler.__init__(self) |
| 5344 | 5346 |
| 5345 def WriteImmediateCmdComputeSize(self, func, file): | 5347 def WriteImmediateCmdComputeSize(self, func, file): |
| 5346 """Overrriden from TypeHandler.""" | 5348 """Overrriden from TypeHandler.""" |
| 5347 file.Write(" static uint32 ComputeSize(uint32 data_size) {\n") | 5349 file.Write(" static uint32_t ComputeSize(uint32_t data_size) {\n") |
| 5348 file.Write(" return static_cast<uint32>(\n") | 5350 file.Write(" return static_cast<uint32_t>(\n") |
| 5349 file.Write(" sizeof(ValueType) + data_size); // NOLINT\n") | 5351 file.Write(" sizeof(ValueType) + data_size); // NOLINT\n") |
| 5350 file.Write(" }\n") | 5352 file.Write(" }\n") |
| 5351 | 5353 |
| 5352 def WriteImmediateCmdSetHeader(self, func, file): | 5354 def WriteImmediateCmdSetHeader(self, func, file): |
| 5353 """Overrriden from TypeHandler.""" | 5355 """Overrriden from TypeHandler.""" |
| 5354 code = """ | 5356 code = """ |
| 5355 void SetHeader(uint32 data_size) { | 5357 void SetHeader(uint32_t data_size) { |
| 5356 header.SetCmdBySize<ValueType>(data_size); | 5358 header.SetCmdBySize<ValueType>(data_size); |
| 5357 } | 5359 } |
| 5358 """ | 5360 """ |
| 5359 file.Write(code) | 5361 file.Write(code) |
| 5360 | 5362 |
| 5361 def WriteImmediateCmdInit(self, func, file): | 5363 def WriteImmediateCmdInit(self, func, file): |
| 5362 """Overrriden from TypeHandler.""" | 5364 """Overrriden from TypeHandler.""" |
| 5363 last_arg = func.GetLastOriginalArg() | 5365 last_arg = func.GetLastOriginalArg() |
| 5364 args = func.GetCmdArgs() | 5366 args = func.GetCmdArgs() |
| 5365 set_code = [] | 5367 set_code = [] |
| 5366 for arg in args: | 5368 for arg in args: |
| 5367 set_code.append(" %s = _%s;" % (arg.name, arg.name)) | 5369 set_code.append(" %s = _%s;" % (arg.name, arg.name)) |
| 5368 code = """ | 5370 code = """ |
| 5369 void Init(%(typed_args)s, uint32 _data_size) { | 5371 void Init(%(typed_args)s, uint32_t _data_size) { |
| 5370 SetHeader(_data_size); | 5372 SetHeader(_data_size); |
| 5371 %(set_code)s | 5373 %(set_code)s |
| 5372 memcpy(ImmediateDataAddress(this), _%(last_arg)s, _data_size); | 5374 memcpy(ImmediateDataAddress(this), _%(last_arg)s, _data_size); |
| 5373 } | 5375 } |
| 5374 | 5376 |
| 5375 """ | 5377 """ |
| 5376 file.Write(code % { | 5378 file.Write(code % { |
| 5377 "typed_args": func.MakeTypedOriginalArgString("_"), | 5379 "typed_args": func.MakeTypedOriginalArgString("_"), |
| 5378 "set_code": "\n".join(set_code), | 5380 "set_code": "\n".join(set_code), |
| 5379 "last_arg": last_arg.name | 5381 "last_arg": last_arg.name |
| 5380 }) | 5382 }) |
| 5381 | 5383 |
| 5382 def WriteImmediateCmdSet(self, func, file): | 5384 def WriteImmediateCmdSet(self, func, file): |
| 5383 """Overrriden from TypeHandler.""" | 5385 """Overrriden from TypeHandler.""" |
| 5384 last_arg = func.GetLastOriginalArg() | 5386 last_arg = func.GetLastOriginalArg() |
| 5385 file.Write(" void* Set(void* cmd%s, uint32 _data_size) {\n" % | 5387 file.Write(" void* Set(void* cmd%s, uint32_t _data_size) {\n" % |
| 5386 func.MakeTypedOriginalArgString("_", True)) | 5388 func.MakeTypedOriginalArgString("_", True)) |
| 5387 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _data_size);\n" % | 5389 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _data_size);\n" % |
| 5388 func.MakeOriginalArgString("_")) | 5390 func.MakeOriginalArgString("_")) |
| 5389 file.Write(" return NextImmediateCmdAddress<ValueType>(" | 5391 file.Write(" return NextImmediateCmdAddress<ValueType>(" |
| 5390 "cmd, _data_size);\n") | 5392 "cmd, _data_size);\n") |
| 5391 file.Write(" }\n") | 5393 file.Write(" }\n") |
| 5392 file.Write("\n") | 5394 file.Write("\n") |
| 5393 | 5395 |
| 5394 def WriteImmediateCmdHelper(self, func, file): | 5396 def WriteImmediateCmdHelper(self, func, file): |
| 5395 """Overrriden from TypeHandler.""" | 5397 """Overrriden from TypeHandler.""" |
| 5396 code = """ void %(name)s(%(typed_args)s) { | 5398 code = """ void %(name)s(%(typed_args)s) { |
| 5397 const uint32 data_size = strlen(name); | 5399 const uint32_t data_size = strlen(name); |
| 5398 gles2::cmds::%(name)s* c = | 5400 gles2::cmds::%(name)s* c = |
| 5399 GetImmediateCmdSpace<gles2::cmds::%(name)s>(data_size); | 5401 GetImmediateCmdSpace<gles2::cmds::%(name)s>(data_size); |
| 5400 if (c) { | 5402 if (c) { |
| 5401 c->Init(%(args)s, data_size); | 5403 c->Init(%(args)s, data_size); |
| 5402 } | 5404 } |
| 5403 } | 5405 } |
| 5404 | 5406 |
| 5405 """ | 5407 """ |
| 5406 file.Write(code % { | 5408 file.Write(code % { |
| 5407 "name": func.name, | 5409 "name": func.name, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 5422 (arg.type, value + 11, arg.name)) | 5424 (arg.type, value + 11, arg.name)) |
| 5423 code = """ | 5425 code = """ |
| 5424 TEST_F(GLES2FormatTest, %(func_name)s) { | 5426 TEST_F(GLES2FormatTest, %(func_name)s) { |
| 5425 cmds::%(func_name)s& cmd = *GetBufferAs<cmds::%(func_name)s>(); | 5427 cmds::%(func_name)s& cmd = *GetBufferAs<cmds::%(func_name)s>(); |
| 5426 static const char* const test_str = \"test string\"; | 5428 static const char* const test_str = \"test string\"; |
| 5427 void* next_cmd = cmd.Set( | 5429 void* next_cmd = cmd.Set( |
| 5428 &cmd, | 5430 &cmd, |
| 5429 %(init_code)s | 5431 %(init_code)s |
| 5430 test_str, | 5432 test_str, |
| 5431 strlen(test_str)); | 5433 strlen(test_str)); |
| 5432 EXPECT_EQ(static_cast<uint32>(cmds::%(func_name)s::kCmdId), | 5434 EXPECT_EQ(static_cast<uint32_t>(cmds::%(func_name)s::kCmdId), |
| 5433 cmd.header.command); | 5435 cmd.header.command); |
| 5434 EXPECT_EQ(sizeof(cmd) + | 5436 EXPECT_EQ(sizeof(cmd) + |
| 5435 RoundSizeToMultipleOfEntries(strlen(test_str)), | 5437 RoundSizeToMultipleOfEntries(strlen(test_str)), |
| 5436 cmd.header.size * 4u); | 5438 cmd.header.size * 4u); |
| 5437 EXPECT_EQ(static_cast<char*>(next_cmd), | 5439 EXPECT_EQ(static_cast<char*>(next_cmd), |
| 5438 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + | 5440 reinterpret_cast<char*>(&cmd) + sizeof(cmd) + |
| 5439 RoundSizeToMultipleOfEntries(strlen(test_str))); | 5441 RoundSizeToMultipleOfEntries(strlen(test_str))); |
| 5440 %(check_code)s | 5442 %(check_code)s |
| 5441 EXPECT_EQ(static_cast<uint32>(strlen(test_str)), cmd.data_size); | 5443 EXPECT_EQ(static_cast<uint32_t>(strlen(test_str)), cmd.data_size); |
| 5442 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); | 5444 EXPECT_EQ(0, memcmp(test_str, ImmediateDataAddress(&cmd), strlen(test_str))); |
| 5443 CheckBytesWritten( | 5445 CheckBytesWritten( |
| 5444 next_cmd, | 5446 next_cmd, |
| 5445 sizeof(cmd) + RoundSizeToMultipleOfEntries(strlen(test_str)), | 5447 sizeof(cmd) + RoundSizeToMultipleOfEntries(strlen(test_str)), |
| 5446 sizeof(cmd) + strlen(test_str)); | 5448 sizeof(cmd) + strlen(test_str)); |
| 5447 } | 5449 } |
| 5448 | 5450 |
| 5449 """ | 5451 """ |
| 5450 file.Write(code % { | 5452 file.Write(code % { |
| 5451 'func_name': func.name, | 5453 'func_name': func.name, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5469 """Overrriden from TypeHandler.""" | 5471 """Overrriden from TypeHandler.""" |
| 5470 pass | 5472 pass |
| 5471 | 5473 |
| 5472 def AddBucketFunction(self, generator, func): | 5474 def AddBucketFunction(self, generator, func): |
| 5473 """Overrriden from TypeHandler.""" | 5475 """Overrriden from TypeHandler.""" |
| 5474 pass | 5476 pass |
| 5475 | 5477 |
| 5476 def WriteServiceImplementation(self, func, file): | 5478 def WriteServiceImplementation(self, func, file): |
| 5477 """Overrriden from TypeHandler.""" | 5479 """Overrriden from TypeHandler.""" |
| 5478 file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s( | 5480 file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s( |
| 5479 uint32 immediate_data_size, const gles2::cmds::%(name)s& c) { | 5481 uint32_t immediate_data_size, const gles2::cmds::%(name)s& c) { |
| 5480 GLuint bucket_id = static_cast<GLuint>(c.%(bucket_id)s); | 5482 GLuint bucket_id = static_cast<GLuint>(c.%(bucket_id)s); |
| 5481 Bucket* bucket = GetBucket(bucket_id); | 5483 Bucket* bucket = GetBucket(bucket_id); |
| 5482 if (!bucket || bucket->size() == 0) { | 5484 if (!bucket || bucket->size() == 0) { |
| 5483 return error::kInvalidArguments; | 5485 return error::kInvalidArguments; |
| 5484 } | 5486 } |
| 5485 std::string str; | 5487 std::string str; |
| 5486 if (!bucket->GetAsString(&str)) { | 5488 if (!bucket->GetAsString(&str)) { |
| 5487 return error::kInvalidArguments; | 5489 return error::kInvalidArguments; |
| 5488 } | 5490 } |
| 5489 %(gl_func_name)s(0, str.c_str()); | 5491 %(gl_func_name)s(0, str.c_str()); |
| 5490 return error::kNoError; | 5492 return error::kNoError; |
| 5491 } | 5493 } |
| 5492 | 5494 |
| 5493 """ % { | 5495 """ % { |
| 5494 'name': func.name, | 5496 'name': func.name, |
| 5495 'gl_func_name': func.GetGLFunctionName(), | 5497 'gl_func_name': func.GetGLFunctionName(), |
| 5496 'bucket_id': func.cmd_args[0].name, | 5498 'bucket_id': func.cmd_args[0].name, |
| 5497 }) | 5499 }) |
| 5498 | 5500 |
| 5499 | 5501 |
| 5500 class IsHandler(TypeHandler): | 5502 class IsHandler(TypeHandler): |
| 5501 """Handler for glIs____ type and glGetError functions.""" | 5503 """Handler for glIs____ type and glGetError functions.""" |
| 5502 | 5504 |
| 5503 def __init__(self): | 5505 def __init__(self): |
| 5504 TypeHandler.__init__(self) | 5506 TypeHandler.__init__(self) |
| 5505 | 5507 |
| 5506 def InitFunction(self, func): | 5508 def InitFunction(self, func): |
| 5507 """Overrriden from TypeHandler.""" | 5509 """Overrriden from TypeHandler.""" |
| 5508 func.AddCmdArg(Argument("result_shm_id", 'uint32')) | 5510 func.AddCmdArg(Argument("result_shm_id", 'uint32_t')) |
| 5509 func.AddCmdArg(Argument("result_shm_offset", 'uint32')) | 5511 func.AddCmdArg(Argument("result_shm_offset", 'uint32_t')) |
| 5510 if func.GetInfo('result') == None: | 5512 if func.GetInfo('result') == None: |
| 5511 func.AddInfo('result', ['uint32']) | 5513 func.AddInfo('result', ['uint32_t']) |
| 5512 | 5514 |
| 5513 def WriteServiceUnitTest(self, func, file): | 5515 def WriteServiceUnitTest(self, func, file): |
| 5514 """Overrriden from TypeHandler.""" | 5516 """Overrriden from TypeHandler.""" |
| 5515 valid_test = """ | 5517 valid_test = """ |
| 5516 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5518 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 5517 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 5519 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 5518 SpecializedSetup<cmds::%(name)s, 0>(true); | 5520 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5519 cmds::%(name)s cmd; | 5521 cmds::%(name)s cmd; |
| 5520 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); | 5522 cmd.Init(%(args)s%(comma)sshared_memory_id_, shared_memory_offset_); |
| 5521 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5523 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5555 """ | 5557 """ |
| 5556 self.WriteValidUnitTest(func, file, invalid_test, { | 5558 self.WriteValidUnitTest(func, file, invalid_test, { |
| 5557 'comma': comma, | 5559 'comma': comma, |
| 5558 }) | 5560 }) |
| 5559 | 5561 |
| 5560 def WriteServiceImplementation(self, func, file): | 5562 def WriteServiceImplementation(self, func, file): |
| 5561 """Overrriden from TypeHandler.""" | 5563 """Overrriden from TypeHandler.""" |
| 5562 file.Write( | 5564 file.Write( |
| 5563 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) | 5565 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 5564 file.Write( | 5566 file.Write( |
| 5565 " uint32 immediate_data_size, const gles2::cmds::%s& c) {\n" % | 5567 " uint32_t immediate_data_size, const gles2::cmds::%s& c) {\n" % |
| 5566 func.name) | 5568 func.name) |
| 5567 args = func.GetOriginalArgs() | 5569 args = func.GetOriginalArgs() |
| 5568 for arg in args: | 5570 for arg in args: |
| 5569 arg.WriteGetCode(file) | 5571 arg.WriteGetCode(file) |
| 5570 | 5572 |
| 5571 code = """ typedef cmds::%(func_name)s::Result Result; | 5573 code = """ typedef cmds::%(func_name)s::Result Result; |
| 5572 Result* result_dst = GetSharedMemoryAs<Result*>( | 5574 Result* result_dst = GetSharedMemoryAs<Result*>( |
| 5573 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); | 5575 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); |
| 5574 if (!result_dst) { | 5576 if (!result_dst) { |
| 5575 return error::kOutOfBounds; | 5577 return error::kOutOfBounds; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5625 struct Cmds { | 5627 struct Cmds { |
| 5626 cmds::%(name)s cmd; | 5628 cmds::%(name)s cmd; |
| 5627 }; | 5629 }; |
| 5628 | 5630 |
| 5629 Cmds expected; | 5631 Cmds expected; |
| 5630 ExpectedMemoryInfo result1 = | 5632 ExpectedMemoryInfo result1 = |
| 5631 GetExpectedResultMemory(sizeof(cmds::%(name)s::Result)); | 5633 GetExpectedResultMemory(sizeof(cmds::%(name)s::Result)); |
| 5632 expected.cmd.Init(1, result1.id, result1.offset); | 5634 expected.cmd.Init(1, result1.id, result1.offset); |
| 5633 | 5635 |
| 5634 EXPECT_CALL(*command_buffer(), OnFlush()) | 5636 EXPECT_CALL(*command_buffer(), OnFlush()) |
| 5635 .WillOnce(SetMemory(result1.ptr, uint32(1))) | 5637 .WillOnce(SetMemory(result1.ptr, uint32_t(1))) |
| 5636 .RetiresOnSaturation(); | 5638 .RetiresOnSaturation(); |
| 5637 | 5639 |
| 5638 GLboolean result = gl_->%(name)s(1); | 5640 GLboolean result = gl_->%(name)s(1); |
| 5639 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); | 5641 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); |
| 5640 EXPECT_TRUE(result); | 5642 EXPECT_TRUE(result); |
| 5641 } | 5643 } |
| 5642 """ | 5644 """ |
| 5643 file.Write(code % { | 5645 file.Write(code % { |
| 5644 'name': func.name, | 5646 'name': func.name, |
| 5645 }) | 5647 }) |
| 5646 | 5648 |
| 5647 | 5649 |
| 5648 class STRnHandler(TypeHandler): | 5650 class STRnHandler(TypeHandler): |
| 5649 """Handler for GetProgramInfoLog, GetShaderInfoLog, GetShaderSource, and | 5651 """Handler for GetProgramInfoLog, GetShaderInfoLog, GetShaderSource, and |
| 5650 GetTranslatedShaderSourceANGLE.""" | 5652 GetTranslatedShaderSourceANGLE.""" |
| 5651 | 5653 |
| 5652 def __init__(self): | 5654 def __init__(self): |
| 5653 TypeHandler.__init__(self) | 5655 TypeHandler.__init__(self) |
| 5654 | 5656 |
| 5655 def InitFunction(self, func): | 5657 def InitFunction(self, func): |
| 5656 """Overrriden from TypeHandler.""" | 5658 """Overrriden from TypeHandler.""" |
| 5657 # remove all but the first cmd args. | 5659 # remove all but the first cmd args. |
| 5658 cmd_args = func.GetCmdArgs() | 5660 cmd_args = func.GetCmdArgs() |
| 5659 func.ClearCmdArgs() | 5661 func.ClearCmdArgs() |
| 5660 func.AddCmdArg(cmd_args[0]) | 5662 func.AddCmdArg(cmd_args[0]) |
| 5661 # add on a bucket id. | 5663 # add on a bucket id. |
| 5662 func.AddCmdArg(Argument('bucket_id', 'uint32')) | 5664 func.AddCmdArg(Argument('bucket_id', 'uint32_t')) |
| 5663 | 5665 |
| 5664 def WriteGLES2Implementation(self, func, file): | 5666 def WriteGLES2Implementation(self, func, file): |
| 5665 """Overrriden from TypeHandler.""" | 5667 """Overrriden from TypeHandler.""" |
| 5666 code_1 = """%(return_type)s GLES2Implementation::%(func_name)s(%(args)s) { | 5668 code_1 = """%(return_type)s GLES2Implementation::%(func_name)s(%(args)s) { |
| 5667 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 5669 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
| 5668 """ | 5670 """ |
| 5669 code_2 = """ GPU_CLIENT_LOG("[" << GetLogPrefix() | 5671 code_2 = """ GPU_CLIENT_LOG("[" << GetLogPrefix() |
| 5670 << "] gl%(func_name)s" << "(" | 5672 << "] gl%(func_name)s" << "(" |
| 5671 << %(arg0)s << ", " | 5673 << %(arg0)s << ", " |
| 5672 << %(arg1)s << ", " | 5674 << %(arg1)s << ", " |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5707 } | 5709 } |
| 5708 file.Write(code_1 % str_args) | 5710 file.Write(code_1 % str_args) |
| 5709 func.WriteDestinationInitalizationValidation(file) | 5711 func.WriteDestinationInitalizationValidation(file) |
| 5710 file.Write(code_2 % str_args) | 5712 file.Write(code_2 % str_args) |
| 5711 | 5713 |
| 5712 def WriteServiceUnitTest(self, func, file): | 5714 def WriteServiceUnitTest(self, func, file): |
| 5713 """Overrriden from TypeHandler.""" | 5715 """Overrriden from TypeHandler.""" |
| 5714 valid_test = """ | 5716 valid_test = """ |
| 5715 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5717 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 5716 const char* kInfo = "hello"; | 5718 const char* kInfo = "hello"; |
| 5717 const uint32 kBucketId = 123; | 5719 const uint32_t kBucketId = 123; |
| 5718 SpecializedSetup<cmds::%(name)s, 0>(true); | 5720 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5719 %(expect_len_code)s | 5721 %(expect_len_code)s |
| 5720 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 5722 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
| 5721 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), | 5723 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), |
| 5722 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); | 5724 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); |
| 5723 cmds::%(name)s cmd; | 5725 cmds::%(name)s cmd; |
| 5724 cmd.Init(%(args)s); | 5726 cmd.Init(%(args)s); |
| 5725 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5727 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5726 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); | 5728 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); |
| 5727 ASSERT_TRUE(bucket != NULL); | 5729 ASSERT_TRUE(bucket != NULL); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 5746 } | 5748 } |
| 5747 if get_len_func and get_len_func[0:2] == 'gl': | 5749 if get_len_func and get_len_func[0:2] == 'gl': |
| 5748 sub['expect_len_code'] = ( | 5750 sub['expect_len_code'] = ( |
| 5749 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" | 5751 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" |
| 5750 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( | 5752 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( |
| 5751 get_len_func[2:], id_name, get_len_enum) | 5753 get_len_func[2:], id_name, get_len_enum) |
| 5752 self.WriteValidUnitTest(func, file, valid_test, sub) | 5754 self.WriteValidUnitTest(func, file, valid_test, sub) |
| 5753 | 5755 |
| 5754 invalid_test = """ | 5756 invalid_test = """ |
| 5755 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 5757 TEST_P(%(test_name)s, %(name)sInvalidArgs) { |
| 5756 const uint32 kBucketId = 123; | 5758 const uint32_t kBucketId = 123; |
| 5757 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) | 5759 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) |
| 5758 .Times(0); | 5760 .Times(0); |
| 5759 cmds::%(name)s cmd; | 5761 cmds::%(name)s cmd; |
| 5760 cmd.Init(kInvalidClientId, kBucketId); | 5762 cmd.Init(kInvalidClientId, kBucketId); |
| 5761 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5763 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5762 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 5764 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 5763 } | 5765 } |
| 5764 """ | 5766 """ |
| 5765 self.WriteValidUnitTest(func, file, invalid_test) | 5767 self.WriteValidUnitTest(func, file, invalid_test) |
| 5766 | 5768 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 5777 setattr(self, key, info[key]) | 5779 setattr(self, key, info[key]) |
| 5778 self.type_handler = type_handler | 5780 self.type_handler = type_handler |
| 5779 if not 'type' in info: | 5781 if not 'type' in info: |
| 5780 self.type = '' | 5782 self.type = '' |
| 5781 | 5783 |
| 5782 | 5784 |
| 5783 class Argument(object): | 5785 class Argument(object): |
| 5784 """A class that represents a function argument.""" | 5786 """A class that represents a function argument.""" |
| 5785 | 5787 |
| 5786 cmd_type_map_ = { | 5788 cmd_type_map_ = { |
| 5787 'GLenum': 'uint32', | 5789 'GLenum': 'uint32_t', |
| 5788 'GLint': 'int32', | 5790 'GLint': 'int32_t', |
| 5789 'GLintptr': 'int32', | 5791 'GLintptr': 'int32_t', |
| 5790 'GLsizei': 'int32', | 5792 'GLsizei': 'int32_t', |
| 5791 'GLsizeiptr': 'int32', | 5793 'GLsizeiptr': 'int32_t', |
| 5792 'GLfloat': 'float', | 5794 'GLfloat': 'float', |
| 5793 'GLclampf': 'float', | 5795 'GLclampf': 'float', |
| 5794 } | 5796 } |
| 5795 need_validation_ = ['GLsizei*', 'GLboolean*', 'GLenum*', 'GLint*'] | 5797 need_validation_ = ['GLsizei*', 'GLboolean*', 'GLenum*', 'GLint*'] |
| 5796 | 5798 |
| 5797 def __init__(self, name, type): | 5799 def __init__(self, name, type): |
| 5798 self.name = name | 5800 self.name = name |
| 5799 self.optional = type.endswith("Optional*") | 5801 self.optional = type.endswith("Optional*") |
| 5800 if self.optional: | 5802 if self.optional: |
| 5801 type = type[:-9] + "*" | 5803 type = type[:-9] + "*" |
| 5802 self.type = type | 5804 self.type = type |
| 5803 | 5805 |
| 5804 if type in self.cmd_type_map_: | 5806 if type in self.cmd_type_map_: |
| 5805 self.cmd_type = self.cmd_type_map_[type] | 5807 self.cmd_type = self.cmd_type_map_[type] |
| 5806 else: | 5808 else: |
| 5807 self.cmd_type = 'uint32' | 5809 self.cmd_type = 'uint32_t' |
| 5808 | 5810 |
| 5809 def IsPointer(self): | 5811 def IsPointer(self): |
| 5810 """Returns true if argument is a pointer.""" | 5812 """Returns true if argument is a pointer.""" |
| 5811 return False | 5813 return False |
| 5812 | 5814 |
| 5813 def AddCmdArgs(self, args): | 5815 def AddCmdArgs(self, args): |
| 5814 """Adds command arguments for this argument to the given list.""" | 5816 """Adds command arguments for this argument to the given list.""" |
| 5815 return args.append(self) | 5817 return args.append(self) |
| 5816 | 5818 |
| 5817 def AddInitArgs(self, args): | 5819 def AddInitArgs(self, args): |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5934 | 5936 |
| 5935 def GetValidArg(self, func, offset, index): | 5937 def GetValidArg(self, func, offset, index): |
| 5936 """Gets a valid value for this argument.""" | 5938 """Gets a valid value for this argument.""" |
| 5937 return "%d" % (offset + 1) | 5939 return "%d" % (offset + 1) |
| 5938 | 5940 |
| 5939 | 5941 |
| 5940 class DataSizeArgument(Argument): | 5942 class DataSizeArgument(Argument): |
| 5941 """class for data_size which Bucket commands do not need.""" | 5943 """class for data_size which Bucket commands do not need.""" |
| 5942 | 5944 |
| 5943 def __init__(self, name): | 5945 def __init__(self, name): |
| 5944 Argument.__init__(self, name, "uint32") | 5946 Argument.__init__(self, name, "uint32_t") |
| 5945 | 5947 |
| 5946 def GetBucketVersion(self): | 5948 def GetBucketVersion(self): |
| 5947 return None | 5949 return None |
| 5948 | 5950 |
| 5949 | 5951 |
| 5950 class SizeArgument(Argument): | 5952 class SizeArgument(Argument): |
| 5951 """class for GLsizei and GLsizeiptr.""" | 5953 """class for GLsizei and GLsizeiptr.""" |
| 5952 | 5954 |
| 5953 def __init__(self, name, type): | 5955 def __init__(self, name, type): |
| 5954 Argument.__init__(self, name, type) | 5956 Argument.__init__(self, name, type) |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6204 else: | 6206 else: |
| 6205 return ("shared_memory_id_, kInvalidSharedMemoryOffset", | 6207 return ("shared_memory_id_, kInvalidSharedMemoryOffset", |
| 6206 "kOutOfBounds", None) | 6208 "kOutOfBounds", None) |
| 6207 | 6209 |
| 6208 def GetLogArg(self): | 6210 def GetLogArg(self): |
| 6209 """Overridden from Argument.""" | 6211 """Overridden from Argument.""" |
| 6210 return "static_cast<const void*>(%s)" % self.name | 6212 return "static_cast<const void*>(%s)" % self.name |
| 6211 | 6213 |
| 6212 def AddCmdArgs(self, args): | 6214 def AddCmdArgs(self, args): |
| 6213 """Overridden from Argument.""" | 6215 """Overridden from Argument.""" |
| 6214 args.append(Argument("%s_shm_id" % self.name, 'uint32')) | 6216 args.append(Argument("%s_shm_id" % self.name, 'uint32_t')) |
| 6215 args.append(Argument("%s_shm_offset" % self.name, 'uint32')) | 6217 args.append(Argument("%s_shm_offset" % self.name, 'uint32_t')) |
| 6216 | 6218 |
| 6217 def WriteGetCode(self, file): | 6219 def WriteGetCode(self, file): |
| 6218 """Overridden from Argument.""" | 6220 """Overridden from Argument.""" |
| 6219 file.Write( | 6221 file.Write( |
| 6220 " %s %s = GetSharedMemoryAs<%s>(\n" % | 6222 " %s %s = GetSharedMemoryAs<%s>(\n" % |
| 6221 (self.type, self.name, self.type)) | 6223 (self.type, self.name, self.type)) |
| 6222 file.Write( | 6224 file.Write( |
| 6223 " c.%s_shm_id, c.%s_shm_offset, data_size);\n" % | 6225 " c.%s_shm_id, c.%s_shm_offset, data_size);\n" % |
| 6224 (self.name, self.name)) | 6226 (self.name, self.name)) |
| 6225 | 6227 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 6250 | 6252 |
| 6251 def WriteDestinationInitalizationValidation(self, file, func): | 6253 def WriteDestinationInitalizationValidation(self, file, func): |
| 6252 """Overridden from Argument.""" | 6254 """Overridden from Argument.""" |
| 6253 self.WriteDestinationInitalizationValidatationIfNeeded(file, func) | 6255 self.WriteDestinationInitalizationValidatationIfNeeded(file, func) |
| 6254 | 6256 |
| 6255 | 6257 |
| 6256 class InputStringBucketArgument(Argument): | 6258 class InputStringBucketArgument(Argument): |
| 6257 """An string input argument where the string is passed in a bucket.""" | 6259 """An string input argument where the string is passed in a bucket.""" |
| 6258 | 6260 |
| 6259 def __init__(self, name, type): | 6261 def __init__(self, name, type): |
| 6260 Argument.__init__(self, name + "_bucket_id", "uint32") | 6262 Argument.__init__(self, name + "_bucket_id", "uint32_t") |
| 6261 | 6263 |
| 6262 def WriteGetCode(self, file): | 6264 def WriteGetCode(self, file): |
| 6263 """Overridden from Argument.""" | 6265 """Overridden from Argument.""" |
| 6264 code = """ | 6266 code = """ |
| 6265 Bucket* %(name)s_bucket = GetBucket(c.%(name)s); | 6267 Bucket* %(name)s_bucket = GetBucket(c.%(name)s); |
| 6266 if (!%(name)s_bucket) { | 6268 if (!%(name)s_bucket) { |
| 6267 return error::kInvalidArguments; | 6269 return error::kInvalidArguments; |
| 6268 } | 6270 } |
| 6269 std::string %(name)s_str; | 6271 std::string %(name)s_str; |
| 6270 if (!%(name)s_bucket->GetAsString(&%(name)s_str)) { | 6272 if (!%(name)s_bucket->GetAsString(&%(name)s_str)) { |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6567 | 6569 |
| 6568 file.Write(" static const uint8 cmd_flags = %s;\n" % cmd_flags) | 6570 file.Write(" static const uint8 cmd_flags = %s;\n" % cmd_flags) |
| 6569 | 6571 |
| 6570 | 6572 |
| 6571 def WriteCmdArgFlag(self, file): | 6573 def WriteCmdArgFlag(self, file): |
| 6572 """Writes the cmd kArgFlags constant.""" | 6574 """Writes the cmd kArgFlags constant.""" |
| 6573 file.Write(" static const cmd::ArgFlags kArgFlags = cmd::kFixed;\n") | 6575 file.Write(" static const cmd::ArgFlags kArgFlags = cmd::kFixed;\n") |
| 6574 | 6576 |
| 6575 def WriteCmdComputeSize(self, file): | 6577 def WriteCmdComputeSize(self, file): |
| 6576 """Writes the ComputeSize function for the command.""" | 6578 """Writes the ComputeSize function for the command.""" |
| 6577 file.Write(" static uint32 ComputeSize() {\n") | 6579 file.Write(" static uint32_t ComputeSize() {\n") |
| 6578 file.Write( | 6580 file.Write( |
| 6579 " return static_cast<uint32>(sizeof(ValueType)); // NOLINT\n") | 6581 " return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT\n") |
| 6580 file.Write(" }\n") | 6582 file.Write(" }\n") |
| 6581 file.Write("\n") | 6583 file.Write("\n") |
| 6582 | 6584 |
| 6583 def WriteCmdSetHeader(self, file): | 6585 def WriteCmdSetHeader(self, file): |
| 6584 """Writes the cmd's SetHeader function.""" | 6586 """Writes the cmd's SetHeader function.""" |
| 6585 file.Write(" void SetHeader() {\n") | 6587 file.Write(" void SetHeader() {\n") |
| 6586 file.Write(" header.SetCmd<ValueType>();\n") | 6588 file.Write(" header.SetCmd<ValueType>();\n") |
| 6587 file.Write(" }\n") | 6589 file.Write(" }\n") |
| 6588 file.Write("\n") | 6590 file.Write("\n") |
| 6589 | 6591 |
| (...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7691 pre = ' ' | 7693 pre = ' ' |
| 7692 file.Write("}\n\n"); | 7694 file.Write("}\n\n"); |
| 7693 file.Close() | 7695 file.Close() |
| 7694 | 7696 |
| 7695 def WriteCommonUtilsHeader(self, filename): | 7697 def WriteCommonUtilsHeader(self, filename): |
| 7696 """Writes the gles2 common utility header.""" | 7698 """Writes the gles2 common utility header.""" |
| 7697 file = CHeaderWriter(filename) | 7699 file = CHeaderWriter(filename) |
| 7698 enums = sorted(_ENUM_LISTS.keys()) | 7700 enums = sorted(_ENUM_LISTS.keys()) |
| 7699 for enum in enums: | 7701 for enum in enums: |
| 7700 if _ENUM_LISTS[enum]['type'] == 'GLenum': | 7702 if _ENUM_LISTS[enum]['type'] == 'GLenum': |
| 7701 file.Write("static std::string GetString%s(uint32 value);\n" % enum) | 7703 file.Write("static std::string GetString%s(uint32_t value);\n" % enum) |
| 7702 file.Write("\n") | 7704 file.Write("\n") |
| 7703 file.Close() | 7705 file.Close() |
| 7704 | 7706 |
| 7705 def WriteCommonUtilsImpl(self, filename): | 7707 def WriteCommonUtilsImpl(self, filename): |
| 7706 """Writes the gles2 common utility header.""" | 7708 """Writes the gles2 common utility header.""" |
| 7707 enum_re = re.compile(r'\#define\s+(GL_[a-zA-Z0-9_]+)\s+([0-9A-Fa-fx]+)') | 7709 enum_re = re.compile(r'\#define\s+(GL_[a-zA-Z0-9_]+)\s+([0-9A-Fa-fx]+)') |
| 7708 dict = {} | 7710 dict = {} |
| 7709 for fname in ['../../third_party/khronos/GLES2/gl2.h', | 7711 for fname in ['../../third_party/khronos/GLES2/gl2.h', |
| 7710 '../../third_party/khronos/GLES2/gl2ext.h', | 7712 '../../third_party/khronos/GLES2/gl2ext.h', |
| 7711 '../../gpu/GLES2/gl2chromium.h', | 7713 '../../gpu/GLES2/gl2chromium.h', |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7729 const GLES2Util::EnumToString* const GLES2Util::enum_to_string_table_ = | 7731 const GLES2Util::EnumToString* const GLES2Util::enum_to_string_table_ = |
| 7730 enum_to_string_table; | 7732 enum_to_string_table; |
| 7731 const size_t GLES2Util::enum_to_string_table_len_ = | 7733 const size_t GLES2Util::enum_to_string_table_len_ = |
| 7732 sizeof(enum_to_string_table) / sizeof(enum_to_string_table[0]); | 7734 sizeof(enum_to_string_table) / sizeof(enum_to_string_table[0]); |
| 7733 | 7735 |
| 7734 """) | 7736 """) |
| 7735 | 7737 |
| 7736 enums = sorted(_ENUM_LISTS.keys()) | 7738 enums = sorted(_ENUM_LISTS.keys()) |
| 7737 for enum in enums: | 7739 for enum in enums: |
| 7738 if _ENUM_LISTS[enum]['type'] == 'GLenum': | 7740 if _ENUM_LISTS[enum]['type'] == 'GLenum': |
| 7739 file.Write("std::string GLES2Util::GetString%s(uint32 value) {\n" % | 7741 file.Write("std::string GLES2Util::GetString%s(uint32_t value) {\n" % |
| 7740 enum) | 7742 enum) |
| 7741 if len(_ENUM_LISTS[enum]['valid']) > 0: | 7743 if len(_ENUM_LISTS[enum]['valid']) > 0: |
| 7742 file.Write(" static const EnumToString string_table[] = {\n") | 7744 file.Write(" static const EnumToString string_table[] = {\n") |
| 7743 for value in _ENUM_LISTS[enum]['valid']: | 7745 for value in _ENUM_LISTS[enum]['valid']: |
| 7744 file.Write(' { %s, "%s" },\n' % (value, value)) | 7746 file.Write(' { %s, "%s" },\n' % (value, value)) |
| 7745 file.Write(""" }; | 7747 file.Write(""" }; |
| 7746 return GLES2Util::GetQualifiedEnumString( | 7748 return GLES2Util::GetQualifiedEnumString( |
| 7747 string_table, arraysize(string_table), value); | 7749 string_table, arraysize(string_table), value); |
| 7748 } | 7750 } |
| 7749 | 7751 |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8063 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) | 8065 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) |
| 8064 | 8066 |
| 8065 if gen.errors > 0: | 8067 if gen.errors > 0: |
| 8066 print "%d errors" % gen.errors | 8068 print "%d errors" % gen.errors |
| 8067 return 1 | 8069 return 1 |
| 8068 return 0 | 8070 return 0 |
| 8069 | 8071 |
| 8070 | 8072 |
| 8071 if __name__ == '__main__': | 8073 if __name__ == '__main__': |
| 8072 sys.exit(main(sys.argv[1:])) | 8074 sys.exit(main(sys.argv[1:])) |
| OLD | NEW |