--- a/scripts/gen-emugl-entries.py 2020-06-05 13:21:54.450753270 +0300 +++ b/scripts/gen-emugl-entries.py 2020-06-05 13:32:35.194087281 +0300 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # Copyright 2015 The Android Open Source Project # @@ -25,7 +25,6 @@ # # Anything else is an error. -from __future__ import print_function import re import sys import argparse @@ -43,7 +42,7 @@ |return_type| its return type, and |parameters| is a list of (type,name) tuples from the entry's signature. """ - self.func_name = func_name + self.__name__ = func_name self.return_type = return_type self.parameters = "" self.vartypes = [] @@ -145,11 +144,11 @@ for entry in entries: if with_args: print(" X(%s, %s, (%s), (%s)) \\" % \ - (entry.return_type, entry.func_name, entry.parameters, + (entry.return_type, entry.__name__, entry.parameters, entry.call)) else: print(" X(%s, %s, (%s)) \\" % \ - (entry.return_type, entry.func_name, entry.parameters)) + (entry.return_type, entry.__name__, entry.parameters)) print("") print("") @@ -170,27 +169,27 @@ from gles3translatorgen import gles31_custom translator_custom_share_processing = { } - for (k, v) in gles30_custom.custom_share_processing.items(): + for (k, v) in list(gles30_custom.custom_share_processing.items()): translator_custom_share_processing[k] = v - for (k, v) in gles31_custom.custom_share_processing.items(): + for (k, v) in list(gles31_custom.custom_share_processing.items()): translator_custom_share_processing[k] = v translator_custom_pre = { } - for (k, v) in gles30_custom.custom_preprocesses.items(): + for (k, v) in list(gles30_custom.custom_preprocesses.items()): translator_custom_pre[k] = v - for (k, v) in gles31_custom.custom_preprocesses.items(): + for (k, v) in list(gles31_custom.custom_preprocesses.items()): translator_custom_pre[k] = v translator_custom_post = { } - for (k, v) in gles30_custom.custom_postprocesses.items(): + for (k, v) in list(gles30_custom.custom_postprocesses.items()): translator_custom_post[k] = v - for (k, v) in gles31_custom.custom_postprocesses.items(): + for (k, v) in list(gles31_custom.custom_postprocesses.items()): translator_custom_post[k] = v translator_no_passthrough = {} - for (k, v) in gles30_custom.no_passthrough.items(): + for (k, v) in list(gles30_custom.no_passthrough.items()): translator_no_passthrough[k] = v - for (k, v) in gles31_custom.no_passthrough.items(): + for (k, v) in list(gles31_custom.no_passthrough.items()): translator_no_passthrough[k] = v translator_needexternc = { @@ -208,13 +207,13 @@ "glClientWaitSync" : "GL_WAIT_FAILED", } def needExternC(entry): - if translator_needexternc.has_key(entry.func_name): + if entry.__name__ in translator_needexternc: return "extern \"C\" " else: return "" def get_fail_code(entry): - if translator_nocontext_fail_codes.has_key(entry.func_name): - return translator_nocontext_fail_codes[entry.func_name] + if entry.__name__ in translator_nocontext_fail_codes: + return translator_nocontext_fail_codes[entry.__name__] else: return "0" def gen_cxt_getter(entry): @@ -224,9 +223,9 @@ print(" GET_CTX_V2_RET(%s);" % get_fail_code(entry)) def gen_validations_custom_impl(entry): - isGen = entry.func_name.startswith("glGen") - isDelete = entry.func_name.startswith("glDelete") - isBufferOp = "Buffer" in entry.func_name + isGen = entry.__name__.startswith("glGen") + isDelete = entry.__name__.startswith("glDelete") + isBufferOp = "Buffer" in entry.__name__ hasTargetArg = "target" in entry.varnames hasProgramArg = "program" in entry.varnames @@ -241,8 +240,8 @@ print(" %s;" % mySetError("n < 0", "GL_INVALID_VALUE")) if (isBufferOp and hasTargetArg): print(" %s;" % mySetError("!GLESv2Validate::bufferTarget(ctx, target)", "GL_INVALID_ENUM")) - if translator_custom_pre.has_key(entry.func_name): - print(translator_custom_pre[entry.func_name],) + if entry.__name__ in translator_custom_pre: + print(translator_custom_pre[entry.__name__],) def gen_call_ret(entry): globalNameTypes = { @@ -262,44 +261,44 @@ needsShareGroup = False for v in zip(entry.vartypes, entry.varnames): - if v in globalNameTypes.keys(): + if v in list(globalNameTypes.keys()): needsShareGroup = True if needsShareGroup: print(" if (ctx->shareGroup().get()) {") for key in zip(entry.vartypes, entry.varnames): vartype, varname = key - if globalNames.has_key(key): + if key in globalNames: print(" const GLuint %s = ctx->shareGroup()->getGlobalName(%s, %s);" % (globalNames[key], globalNameTypes[key], varname)) - globalCall = ", ".join(map(lambda k: globalNames.get(k, k[1]), zip(entry.vartypes, entry.varnames))) + globalCall = ", ".join([globalNames.get(k, k[1]) for k in zip(entry.vartypes, entry.varnames)]) - if needsShareGroup and translator_custom_share_processing.has_key(entry.func_name): - print(translator_custom_share_processing[entry.func_name]) + if needsShareGroup and entry.__name__ in translator_custom_share_processing: + print(translator_custom_share_processing[entry.__name__]) if (entry.return_type == "void"): if (needsShareGroup): print(" "), - if not translator_no_passthrough.has_key(entry.func_name): - print(" ctx->dispatcher().%s(%s);" % (entry.func_name, globalCall)) + if entry.__name__ not in translator_no_passthrough: + print(" ctx->dispatcher().%s(%s);" % (entry.__name__, globalCall)) if needsShareGroup: print(" }") - if translator_custom_post.has_key(entry.func_name): - print(translator_custom_post[entry.func_name]) + if entry.__name__ in translator_custom_post: + print(translator_custom_post[entry.__name__]) else: if (needsShareGroup): print(" "), - if not translator_no_passthrough.has_key(entry.func_name): - print(" %s %s = ctx->dispatcher().%s(%s);" % (entry.return_type, entry.func_name + "RET", entry.func_name, globalCall)) + if entry.__name__ not in translator_no_passthrough: + print(" %s %s = ctx->dispatcher().%s(%s);" % (entry.return_type, entry.__name__ + "RET", entry.__name__, globalCall)) else: print(") %s %s = %s" % (entry.return_type, entry_func_name + "RET", get_fail_code(entry))) - if translator_custom_post.has_key(entry.func_name): - print(translator_custom_post[entry.func_name]) + if entry.__name__ in translator_custom_post: + print(translator_custom_post[entry.__name__]) - print(" return %s;" % (entry.func_name + "RET")) + print(" return %s;" % (entry.__name__ + "RET")) if needsShareGroup: print(" } else return %s;" % (get_fail_code(entry))) @@ -308,7 +307,7 @@ print("// Try to make changes through gen_translator in gen-entries.py,") print("// and/or parcel out custom functionality in separate code.") for entry in entries: - print("%sGL_APICALL %s GL_APIENTRY %s(%s) {" % (needExternC(entry), entry.return_type, entry.func_name, entry.parameters)) + print("%sGL_APICALL %s GL_APIENTRY %s(%s) {" % (needExternC(entry), entry.return_type, entry.__name__, entry.parameters)) gen_cxt_getter(entry) gen_validations_custom_impl(entry) gen_call_ret(entry) @@ -339,7 +338,7 @@ print("///") print("") for entry in entries: - ptr_name = ENTRY_PREFIX + entry.func_name + ptr_name = ENTRY_PREFIX + entry.__name__ print("static %s (*%s)(%s) = 0;" % \ (entry.return_type, ptr_name, entry.parameters)) @@ -351,8 +350,8 @@ for entry in entries: print ("%s %s(%s) {" % \ - (entry.return_type, entry.func_name, entry.parameters)) - ptr_name = ENTRY_PREFIX + entry.func_name + (entry.return_type, entry.__name__, entry.parameters)) + ptr_name = ENTRY_PREFIX + entry.__name__ if entry.return_type != "void": print(" return %s(%s);" % (ptr_name, entry.call)) else: @@ -367,12 +366,12 @@ print("int %s_dynlink_init(void* lib) {" % prefix_name) for entry in entries: - ptr_name = ENTRY_PREFIX + entry.func_name + ptr_name = ENTRY_PREFIX + entry.__name__ print(" %s = (%s(*)(%s))dlsym(lib, \"%s\");" % \ (ptr_name, entry.return_type, entry.parameters, - entry.func_name)) + entry.__name__)) print(" if (!%s) return -1;" % ptr_name) print(" return 0;") print("}") @@ -383,7 +382,7 @@ """ print("EXPORTS") for entry in entries: - print(" %s" % entry.func_name) + print(" %s" % entry.__name__) def gen_unix_sym_file(entries): @@ -393,7 +392,7 @@ print("VERSION {") print("\tglobal:") for entry in entries: - print("\t\t%s;" % entry.func_name) + print("\t\t%s;" % entry.__name__) print("\tlocal:") print("\t\t*;") print("};") @@ -407,7 +406,7 @@ if underscore: prefix = "_" for entry in entries: - print("%s%s" % (prefix, entry.func_name)) + print("%s%s" % (prefix, entry.__name__)) def parse_file(filename, lines, mode): """Generate one of possible outputs from |filename|. |lines| must be a list