OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # | 2 # |
3 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """code generator for GL command buffers.""" | 7 """code generator for GL command buffers.""" |
8 | 8 |
9 import os | 9 import os |
10 import os.path | 10 import os.path |
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 'CompressedTexSubImage2D': {'type': 'Data'}, | 656 'CompressedTexSubImage2D': {'type': 'Data'}, |
657 'CreateProgram': {'type': 'Create'}, | 657 'CreateProgram': {'type': 'Create'}, |
658 'CreateShader': {'type': 'Create'}, | 658 'CreateShader': {'type': 'Create'}, |
659 'DeleteBuffers': {'type': 'DELn'}, | 659 'DeleteBuffers': {'type': 'DELn'}, |
660 'DeleteFramebuffers': {'type': 'DELn'}, | 660 'DeleteFramebuffers': {'type': 'DELn'}, |
661 'DeleteProgram': {'type': 'Custom', 'DecoderFunc': 'DoDeleteProgram'}, | 661 'DeleteProgram': {'type': 'Custom', 'DecoderFunc': 'DoDeleteProgram'}, |
662 'DeleteRenderbuffers': {'type': 'DELn'}, | 662 'DeleteRenderbuffers': {'type': 'DELn'}, |
663 'DeleteShader': {'type': 'Custom', 'DecoderFunc': 'DoDeleteShader'}, | 663 'DeleteShader': {'type': 'Custom', 'DecoderFunc': 'DoDeleteShader'}, |
664 'DeleteTextures': {'type': 'DELn'}, | 664 'DeleteTextures': {'type': 'DELn'}, |
665 'DepthRangef': {'DecoderFunc': 'glDepthRange'}, | 665 'DepthRangef': {'DecoderFunc': 'glDepthRange'}, |
| 666 'DisableVertexAttribArray': {'DecoderFunc': 'DoDisableVertexAttribArray'}, |
| 667 'DrawArrays': { 'DecoderFunc': 'DoDrawArrays'}, |
666 'DrawElements': { | 668 'DrawElements': { |
667 'type': 'Manual', | 669 'type': 'Manual', |
668 'cmd_args': 'GLenum mode, GLsizei count, GLenum type, GLuint index_offset', | 670 'cmd_args': 'GLenum mode, GLsizei count, GLenum type, GLuint index_offset', |
669 }, | 671 }, |
| 672 'EnableVertexAttribArray': {'DecoderFunc': 'DoEnableVertexAttribArray'}, |
670 'FramebufferRenderbuffer': {'DecoderFunc': 'glFramebufferRenderbufferEXT'}, | 673 'FramebufferRenderbuffer': {'DecoderFunc': 'glFramebufferRenderbufferEXT'}, |
671 'FramebufferTexture2D': {'DecoderFunc': 'glFramebufferTexture2DEXT'}, | 674 'FramebufferTexture2D': {'DecoderFunc': 'glFramebufferTexture2DEXT'}, |
672 'GenerateMipmap': {'DecoderFunc': 'glGenerateMipmapEXT'}, | 675 'GenerateMipmap': {'DecoderFunc': 'glGenerateMipmapEXT'}, |
673 'GenBuffers': {'type': 'GENn'}, | 676 'GenBuffers': {'type': 'GENn'}, |
674 'GenFramebuffers': {'type': 'GENn'}, | 677 'GenFramebuffers': {'type': 'GENn'}, |
675 'GenRenderbuffers': {'type': 'GENn'}, | 678 'GenRenderbuffers': {'type': 'GENn'}, |
676 'GenTextures': {'type': 'GENn'}, | 679 'GenTextures': {'type': 'GENn'}, |
677 'GetActiveAttrib': {'type': 'Custom'}, | 680 'GetActiveAttrib': {'type': 'Custom'}, |
678 'GetActiveUniform': {'type': 'Custom'}, | 681 'GetActiveUniform': {'type': 'Custom'}, |
679 'GetAttachedShaders': {'type': 'Custom'}, | 682 'GetAttachedShaders': {'type': 'Custom'}, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
717 'GetVertexAttribfv': {'type': 'GETn'}, | 720 'GetVertexAttribfv': {'type': 'GETn'}, |
718 'GetVertexAttribiv': {'type': 'GETn'}, | 721 'GetVertexAttribiv': {'type': 'GETn'}, |
719 'GetVertexAttribPointerv': {'type': 'Custom', 'immediate': False}, | 722 'GetVertexAttribPointerv': {'type': 'Custom', 'immediate': False}, |
720 'IsBuffer': {'type': 'Is'}, | 723 'IsBuffer': {'type': 'Is'}, |
721 'IsEnabled': {'type': 'Is'}, | 724 'IsEnabled': {'type': 'Is'}, |
722 'IsFramebuffer': {'type': 'Is', 'DecoderFunc': 'glIsFramebufferEXT'}, | 725 'IsFramebuffer': {'type': 'Is', 'DecoderFunc': 'glIsFramebufferEXT'}, |
723 'IsProgram': {'type': 'Is'}, | 726 'IsProgram': {'type': 'Is'}, |
724 'IsRenderbuffer': {'type': 'Is', 'DecoderFunc': 'glIsRenderbufferEXT'}, | 727 'IsRenderbuffer': {'type': 'Is', 'DecoderFunc': 'glIsRenderbufferEXT'}, |
725 'IsShader': {'type': 'Is'}, | 728 'IsShader': {'type': 'Is'}, |
726 'IsTexture': {'type': 'Is'}, | 729 'IsTexture': {'type': 'Is'}, |
| 730 'LinkProgram': {'DecoderFunc': 'DoLinkProgram'}, |
727 'PixelStorei': {'type': 'Manual'}, | 731 'PixelStorei': {'type': 'Manual'}, |
728 'RenderbufferStorage': {'DecoderFunc': 'glRenderbufferStorageEXT'}, | 732 'RenderbufferStorage': {'DecoderFunc': 'glRenderbufferStorageEXT'}, |
729 'ReadPixels': {'type': 'Custom', 'immediate': False}, | 733 'ReadPixels': {'type': 'Custom', 'immediate': False}, |
730 'ReleaseShaderCompiler': {'type': 'Noop'}, | 734 'ReleaseShaderCompiler': {'type': 'Noop'}, |
731 'ShaderBinary': {'type': 'Noop'}, | 735 'ShaderBinary': {'type': 'Noop'}, |
732 'ShaderSource': { | 736 'ShaderSource': { |
733 'type': 'Manual', | 737 'type': 'Manual', |
734 'immediate': True, | 738 'immediate': True, |
735 'needs_size': True, | 739 'needs_size': True, |
736 'cmd_args': | 740 'cmd_args': |
737 'GLuint shader, GLsizei count, const char* data', | 741 'GLuint shader, GLsizei count, const char* data', |
738 }, | 742 }, |
739 'TexImage2D': {'type': 'Manual', 'immediate': True}, | 743 'TexImage2D': {'type': 'Manual', 'immediate': True}, |
740 'TexParameterfv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 1}, | 744 'TexParameterfv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 1}, |
741 'TexParameteriv': {'type': 'PUT', 'data_type': 'GLint', 'count': 1}, | 745 'TexParameteriv': {'type': 'PUT', 'data_type': 'GLint', 'count': 1}, |
742 'TexSubImage2D': {'type': 'Data'}, | 746 'TexSubImage2D': {'type': 'Data'}, |
743 'Uniform1fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 1}, | 747 'Uniform1fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 1}, |
744 'Uniform1iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 1}, | 748 'Uniform1iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 1}, |
745 'Uniform2fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 2}, | 749 'Uniform2fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 2}, |
746 'Uniform2iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 2}, | 750 'Uniform2iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 2}, |
747 'Uniform3fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 3}, | 751 'Uniform3fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 3}, |
748 'Uniform3iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 3}, | 752 'Uniform3iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 3}, |
749 'Uniform4fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 4}, | 753 'Uniform4fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 4}, |
750 'Uniform4iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 4}, | 754 'Uniform4iv': {'type': 'PUTn', 'data_type': 'GLint', 'count': 4}, |
751 'UniformMatrix2fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 4}, | 755 'UniformMatrix2fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 4}, |
752 'UniformMatrix3fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 9}, | 756 'UniformMatrix3fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 9}, |
753 'UniformMatrix4fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 16}, | 757 'UniformMatrix4fv': {'type': 'PUTn', 'data_type': 'GLfloat', 'count': 16}, |
| 758 'UseProgram': {'DecoderFunc': 'DoUseProgram'}, |
754 'VertexAttrib1fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 1}, | 759 'VertexAttrib1fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 1}, |
755 'VertexAttrib2fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 2}, | 760 'VertexAttrib2fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 2}, |
756 'VertexAttrib3fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 3}, | 761 'VertexAttrib3fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 3}, |
757 'VertexAttrib4fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 4}, | 762 'VertexAttrib4fv': {'type': 'PUT', 'data_type': 'GLfloat', 'count': 4}, |
758 'VertexAttribPointer': { | 763 'VertexAttribPointer': { |
759 'type': 'Manual', | 764 'type': 'Manual', |
760 'cmd_args': 'GLuint indx, GLint size, GLenum type, GLboolean normalized, ' | 765 'cmd_args': 'GLuint indx, GLint size, GLenum type, GLboolean normalized, ' |
761 'GLsizei stride, GLuint offset', | 766 'GLsizei stride, GLuint offset', |
762 }, | 767 }, |
763 'SwapBuffers': {'DecoderFunc': 'DoSwapBuffers'}, | 768 'SwapBuffers': {'DecoderFunc': 'DoSwapBuffers'}, |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 func.type_handler.WriteImmediateCmdSizeTest(func, file) | 939 func.type_handler.WriteImmediateCmdSizeTest(func, file) |
935 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n") | 940 file.Write(" EXPECT_EQ(static_cast<char*>(next_cmd),\n") |
936 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n"); | 941 file.Write(" reinterpret_cast<char*>(&cmd) + sizeof(cmd));\n"); |
937 for arg in args: | 942 for arg in args: |
938 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % | 943 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" % |
939 (arg.type, value, arg.name)) | 944 (arg.type, value, arg.name)) |
940 value += 1 | 945 value += 1 |
941 file.Write("}\n") | 946 file.Write("}\n") |
942 file.Write("\n") | 947 file.Write("\n") |
943 | 948 |
| 949 def WriteGetDataSizeCode(self, func, file): |
| 950 """Writes the code to set data_size used in validation""" |
| 951 pass |
| 952 |
944 def WriteImmediateCmdSizeTest(self, func, file): | 953 def WriteImmediateCmdSizeTest(self, func, file): |
945 """Writes a size test for an immediate version of a command.""" | 954 """Writes a size test for an immediate version of a command.""" |
946 file.Write(" // TODO(gman): Compute correct size.\n") | 955 file.Write(" // TODO(gman): Compute correct size.\n") |
947 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n") | 956 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n") |
948 | 957 |
949 def WriteImmediateHandlerImplementation (self, func, file): | 958 def WriteImmediateHandlerImplementation (self, func, file): |
950 """Writes the handler impl for the immediate version of a command.""" | 959 """Writes the handler impl for the immediate version of a command.""" |
951 file.Write(" // Immediate version.\n") | |
952 func.WriteHandlerValidation(file) | |
953 file.Write(" %s(%s);\n" % | 960 file.Write(" %s(%s);\n" % |
954 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) | 961 (func.GetGLFunctionName(), func.MakeOriginalArgString(""))) |
955 | 962 |
956 def WriteServiceImplementation(self, func, file): | 963 def WriteServiceImplementation(self, func, file): |
957 """Writes the service implementation for a command.""" | 964 """Writes the service implementation for a command.""" |
958 file.Write( | 965 file.Write( |
959 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) | 966 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) |
960 file.Write( | 967 file.Write( |
961 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 968 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) |
962 for arg in func.GetOriginalArgs(): | 969 if len(func.GetOriginalArgs()) > 0: |
963 arg.WriteGetCode(file) | 970 last_arg = func.GetLastOriginalArg() |
| 971 all_but_last_arg = func.GetOriginalArgs()[:-1] |
| 972 for arg in all_but_last_arg: |
| 973 arg.WriteGetCode(file) |
| 974 self.WriteGetDataSizeCode(func, file) |
| 975 last_arg.WriteGetCode(file) |
964 func.WriteHandlerValidation(file) | 976 func.WriteHandlerValidation(file) |
965 func.WriteHandlerImplementation(file) | 977 func.WriteHandlerImplementation(file) |
966 file.Write(" return parse_error::kParseNoError;\n") | 978 file.Write(" return parse_error::kParseNoError;\n") |
967 file.Write("}\n") | 979 file.Write("}\n") |
968 file.Write("\n") | 980 file.Write("\n") |
969 | 981 |
970 def WriteImmediateServiceImplementation(self, func, file): | 982 def WriteImmediateServiceImplementation(self, func, file): |
971 """Writes the service implementation for an immediate version of command.""" | 983 """Writes the service implementation for an immediate version of command.""" |
972 file.Write( | 984 file.Write( |
973 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) | 985 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) |
974 file.Write( | 986 file.Write( |
975 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 987 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) |
976 for arg in func.GetOriginalArgs(): | 988 last_arg = func.GetLastOriginalArg() |
| 989 all_but_last_arg = func.GetOriginalArgs()[:-1] |
| 990 for arg in all_but_last_arg: |
977 arg.WriteGetCode(file) | 991 arg.WriteGetCode(file) |
| 992 self.WriteGetDataSizeCode(func, file) |
| 993 last_arg.WriteGetCode(file) |
978 func.WriteHandlerValidation(file) | 994 func.WriteHandlerValidation(file) |
979 func.WriteHandlerImplementation(file) | 995 func.WriteHandlerImplementation(file) |
980 file.Write(" return parse_error::kParseNoError;\n") | 996 file.Write(" return parse_error::kParseNoError;\n") |
981 file.Write("}\n") | 997 file.Write("}\n") |
982 file.Write("\n") | 998 file.Write("\n") |
983 | 999 |
984 def WriteImmediateValidationCode(self, func, file): | 1000 def WriteImmediateValidationCode(self, func, file): |
985 """Writes the validation code for an immediate version of a command.""" | 1001 """Writes the validation code for an immediate version of a command.""" |
986 pass | 1002 pass |
987 | 1003 |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 | 1208 |
1193 def WriteImmediateCmdGetTotalSize(self, func, file): | 1209 def WriteImmediateCmdGetTotalSize(self, func, file): |
1194 """Overrriden from TypeHandler.""" | 1210 """Overrriden from TypeHandler.""" |
1195 # TODO(gman): Move this data to _FUNCTION_INFO? | 1211 # TODO(gman): Move this data to _FUNCTION_INFO? |
1196 if func.name == 'ShaderSourceImmediate': | 1212 if func.name == 'ShaderSourceImmediate': |
1197 file.Write(" uint32 total_size = ComputeSize(_data_size);\n") | 1213 file.Write(" uint32 total_size = ComputeSize(_data_size);\n") |
1198 else: | 1214 else: |
1199 CustomHandler.WriteImmediateCmdGetTotalSize(self, func, file) | 1215 CustomHandler.WriteImmediateCmdGetTotalSize(self, func, file) |
1200 | 1216 |
1201 | 1217 |
1202 class DataHandler(CustomHandler): | 1218 class DataHandler(TypeHandler): |
1203 """Handler for glBufferData, glBufferSubData, glTexImage2D, glTexSubImage2D, | 1219 """Handler for glBufferData, glBufferSubData, glTexImage2D, glTexSubImage2D, |
1204 glCompressedTexImage2D, glCompressedTexImageSub2D.""" | 1220 glCompressedTexImage2D, glCompressedTexImageSub2D.""" |
1205 def __init__(self): | 1221 def __init__(self): |
1206 CustomHandler.__init__(self) | 1222 TypeHandler.__init__(self) |
1207 | 1223 |
1208 def WriteServiceImplementation(self, func, file): | 1224 def WriteGetDataSizeCode(self, func, file): |
1209 """Overrriden from TypeHandler.""" | 1225 """Overrriden from TypeHandler.""" |
1210 file.Write( | |
1211 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) | |
1212 file.Write( | |
1213 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | |
1214 for arg in func.GetCmdArgs(): | |
1215 arg.WriteGetCode(file) | |
1216 | |
1217 # TODO(gman): Move this data to _FUNCTION_INFO? | 1226 # TODO(gman): Move this data to _FUNCTION_INFO? |
1218 if func.name == 'BufferData': | 1227 name = func.name |
| 1228 if name.endswith("Immediate"): |
| 1229 name = name[0:-9] |
| 1230 if name == 'BufferData': |
1219 file.Write(" uint32 data_size = size;\n") | 1231 file.Write(" uint32 data_size = size;\n") |
1220 elif func.name == 'BufferSubData': | 1232 elif name == 'BufferSubData': |
1221 file.Write(" uint32 data_size = size;\n") | 1233 file.Write(" uint32 data_size = size;\n") |
1222 elif func.name == 'CompressedTexImage2D': | 1234 elif name == 'CompressedTexImage2D': |
1223 file.Write(" uint32 data_size = imageSize;\n") | 1235 file.Write(" uint32 data_size = imageSize;\n") |
1224 elif func.name == 'CompressedTexSubImage2D': | 1236 elif name == 'CompressedTexSubImage2D': |
1225 file.Write(" uint32 data_size = imageSize;\n") | 1237 file.Write(" uint32 data_size = imageSize;\n") |
1226 elif func.name == 'TexImage2D': | 1238 elif name == 'TexImage2D': |
1227 file.Write(" uint32 pixels_size = GLES2Util::ComputeImageDataSize(\n") | 1239 file.Write(" uint32 data_size = GLES2Util::ComputeImageDataSize(\n") |
1228 file.Write(" width, height, format, type, unpack_alignment_);\n") | 1240 file.Write(" width, height, format, type, unpack_alignment_);\n") |
1229 elif func.name == 'TexSubImage2D': | 1241 elif name == 'TexSubImage2D': |
1230 file.Write(" uint32 pixels_size = GLES2Util::ComputeImageDataSize(\n") | 1242 file.Write(" uint32 data_size = GLES2Util::ComputeImageDataSize(\n") |
1231 file.Write(" width, height, format, type, unpack_alignment_);\n") | 1243 file.Write(" width, height, format, type, unpack_alignment_);\n") |
1232 else: | 1244 else: |
1233 file.Write(" uint32 data_size = 0; // TODO(gman): get correct size!\n") | 1245 file.Write("// uint32 data_size = 0; // TODO(gman): get correct size!\n") |
1234 | |
1235 for arg in func.GetOriginalArgs(): | |
1236 arg.WriteGetAddress(file) | |
1237 func.WriteHandlerValidation(file) | |
1238 func.WriteHandlerImplementation(file) | |
1239 file.Write(" return parse_error::kParseNoError;\n") | |
1240 file.Write("}\n") | |
1241 file.Write("\n") | |
1242 | 1246 |
1243 def WriteImmediateCmdGetTotalSize(self, func, file): | 1247 def WriteImmediateCmdGetTotalSize(self, func, file): |
1244 """Overrriden from TypeHandler.""" | 1248 """Overrriden from TypeHandler.""" |
1245 # TODO(gman): Move this data to _FUNCTION_INFO? | 1249 # TODO(gman): Move this data to _FUNCTION_INFO? |
1246 if func.name == 'BufferDataImmediate': | 1250 if func.name == 'BufferDataImmediate': |
1247 file.Write(" uint32 total_size = ComputeSize(_size);\n") | 1251 file.Write(" uint32 total_size = ComputeSize(_size);\n") |
1248 elif func.name == 'BufferSubDataImmediate': | 1252 elif func.name == 'BufferSubDataImmediate': |
1249 file.Write(" uint32 total_size = ComputeSize(_size);\n") | 1253 file.Write(" uint32 total_size = ComputeSize(_size);\n") |
1250 elif func.name == 'CompressedTexImage2DImmediate': | 1254 elif func.name == 'CompressedTexImage2DImmediate': |
1251 file.Write(" uint32 total_size = ComputeSize(_imageSize);\n") | 1255 file.Write(" uint32 total_size = ComputeSize(_imageSize);\n") |
(...skipping 18 matching lines...) Expand all Loading... |
1270 elif func.name == 'CompressedTexSubImage2DImmediate': | 1274 elif func.name == 'CompressedTexSubImage2DImmediate': |
1271 file.Write(" uint32 total_size = cmd.ComputeSize(cmd.imageSize);\n") | 1275 file.Write(" uint32 total_size = cmd.ComputeSize(cmd.imageSize);\n") |
1272 elif func.name == 'TexImage2DImmediate': | 1276 elif func.name == 'TexImage2DImmediate': |
1273 file.Write( | 1277 file.Write( |
1274 " uint32 total_size = 0; // TODO(gman): get correct size\n") | 1278 " uint32 total_size = 0; // TODO(gman): get correct size\n") |
1275 elif func.name == 'TexSubImage2DImmediate': | 1279 elif func.name == 'TexSubImage2DImmediate': |
1276 file.Write( | 1280 file.Write( |
1277 " uint32 total_size = 0; // TODO(gman): get correct size\n") | 1281 " uint32 total_size = 0; // TODO(gman): get correct size\n") |
1278 file.Write(" EXPECT_EQ(sizeof(cmd), total_size);\n") | 1282 file.Write(" EXPECT_EQ(sizeof(cmd), total_size);\n") |
1279 | 1283 |
| 1284 def WriteImmediateCmdInit(self, func, file): |
| 1285 """Overrriden from TypeHandler.""" |
| 1286 file.Write(" void Init(%s) {\n" % func.MakeTypedCmdArgString("_")) |
| 1287 self.WriteImmediateCmdGetTotalSize(func, file) |
| 1288 file.Write(" SetHeader(total_size);\n") |
| 1289 args = func.GetCmdArgs() |
| 1290 for arg in args: |
| 1291 file.Write(" %s = _%s;\n" % (arg.name, arg.name)) |
| 1292 file.Write(" }\n") |
| 1293 file.Write("\n") |
| 1294 |
| 1295 def WriteImmediateCmdSet(self, func, file): |
| 1296 """Overrriden from TypeHandler.""" |
| 1297 copy_args = func.MakeCmdArgString("_", False) |
| 1298 file.Write(" void* Set(void* cmd%s) {\n" % |
| 1299 func.MakeTypedCmdArgString("_", True)) |
| 1300 self.WriteImmediateCmdGetTotalSize(func, file) |
| 1301 file.Write(" static_cast<ValueType*>(cmd)->Init(%s);\n" % copy_args) |
| 1302 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>(" |
| 1303 "cmd, total_size);\n") |
| 1304 file.Write(" }\n") |
| 1305 file.Write("\n") |
| 1306 |
1280 def WriteImmediateFormatTest(self, func, file): | 1307 def WriteImmediateFormatTest(self, func, file): |
1281 """Overrriden from TypeHandler.""" | 1308 """Overrriden from TypeHandler.""" |
1282 # TODO(gman): Remove this exception. | 1309 # TODO(gman): Remove this exception. |
1283 file.Write("// TODO(gman): Implement test for %s\n" % func.name) | 1310 file.Write("// TODO(gman): Implement test for %s\n" % func.name) |
1284 return | 1311 return |
1285 | 1312 |
1286 def WriteGLES2ImplementationImpl(self, func, file): | 1313 def WriteGLES2ImplementationImpl(self, func, file): |
1287 """Overrriden from TypeHandler.""" | 1314 """Overrriden from TypeHandler.""" |
1288 pass | 1315 pass |
1289 | 1316 |
1290 | 1317 |
1291 class GENnHandler(TypeHandler): | 1318 class GENnHandler(TypeHandler): |
1292 """Handler for glGen___ type functions.""" | 1319 """Handler for glGen___ type functions.""" |
1293 | 1320 |
1294 def __init__(self): | 1321 def __init__(self): |
1295 TypeHandler.__init__(self) | 1322 TypeHandler.__init__(self) |
1296 | 1323 |
1297 def InitFunction(self, func): | 1324 def InitFunction(self, func): |
1298 """Overrriden from TypeHandler.""" | 1325 """Overrriden from TypeHandler.""" |
1299 pass | 1326 pass |
1300 | 1327 |
| 1328 def WriteGetDataSizeCode(self, func, file): |
| 1329 """Overrriden from TypeHandler.""" |
| 1330 file.Write(" uint32 data_size = n * sizeof(GLuint);\n") |
| 1331 |
1301 def WriteHandlerImplementation (self, func, file): | 1332 def WriteHandlerImplementation (self, func, file): |
1302 """Overrriden from TypeHandler.""" | 1333 """Overrriden from TypeHandler.""" |
1303 func.WriteHandlerValidation(file) | |
1304 file.Write(" GenGLObjects<GL%sHelper>(n, %s);\n" % | 1334 file.Write(" GenGLObjects<GL%sHelper>(n, %s);\n" % |
1305 (func.name, func.GetLastOriginalArg().name)) | 1335 (func.name, func.GetLastOriginalArg().name)) |
1306 | 1336 |
1307 def WriteImmediateHandlerImplementation(self, func, file): | 1337 def WriteImmediateHandlerImplementation(self, func, file): |
1308 """Overrriden from TypeHandler.""" | 1338 """Overrriden from TypeHandler.""" |
1309 func.WriteHandlerValidation(file) | |
1310 file.Write(" GenGLObjects<GL%sHelper>(n, %s);\n" % | 1339 file.Write(" GenGLObjects<GL%sHelper>(n, %s);\n" % |
1311 (func.original_name, func.GetLastOriginalArg().name)) | 1340 (func.original_name, func.GetLastOriginalArg().name)) |
1312 | 1341 |
1313 def WriteGLES2ImplementationHeader(self, func, file): | 1342 def WriteGLES2ImplementationHeader(self, func, file): |
1314 """Overrriden from TypeHandler.""" | 1343 """Overrriden from TypeHandler.""" |
1315 file.Write("%s %s(%s) {\n" % | 1344 file.Write("%s %s(%s) {\n" % |
1316 (func.return_type, func.original_name, | 1345 (func.return_type, func.original_name, |
1317 func.MakeTypedOriginalArgString(""))) | 1346 func.MakeTypedOriginalArgString(""))) |
1318 file.Write(" MakeIds(%s);\n" % func.MakeOriginalArgString("")) | 1347 file.Write(" MakeIds(%s);\n" % func.MakeOriginalArgString("")) |
1319 file.Write(" helper_->%sImmediate(%s);\n" % | 1348 file.Write(" helper_->%sImmediate(%s);\n" % |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1428 def __init__(self): | 1457 def __init__(self): |
1429 TypeHandler.__init__(self) | 1458 TypeHandler.__init__(self) |
1430 | 1459 |
1431 def InitFunction(self, func): | 1460 def InitFunction(self, func): |
1432 """Overrriden from TypeHandler.""" | 1461 """Overrriden from TypeHandler.""" |
1433 func.AddCmdArg(Argument("client_id", 'uint32')) | 1462 func.AddCmdArg(Argument("client_id", 'uint32')) |
1434 | 1463 |
1435 def WriteHandlerImplementation (self, func, file): | 1464 def WriteHandlerImplementation (self, func, file): |
1436 """Overrriden from TypeHandler.""" | 1465 """Overrriden from TypeHandler.""" |
1437 file.Write(" uint32 client_id = c.client_id;\n") | 1466 file.Write(" uint32 client_id = c.client_id;\n") |
1438 func.WriteHandlerValidation(file) | |
1439 file.Write(" %sHelper(%s);\n" % | 1467 file.Write(" %sHelper(%s);\n" % |
1440 (func.name, func.MakeCmdArgString(""))) | 1468 (func.name, func.MakeCmdArgString(""))) |
1441 | 1469 |
1442 def WriteGLES2ImplementationHeader(self, func, file): | 1470 def WriteGLES2ImplementationHeader(self, func, file): |
1443 """Overrriden from TypeHandler.""" | 1471 """Overrriden from TypeHandler.""" |
1444 file.Write("%s %s(%s) {\n" % | 1472 file.Write("%s %s(%s) {\n" % |
1445 (func.return_type, func.original_name, | 1473 (func.return_type, func.original_name, |
1446 func.MakeTypedOriginalArgString(""))) | 1474 func.MakeTypedOriginalArgString(""))) |
1447 file.Write(" GLuint client_id;\n") | 1475 file.Write(" GLuint client_id;\n") |
1448 file.Write(" MakeIds(1, &client_id);\n") | 1476 file.Write(" MakeIds(1, &client_id);\n") |
1449 file.Write(" helper_->%s(%s);\n" % | 1477 file.Write(" helper_->%s(%s);\n" % |
1450 (func.name, func.MakeCmdArgString(""))) | 1478 (func.name, func.MakeCmdArgString(""))) |
1451 file.Write(" return client_id;\n") | 1479 file.Write(" return client_id;\n") |
1452 file.Write("}\n") | 1480 file.Write("}\n") |
1453 file.Write("\n") | 1481 file.Write("\n") |
1454 | 1482 |
1455 def WriteGLES2ImplementationImpl(self, func, file): | 1483 def WriteGLES2ImplementationImpl(self, func, file): |
1456 """Overrriden from TypeHandler.""" | 1484 """Overrriden from TypeHandler.""" |
1457 pass | 1485 pass |
1458 | 1486 |
1459 | 1487 |
1460 class DELnHandler(TypeHandler): | 1488 class DELnHandler(TypeHandler): |
1461 """Handler for glDelete___ type functions.""" | 1489 """Handler for glDelete___ type functions.""" |
1462 | 1490 |
1463 def __init__(self): | 1491 def __init__(self): |
1464 TypeHandler.__init__(self) | 1492 TypeHandler.__init__(self) |
1465 | 1493 |
| 1494 def WriteGetDataSizeCode(self, func, file): |
| 1495 """Overrriden from TypeHandler.""" |
| 1496 file.Write(" uint32 data_size = n * sizeof(GLuint);\n") |
| 1497 |
1466 def WriteHandlerImplementation (self, func, file): | 1498 def WriteHandlerImplementation (self, func, file): |
1467 """Overrriden from TypeHandler.""" | 1499 """Overrriden from TypeHandler.""" |
1468 func.WriteHandlerValidation(file) | |
1469 file.Write(" DeleteGLObjects<GL%sHelper>(n, %s);\n" % | 1500 file.Write(" DeleteGLObjects<GL%sHelper>(n, %s);\n" % |
1470 (func.name, func.GetLastOriginalArg().name)) | 1501 (func.name, func.GetLastOriginalArg().name)) |
1471 | 1502 |
1472 def WriteImmediateHandlerImplementation (self, func, file): | 1503 def WriteImmediateHandlerImplementation (self, func, file): |
1473 """Overrriden from TypeHandler.""" | 1504 """Overrriden from TypeHandler.""" |
1474 func.WriteHandlerValidation(file) | |
1475 file.Write(" DeleteGLObjects<GL%sHelper>(n, %s);\n" % | 1505 file.Write(" DeleteGLObjects<GL%sHelper>(n, %s);\n" % |
1476 (func.original_name, func.GetLastOriginalArg().name)) | 1506 (func.original_name, func.GetLastOriginalArg().name)) |
1477 | 1507 |
1478 def WriteGLES2ImplementationHeader(self, func, file): | 1508 def WriteGLES2ImplementationHeader(self, func, file): |
1479 """Overrriden from TypeHandler.""" | 1509 """Overrriden from TypeHandler.""" |
1480 file.Write("%s %s(%s) {\n" % | 1510 file.Write("%s %s(%s) {\n" % |
1481 (func.return_type, func.original_name, | 1511 (func.return_type, func.original_name, |
1482 func.MakeTypedOriginalArgString(""))) | 1512 func.MakeTypedOriginalArgString(""))) |
1483 file.Write(" FreeIds(%s);\n" % func.MakeOriginalArgString("")) | 1513 file.Write(" FreeIds(%s);\n" % func.MakeOriginalArgString("")) |
1484 file.Write(" helper_->%sImmediate(%s);\n" % | 1514 file.Write(" helper_->%sImmediate(%s);\n" % |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1643 """Overrriden from TypeHandler.""" | 1673 """Overrriden from TypeHandler.""" |
1644 pass | 1674 pass |
1645 | 1675 |
1646 | 1676 |
1647 class PUTHandler(TypeHandler): | 1677 class PUTHandler(TypeHandler): |
1648 """Handler for glTexParameter_v, glVertexAttrib_v functions.""" | 1678 """Handler for glTexParameter_v, glVertexAttrib_v functions.""" |
1649 | 1679 |
1650 def __init__(self): | 1680 def __init__(self): |
1651 TypeHandler.__init__(self) | 1681 TypeHandler.__init__(self) |
1652 | 1682 |
1653 def WriteImmediateValidationCode(self, func, file): | 1683 def WriteGetDataSizeCode(self, func, file): |
1654 """Overrriden from TypeHandler.""" | 1684 """Overrriden from TypeHandler.""" |
1655 file.Write(" if (!CheckImmediateDataSize<%s>(" | 1685 file.Write(" uint32 data_size = ComputeImmediateDataSize(" |
1656 "immediate_data_size, 1, sizeof(%s), %d)) {\n" % | 1686 "immediate_data_size, 1, sizeof(%s), %d);\n" % |
1657 (func.name, func.info.data_type, func.info.count)) | 1687 (func.info.data_type, func.info.count)) |
1658 file.Write(" return parse_error::kParseOutOfBounds;\n") | |
1659 file.Write(" }\n") | |
1660 | 1688 |
1661 def WriteGLES2ImplementationHeader(self, func, file): | 1689 def WriteGLES2ImplementationHeader(self, func, file): |
1662 """Overrriden from TypeHandler.""" | 1690 """Overrriden from TypeHandler.""" |
1663 file.Write("%s %s(%s) {\n" % | 1691 file.Write("%s %s(%s) {\n" % |
1664 (func.return_type, func.original_name, | 1692 (func.return_type, func.original_name, |
1665 func.MakeTypedOriginalArgString(""))) | 1693 func.MakeTypedOriginalArgString(""))) |
1666 file.Write(" helper_->%sImmediate(%s);\n" % | 1694 file.Write(" helper_->%sImmediate(%s);\n" % |
1667 (func.name, func.MakeOriginalArgString(""))) | 1695 (func.name, func.MakeOriginalArgString(""))) |
1668 file.Write("}\n") | 1696 file.Write("}\n") |
1669 file.Write("\n") | 1697 file.Write("\n") |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1776 file.Write("}\n") | 1804 file.Write("}\n") |
1777 file.Write("\n") | 1805 file.Write("\n") |
1778 | 1806 |
1779 | 1807 |
1780 class PUTnHandler(TypeHandler): | 1808 class PUTnHandler(TypeHandler): |
1781 """Handler for PUTn 'glUniform__v' type functions.""" | 1809 """Handler for PUTn 'glUniform__v' type functions.""" |
1782 | 1810 |
1783 def __init__(self): | 1811 def __init__(self): |
1784 TypeHandler.__init__(self) | 1812 TypeHandler.__init__(self) |
1785 | 1813 |
1786 def WriteImmediateValidationCode(self, func, file): | 1814 def WriteGetDataSizeCode(self, func, file): |
1787 """Overrriden from TypeHandler.""" | 1815 """Overrriden from TypeHandler.""" |
1788 file.Write(" if (!CheckImmediateDataSize<%s>(" | 1816 file.Write(" uint32 data_size = ComputeImmediateDataSize(" |
1789 "immediate_data_size, count, sizeof(%s), %d)) {\n" % | 1817 "immediate_data_size, 1, sizeof(%s), %d);\n" % |
1790 (func.name, func.info.data_type, func.info.count)) | 1818 (func.info.data_type, func.info.count)) |
1791 file.Write(" return parse_error::kParseOutOfBounds;\n") | |
1792 file.Write(" }\n") | |
1793 | 1819 |
1794 def WriteGLES2ImplementationHeader(self, func, file): | 1820 def WriteGLES2ImplementationHeader(self, func, file): |
1795 """Overrriden from TypeHandler.""" | 1821 """Overrriden from TypeHandler.""" |
1796 file.Write("%s %s(%s) {\n" % | 1822 file.Write("%s %s(%s) {\n" % |
1797 (func.return_type, func.original_name, | 1823 (func.return_type, func.original_name, |
1798 func.MakeTypedOriginalArgString(""))) | 1824 func.MakeTypedOriginalArgString(""))) |
1799 file.Write(" helper_->%sImmediate(%s);\n" % | 1825 file.Write(" helper_->%sImmediate(%s);\n" % |
1800 (func.name, func.MakeOriginalArgString(""))) | 1826 (func.name, func.MakeOriginalArgString(""))) |
1801 file.Write("}\n") | 1827 file.Write("}\n") |
1802 file.Write("\n") | 1828 file.Write("\n") |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1953 file.Write( | 1979 file.Write( |
1954 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 1980 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) |
1955 last_arg = func.GetLastOriginalArg() | 1981 last_arg = func.GetLastOriginalArg() |
1956 | 1982 |
1957 all_but_last_arg = func.GetOriginalArgs()[:-1] | 1983 all_but_last_arg = func.GetOriginalArgs()[:-1] |
1958 for arg in all_but_last_arg: | 1984 for arg in all_but_last_arg: |
1959 arg.WriteGetCode(file) | 1985 arg.WriteGetCode(file) |
1960 | 1986 |
1961 file.Write(" uint32 name_size = c.data_size;\n") | 1987 file.Write(" uint32 name_size = c.data_size;\n") |
1962 file.Write( | 1988 file.Write( |
1963 " const char* name = GetImmediateDataAs<const char*>(c);\n") | 1989 " const char* name = GetImmediateDataAs<const char*>(\n") |
1964 file.Write(" // TODO(gman): Make sure validate checks\n") | 1990 file.Write(" c, name_size, immediate_data_size);\n") |
1965 file.Write(" // immediate_data_size covers data_size.\n") | |
1966 func.WriteHandlerValidation(file) | 1991 func.WriteHandlerValidation(file) |
1967 arg_string = ", ".join(["%s" % arg.name for arg in all_but_last_arg]) | 1992 arg_string = ", ".join(["%s" % arg.name for arg in all_but_last_arg]) |
1968 file.Write(" String name_str(name, name_size);\n") | 1993 file.Write(" String name_str(name, name_size);\n") |
1969 file.Write(" %s(%s, name_str.c_str());\n" % | 1994 file.Write(" %s(%s, name_str.c_str());\n" % |
1970 (func.GetGLFunctionName(), arg_string)) | 1995 (func.GetGLFunctionName(), arg_string)) |
1971 file.Write(" return parse_error::kParseNoError;\n") | 1996 file.Write(" return parse_error::kParseNoError;\n") |
1972 file.Write("}\n") | 1997 file.Write("}\n") |
1973 file.Write("\n") | 1998 file.Write("\n") |
1974 | 1999 |
1975 def WriteGLES2ImplementationHeader(self, func, file): | 2000 def WriteGLES2ImplementationHeader(self, func, file): |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 file.Write( | 2147 file.Write( |
2123 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) | 2148 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) |
2124 last_arg = func.GetLastOriginalArg() | 2149 last_arg = func.GetLastOriginalArg() |
2125 | 2150 |
2126 all_but_last_arg = func.GetOriginalArgs()[:-1] | 2151 all_but_last_arg = func.GetOriginalArgs()[:-1] |
2127 for arg in all_but_last_arg: | 2152 for arg in all_but_last_arg: |
2128 arg.WriteGetCode(file) | 2153 arg.WriteGetCode(file) |
2129 | 2154 |
2130 file.Write(" uint32 name_size = c.data_size;\n") | 2155 file.Write(" uint32 name_size = c.data_size;\n") |
2131 file.Write( | 2156 file.Write( |
2132 " const char* name = GetImmediateDataAs<const char*>(c);\n") | 2157 " const char* name = GetImmediateDataAs<const char*>(\n") |
2133 file.Write(" // TODO(gman): Make sure validate checks\n") | 2158 file.Write(" c, name_size, immediate_data_size);\n") |
2134 file.Write(" // immediate_data_size covers data_size.\n") | |
2135 file.Write(" GLint* location = GetSharedMemoryAs<GLint*>(\n") | 2159 file.Write(" GLint* location = GetSharedMemoryAs<GLint*>(\n") |
2136 file.Write( | 2160 file.Write( |
2137 " c.location_shm_id, c.location_shm_offset, sizeof(*location));\n") | 2161 " c.location_shm_id, c.location_shm_offset, sizeof(*location));\n") |
2138 file.Write(" // TODO(gman): Validate location.\n") | 2162 file.Write(" // TODO(gman): Validate location.\n") |
2139 func.WriteHandlerValidation(file) | 2163 func.WriteHandlerValidation(file) |
2140 arg_string = ", ".join(["%s" % arg.name for arg in all_but_last_arg]) | 2164 arg_string = ", ".join(["%s" % arg.name for arg in all_but_last_arg]) |
2141 file.Write(" String name_str(name, name_size);\n") | 2165 file.Write(" String name_str(name, name_size);\n") |
2142 file.Write(" *location = %s(%s, name_str.c_str());\n" % | 2166 file.Write(" *location = %s(%s, name_str.c_str());\n" % |
2143 (func.GetGLFunctionName(), arg_string)) | 2167 (func.GetGLFunctionName(), arg_string)) |
2144 file.Write(" return parse_error::kParseNoError;\n") | 2168 file.Write(" return parse_error::kParseNoError;\n") |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2309 """Handler for GetProgramInfoLog, GetShaderInfoLog and GetShaderSource.""" | 2333 """Handler for GetProgramInfoLog, GetShaderInfoLog and GetShaderSource.""" |
2310 | 2334 |
2311 def __init__(self): | 2335 def __init__(self): |
2312 TypeHandler.__init__(self) | 2336 TypeHandler.__init__(self) |
2313 | 2337 |
2314 def WriteGLES2ImplementationHeader(self, func, file): | 2338 def WriteGLES2ImplementationHeader(self, func, file): |
2315 """Overrriden from TypeHandler.""" | 2339 """Overrriden from TypeHandler.""" |
2316 file.Write("// TODO(gman): Implement this\n") | 2340 file.Write("// TODO(gman): Implement this\n") |
2317 TypeHandler.WriteGLES2ImplementationHeader(self, func, file) | 2341 TypeHandler.WriteGLES2ImplementationHeader(self, func, file) |
2318 | 2342 |
| 2343 def WriteServiceImplementation(self, func, file): |
| 2344 """Overrriden from TypeHandler.""" |
| 2345 file.Write( |
| 2346 "parse_error::ParseError GLES2DecoderImpl::Handle%s(\n" % func.name) |
| 2347 file.Write( |
| 2348 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) |
| 2349 args = func.GetOriginalArgs() |
| 2350 all_but_last_2_args = args[:-2] |
| 2351 for arg in all_but_last_2_args: |
| 2352 arg.WriteGetCode(file) |
| 2353 self.WriteGetDataSizeCode(func, file) |
| 2354 size_arg = args[-2] |
| 2355 file.Write(" uint32 size_shm_id = c.%s_shm_id;\n" % size_arg.name) |
| 2356 file.Write(" uint32 size_shm_offset = c.%s_shm_offset;\n" % size_arg.name) |
| 2357 file.Write(" GLsizei* length = NULL;\n") |
| 2358 file.Write(" if (size_shm_id != 0 || size_shm_offset != 0) {\n" |
| 2359 " length = GetSharedMemoryAs<GLsizei*>(\n" |
| 2360 " size_shm_id, size_shm_offset, sizeof(*length));\n" |
| 2361 " if (!length) {\n" |
| 2362 " return parse_error::kParseOutOfBounds;\n" |
| 2363 " }\n" |
| 2364 " }\n") |
| 2365 dest_arg = args[-1] |
| 2366 bufsize_arg = args[-3] |
| 2367 file.Write( |
| 2368 " %s %s = GetSharedMemoryAs<%s>(\n" % |
| 2369 (dest_arg.type, dest_arg.name, dest_arg.type)) |
| 2370 file.Write( |
| 2371 " c.%s_shm_id, c.%s_shm_offset, %s);\n" % |
| 2372 (dest_arg.name, dest_arg.name, bufsize_arg.name)) |
| 2373 for arg in all_but_last_2_args + [dest_arg]: |
| 2374 arg.WriteValidationCode(file) |
| 2375 func.WriteValidationCode(file) |
| 2376 func.WriteHandlerImplementation(file) |
| 2377 file.Write(" return parse_error::kParseNoError;\n") |
| 2378 file.Write("}\n") |
| 2379 file.Write("\n") |
| 2380 |
2319 | 2381 |
2320 class FunctionInfo(object): | 2382 class FunctionInfo(object): |
2321 """Holds info about a function.""" | 2383 """Holds info about a function.""" |
2322 | 2384 |
2323 def __init__(self, info, type_handler): | 2385 def __init__(self, info, type_handler): |
2324 for key in info: | 2386 for key in info: |
2325 setattr(self, key, info[key]) | 2387 setattr(self, key, info[key]) |
2326 self.type_handler = type_handler | 2388 self.type_handler = type_handler |
2327 if not 'type' in info: | 2389 if not 'type' in info: |
2328 self.type = '' | 2390 self.type = '' |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2420 def __init__(self, name, type): | 2482 def __init__(self, name, type): |
2421 Argument.__init__(self, name, type) | 2483 Argument.__init__(self, name, type) |
2422 | 2484 |
2423 def AddCmdArgs(self, args): | 2485 def AddCmdArgs(self, args): |
2424 """Overridden from Argument.""" | 2486 """Overridden from Argument.""" |
2425 pass | 2487 pass |
2426 | 2488 |
2427 def WriteGetCode(self, file): | 2489 def WriteGetCode(self, file): |
2428 """Overridden from Argument.""" | 2490 """Overridden from Argument.""" |
2429 file.Write( | 2491 file.Write( |
2430 " %s %s = GetImmediateDataAs<%s>(c);\n" % | 2492 " %s %s = GetImmediateDataAs<%s>(\n" % |
2431 (self.type, self.name, self.type)) | 2493 (self.type, self.name, self.type)) |
| 2494 file.Write(" c, data_size, immediate_data_size);\n") |
2432 | 2495 |
2433 def WriteValidationCode(self, file): | 2496 def WriteValidationCode(self, file): |
2434 """Overridden from Argument.""" | 2497 """Overridden from Argument.""" |
2435 file.Write(" if (%s == NULL) {\n" % self.name) | 2498 file.Write(" if (%s == NULL) {\n" % self.name) |
2436 file.Write(" return parse_error::kParseOutOfBounds;\n") | 2499 file.Write(" return parse_error::kParseOutOfBounds;\n") |
2437 file.Write(" }\n") | 2500 file.Write(" }\n") |
2438 | 2501 |
2439 def GetImmediateVersion(self): | 2502 def GetImmediateVersion(self): |
2440 """Overridden from Argument.""" | 2503 """Overridden from Argument.""" |
2441 return None | 2504 return None |
(...skipping 13 matching lines...) Expand all Loading... |
2455 """Overridden from Argument.""" | 2518 """Overridden from Argument.""" |
2456 args.append(Argument("%s_shm_id" % self.name, 'uint32')) | 2519 args.append(Argument("%s_shm_id" % self.name, 'uint32')) |
2457 args.append(Argument("%s_shm_offset" % self.name, 'uint32')) | 2520 args.append(Argument("%s_shm_offset" % self.name, 'uint32')) |
2458 | 2521 |
2459 def WriteGetCode(self, file): | 2522 def WriteGetCode(self, file): |
2460 """Overridden from Argument.""" | 2523 """Overridden from Argument.""" |
2461 file.Write( | 2524 file.Write( |
2462 " %s %s = GetSharedMemoryAs<%s>(\n" % | 2525 " %s %s = GetSharedMemoryAs<%s>(\n" % |
2463 (self.type, self.name, self.type)) | 2526 (self.type, self.name, self.type)) |
2464 file.Write( | 2527 file.Write( |
2465 " c.%s_shm_id, c.%s_shm_offset, 0 /* TODO(gman): size */);\n" % | 2528 " c.%s_shm_id, c.%s_shm_offset, data_size);\n" % |
2466 (self.name, self.name)) | 2529 (self.name, self.name)) |
2467 | 2530 |
2468 def WriteGetAddress(self, file): | 2531 def WriteGetAddress(self, file): |
2469 """Overridden from Argument.""" | 2532 """Overridden from Argument.""" |
2470 file.Write( | 2533 file.Write( |
2471 " %s %s = GetSharedMemoryAs<%s>(\n" % | 2534 " %s %s = GetSharedMemoryAs<%s>(\n" % |
2472 (self.type, self.name, self.type)) | 2535 (self.type, self.name, self.type)) |
2473 file.Write( | 2536 file.Write( |
2474 " %s_shm_id, %s_shm_offset, %s_size);\n" % | 2537 " %s_shm_id, %s_shm_offset, %s_size);\n" % |
2475 (self.name, self.name, self.name)) | 2538 (self.name, self.name, self.name)) |
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3164 | 3227 |
3165 if options.generate_command_id_tests: | 3228 if options.generate_command_id_tests: |
3166 gen.WriteCommandIdTest("common/gles2_cmd_id_test_autogen.h") | 3229 gen.WriteCommandIdTest("common/gles2_cmd_id_test_autogen.h") |
3167 | 3230 |
3168 if gen.errors > 0: | 3231 if gen.errors > 0: |
3169 print "%d errors" % gen.errors | 3232 print "%d errors" % gen.errors |
3170 sys.exit(1) | 3233 sys.exit(1) |
3171 | 3234 |
3172 if __name__ == '__main__': | 3235 if __name__ == '__main__': |
3173 main(sys.argv[1:]) | 3236 main(sys.argv[1:]) |
OLD | NEW |