X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=scripts%2Fextgen.py;h=eef6475adbdad5506ad39068286e2efa03b3922a;hp=4333cf37345f176d06fdf52abe2e6f30d8cc1f0c;hb=710418caebcbcb9ed22bb828cb1dcd88d6b99aa1;hpb=80977251da90a6878b82d143c22b8335284d3b3e diff --git a/scripts/extgen.py b/scripts/extgen.py index 4333cf37..eef6475a 100755 --- a/scripts/extgen.py +++ b/scripts/extgen.py @@ -247,8 +247,13 @@ if funcs or enums: for e in enums: out.write("#define %s 0x%04X\n"%(e.name, e.value)) out.write("#endif\n\n") + + # Apple's OpenGL implementation doesn't have a GetProcAddress function; link + # directly to the OpenGL library + out.write("\n#if !defined(__APPLE__) || !defined(GL_%s)\n"%ext) for f in funcs: out.write("extern %s %s;\n"%(f.typedef, f.name)) + out.write("#endif\n") out.write("\nextern Extension %s;\n"%ext) @@ -268,9 +273,10 @@ namespace GL { """) if funcs: - out.write("\n") -for f in funcs: - out.write("%s %s = 0;\n"%(f.typedef, f.name)) + out.write("\n#if !defined(__APPLE__) || !defined(GL_%s)\n"%ext) + for f in funcs: + out.write("%s %s = 0;\n"%(f.typedef, f.name)) + out.write("\n#endif\n") out.write("\nExtension::SupportLevel init_%s()\n{\n"%ext.lower()) out.write("#ifdef GL_%s\n"%ext) @@ -279,17 +285,23 @@ if ver: if backport_ext: out.write(" || is_supported(\"GL_%s\")"%backport_ext) out.write(")\n\t{\n") - for f in funcs: - out.write("\t\t%s = reinterpret_cast<%s>(get_proc_address(\"%s\"));\n"%(f.name, f.typedef, f.name)) + if funcs: + out.write("#ifndef __APPLE__\n") + for f in funcs: + out.write("\t\t%s = reinterpret_cast<%s>(get_proc_address(\"%s\"));\n"%(f.name, f.typedef, f.name)) + out.write("#endif\n") out.write("\t\treturn Extension::CORE;\n") out.write("\t}\n") if ext!=backport_ext: out.write("\tif(is_supported(\"GL_%s\"))\n\t{\n"%(ext)) - for f in funcs: - n = f.name - if f.source: - n = f.source.name - out.write("\t\t%s = reinterpret_cast<%s>(get_proc_address(\"%s\"));\n"%(f.name, f.typedef, n)) + if funcs: + out.write("#ifndef __APPLE__\n") + for f in funcs: + n = f.name + if f.source: + n = f.source.name + out.write("\t\t%s = reinterpret_cast<%s>(get_proc_address(\"%s\"));\n"%(f.name, f.typedef, n)) + out.write("#endif\n") out.write("\t\treturn Extension::EXTENSION;\n") out.write("\t}\n") out.write("#endif\n")