target_ext = sys.argv[i]
backport_ext = None
out_base = None
+ignore_things = []
if target_ext.endswith(".glext"):
fn = target_ext
target_ext = None
secondary.append(parts[1])
elif parts[0]=="backport":
backport_ext = parts[1]
+ elif parts[0]=="ignore":
+ ignore_things.append(parts[1])
if i+1<len(sys.argv):
out_base = os.path.splitext(sys.argv[i+1])[0]
else:
enums = get_nested_elements(req, "enum")
for t in itertools.chain(commands, enums):
name = t.getAttribute("name")
+ if name in ignore_things:
+ continue
+
thing = things.get(name)
if thing:
if thing.extension and extension.name!=target_ext:
for f in funcs:
if target_api in f.supported_apis:
gpa_suffix = ""
- if f.version<=[1, 1]:
+ if f.version is not None and f.version<=[1, 1]:
gpa_suffix = "_1_1"
out.write("\t\t%s = reinterpret_cast<%s>(GET_PROC_ADDRESS%s(%s));\n"%(f.name, f.typedef, gpa_suffix, f.name))
out.write("\t\treturn Extension::CORE;\n")
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")