X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=scripts%2Fextgen.py;h=7526b271d39e72b042598a64fb81c82420f40712;hb=b015ee91380afcde026b101a9598a50e82827938;hp=0ea8b8ee3c7ac8355b3d85ba1db6a62890bb976e;hpb=fe89237f22d6557d8ad7afdbd694c0fb35253c99;p=libs%2Fgl.git diff --git a/scripts/extgen.py b/scripts/extgen.py index 0ea8b8ee..7526b271 100755 --- a/scripts/extgen.py +++ b/scripts/extgen.py @@ -33,6 +33,7 @@ if sys.argv[i].startswith("gl"): target_ext = sys.argv[i] backport_ext = None out_base = None +ignore_things = [] if target_ext.endswith(".glext"): fn = target_ext target_ext = None @@ -49,6 +50,8 @@ if target_ext.endswith(".glext"): secondary.append(parts[1]) elif parts[0]=="backport": backport_ext = parts[1] + elif parts[0]=="ignore": + ignore_things.append(parts[1]) if i+11: + core_version_candidates.sort(reverse=True) + if core_version_candidates[1][0]+1>=core_version_candidates[0][0]: + ver0 = core_version_candidates[0][1] + ver1 = core_version_candidates[1][1] + print "Warning: multiple likely core version candidates: %d.%d %d.%d"%(ver0[0], ver0[1], ver1[0], ver1[1]) + core_version = core_version_candidates[0][1] + if backport_ext: if backport_ext=="none": backport_ext = None @@ -492,11 +510,21 @@ if core_version: if source_ext and source_ext!=backport_ext: out.write("\tif(is_supported(\"GL_%s\"))\n\t{\n"%(source_ext.name)) for f in funcs: - s = f if f.sources: - s = f.sources[0] - if target_api in s.supported_apis: - out.write("\t\t%s = reinterpret_cast<%s>(GET_PROC_ADDRESS(%s));\n"%(f.name, f.typedef, s.name)) + src = None + for s in f.sources: + if s.name.endswith(source_ext.ext_type): + src = s + break + if not src: + src = f.sources[0] + else: + src = f + + if target_api in src.supported_apis: + if not src.name.endswith(source_ext.ext_type): + print "Warning: %s does not match extension type %s"%(src.name, source_ext.ext_type) + out.write("\t\t%s = reinterpret_cast<%s>(GET_PROC_ADDRESS(%s));\n"%(f.name, f.typedef, src.name)) out.write("\t\treturn Extension::EXTENSION;\n") out.write("\t}\n") out.write("\treturn Extension::UNSUPPORTED;\n")