| #!/usr/bin/python |
| # -*- coding: utf-8 -*- |
| |
| # |
| # Copyright 2011, The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| import os |
| import sys |
| |
| def append_functions(functions, lines): |
| i = 0 |
| for line in lines: |
| if line.find("API_ENTRY(") >= 0: # a function prototype |
| returnType = line[0: line.find(" API_ENTRY(")] |
| functionName = line[line.find("(") + 1: line.find(")")] #extract GL function name |
| parameterList = line[line.find(")(") + 2: line.find(") {")] |
| |
| functions.append(functionName) |
| #print functionName |
| continue |
| |
| parameters = parameterList.split(',') |
| paramIndex = 0 |
| if line.find("*") >= 0: |
| print "// FIXME: this function has pointers, it should be hand written" |
| externs.append("%s Tracing_%s(%s);" % (returnType, functionName, parameterList)) |
| print "%s Tracing_%s(%s)\n{" % (returnType, functionName, parameterList) |
| |
| if parameterList == "void": |
| parameters = [] |
| |
| arguments = "" |
| |
| for parameter in parameters: |
| parameter = parameter.replace("const", "") |
| parameter = parameter.strip() |
| paramType = parameter.split(' ')[0] |
| paramName = parameter.split(' ')[1] |
| |
| paramIndex += 1 |
| |
| return functions |
| |
| |
| |
| if __name__ == "__main__": |
| definedFunctions = [] |
| lines = open("gl2_api_annotated.in").readlines() |
| definedFunctions = append_functions(definedFunctions, lines) |
| |
| output = open("../debug.in", "w") |
| lines = open("../trace.in").readlines() |
| output.write("// the following functions are not defined in GLESv2_dbg\n") |
| for line in lines: |
| functionName = "" |
| if line.find("TRACE_GL(") >= 0: # a function prototype |
| functionName = line.split(',')[1].strip() |
| elif line.find("TRACE_GL_VOID(") >= 0: # a function prototype |
| functionName = line[line.find("(") + 1: line.find(",")] #extract GL function name |
| else: |
| continue |
| if functionName in definedFunctions: |
| #print functionName |
| continue |
| else: |
| output.write(line) |
| |