X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=scripts%2Fextgen.py;fp=scripts%2Fextgen.py;h=ec57e2efb912fd9287185d7d5f0ab5bd9aa8609c;hb=bdced13c0814d1a860573a0ac19964da2ac4d5e1;hp=c5bc219a392e35db1d823a61df8dc3b927e28c88;hpb=e5d7b40938e4ae38c41ae6ed054319f7f3fa600f;p=libs%2Fgl.git diff --git a/scripts/extgen.py b/scripts/extgen.py index c5bc219a..ec57e2ef 100755 --- a/scripts/extgen.py +++ b/scripts/extgen.py @@ -386,7 +386,7 @@ namespace GL { if funcs or enums: if funcs: for f in funcs: - out.write("typedef %s (*%s)(%s);\n"%(f.return_type, f.typedef, ", ".join(f.params))) + out.write("typedef %s (APIENTRY *%s)(%s);\n"%(f.return_type, f.typedef, ", ".join(f.params))) out.write("\n") if enums: @@ -430,10 +430,16 @@ out.write("#include \"%s.h\"\n"%target_ext.name.lower()) if funcs: out.write(""" #ifdef __APPLE__ -#define GET_PROC_ADDRESS(x) ::x +#define GET_PROC_ADDRESS(x) &::x #else #define GET_PROC_ADDRESS(x) get_proc_address(#x) #endif + +#ifdef WIN32 +#define GET_PROC_ADDRESS_1_1(x) &::x +#else +#define GET_PROC_ADDRESS_1_1(x) GET_PROC_ADDRESS(x) +#endif """) out.write(""" namespace Msp { @@ -452,7 +458,10 @@ if core_version: out.write(")\n\t{\n") for f in funcs: if target_api in f.supported_apis: - out.write("\t\t%s = reinterpret_cast<%s>(GET_PROC_ADDRESS(%s));\n"%(f.name, f.typedef, f.name)) + gpa_suffix = "" + if 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") out.write("\t}\n") if source_ext and source_ext!=backport_ext: