From c130d251936ef8555ca2c9a5a846ddd3b61cb286 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 15 Apr 2015 13:55:50 +0200 Subject: [PATCH 1/5] Add typedefs to API documentation generator --- direct/src/directscripts/extract_docs.py | 7 +- dtool/metalibs/dtoolconfig/pydtool.cxx | 1154 +++++++++++----------- 2 files changed, 591 insertions(+), 570 deletions(-) diff --git a/direct/src/directscripts/extract_docs.py b/direct/src/directscripts/extract_docs.py index b6bb06bfeb..a248fa83ae 100644 --- a/direct/src/directscripts/extract_docs.py +++ b/direct/src/directscripts/extract_docs.py @@ -203,6 +203,11 @@ def processType(handle, type): if docstring: print >>handle, docstring print >>handle, interrogate_type_enum_value_name(type, i_value), "=", interrogate_type_enum_value(type, i_value), "," + + elif interrogate_type_is_typedef(type): + wrapped_type = translated_type_name(interrogate_type_wrapped_type(type)) + print >>handle, "typedef %s %s;" % (wrapped_type, typename) + return else: if interrogate_type_is_struct(type): classtype = "struct" @@ -211,7 +216,7 @@ def processType(handle, type): elif interrogate_type_is_union(type): classtype = "union" else: - print "I don't know what type %s is" % typename + print "I don't know what type %s is" % interrogate_type_true_name(type) return if len(derivations) > 0: diff --git a/dtool/metalibs/dtoolconfig/pydtool.cxx b/dtool/metalibs/dtoolconfig/pydtool.cxx index 0c4b807bb1..7b3a017b34 100644 --- a/dtool/metalibs/dtoolconfig/pydtool.cxx +++ b/dtool/metalibs/dtoolconfig/pydtool.cxx @@ -1,6 +1,6 @@ /* * This file generated by: - * interrogate -D EXPCL_DTOOLCONFIG= -nodb -python -promiscuous -I~/panda3d/include -module panda3d.dtoolconfig -library dtoolconfig -true-names -do-module -oc pydtool.cxx ../../src/interrogatedb/interrogate_interface.h + * interrogate -D EXPCL_DTOOLCONFIG= -nodb -python -promiscuous -I~/panda3d-git/built/include -module panda3d.dtoolconfig -library dtoolconfig -string -true-names -do-module -oc pydtool.cxx ../../src/interrogatedb/interrogate_interface.h * */ @@ -24,68 +24,68 @@ static PyObject *_inPU7VH4RgX(PyObject *self, PyObject *args); static PyObject *_inPU7VH3Gip(PyObject *self, PyObject *args); static PyObject *_inPU7VHRKDz(PyObject *self, PyObject *args); static PyObject *_inPU7VHgZ9N(PyObject *self, PyObject *args); -static PyObject *_inPU7VHRQIx(PyObject *self, PyObject *args); -static PyObject *_inPU7VHGVSj(PyObject *self, PyObject *args); -static PyObject *_inPU7VHznM6(PyObject *self, PyObject *args); -static PyObject *_inPU7VHjiLg(PyObject *self, PyObject *args); -static PyObject *_inPU7VH_yjE(PyObject *self, PyObject *args); -static PyObject *_inPU7VHzK9F(PyObject *self, PyObject *args); -static PyObject *_inPU7VHJju_(PyObject *self, PyObject *args); -static PyObject *_inPU7VHZktk(PyObject *self, PyObject *args); -static PyObject *_inPU7VHG71J(PyObject *self, PyObject *args); -static PyObject *_inPU7VHgeUs(PyObject *self, PyObject *args); -static PyObject *_inPU7VH5Gsy(PyObject *self, PyObject *args); -static PyObject *_inPU7VHCSJJ(PyObject *self, PyObject *args); +static PyObject *_inPU7VHFnRZ(PyObject *self, PyObject *args); +static PyObject *_inPU7VHg0Qv(PyObject *self, PyObject *args); +static PyObject *_inPU7VHtrqw(PyObject *self, PyObject *args); +static PyObject *_inPU7VHdmpW(PyObject *self, PyObject *args); +static PyObject *_inPU7VHUYgQ(PyObject *self, PyObject *args); +static PyObject *_inPU7VH0k7F(PyObject *self, PyObject *args); +static PyObject *_inPU7VHfIsr(PyObject *self, PyObject *args); +static PyObject *_inPU7VHvysR(PyObject *self, PyObject *args); +static PyObject *_inPU7VHYQ_2(PyObject *self, PyObject *args); +static PyObject *_inPU7VH3kdv(PyObject *self, PyObject *args); +static PyObject *_inPU7VHew01(PyObject *self, PyObject *args); +static PyObject *_inPU7VHQna7(PyObject *self, PyObject *args); static PyObject *_inPU7VHkg95(PyObject *self, PyObject *args); static PyObject *_inPU7VHluRc(PyObject *self, PyObject *args); -static PyObject *_inPU7VHwtTf(PyObject *self, PyObject *args); -static PyObject *_inPU7VHrfao(PyObject *self, PyObject *args); -static PyObject *_inPU7VHcedk(PyObject *self, PyObject *args); -static PyObject *_inPU7VHXmoo(PyObject *self, PyObject *args); -static PyObject *_inPU7VHclIo(PyObject *self, PyObject *args); +static PyObject *_inPU7VHtHdM(PyObject *self, PyObject *args); +static PyObject *_inPU7VHDId0(PyObject *self, PyObject *args); +static PyObject *_inPU7VHHuAm(PyObject *self, PyObject *args); +static PyObject *_inPU7VH_xr0(PyObject *self, PyObject *args); +static PyObject *_inPU7VHH5qp(PyObject *self, PyObject *args); static PyObject *_inPU7VHU2_B(PyObject *self, PyObject *args); static PyObject *_inPU7VHHFO2(PyObject *self, PyObject *args); static PyObject *_inPU7VHcfjm(PyObject *self, PyObject *args); static PyObject *_inPU7VH3Sjw(PyObject *self, PyObject *args); static PyObject *_inPU7VHgJcX(PyObject *self, PyObject *args); static PyObject *_inPU7VHYlw6(PyObject *self, PyObject *args); -static PyObject *_inPU7VH3gns(PyObject *self, PyObject *args); -static PyObject *_inPU7VHN968(PyObject *self, PyObject *args); -static PyObject *_inPU7VHFJVJ(PyObject *self, PyObject *args); -static PyObject *_inPU7VHndTW(PyObject *self, PyObject *args); -static PyObject *_inPU7VHpjWj(PyObject *self, PyObject *args); -static PyObject *_inPU7VHNcQW(PyObject *self, PyObject *args); -static PyObject *_inPU7VHP_SX(PyObject *self, PyObject *args); -static PyObject *_inPU7VH1iRq(PyObject *self, PyObject *args); -static PyObject *_inPU7VHEmel(PyObject *self, PyObject *args); -static PyObject *_inPU7VH20Vx(PyObject *self, PyObject *args); -static PyObject *_inPU7VHKcdW(PyObject *self, PyObject *args); -static PyObject *_inPU7VHhUs9(PyObject *self, PyObject *args); -static PyObject *_inPU7VHhF25(PyObject *self, PyObject *args); -static PyObject *_inPU7VHu1qB(PyObject *self, PyObject *args); -static PyObject *_inPU7VHKMkY(PyObject *self, PyObject *args); -static PyObject *_inPU7VHRx9W(PyObject *self, PyObject *args); -static PyObject *_inPU7VH0C9G(PyObject *self, PyObject *args); -static PyObject *_inPU7VHhaPp(PyObject *self, PyObject *args); -static PyObject *_inPU7VHt_1v(PyObject *self, PyObject *args); -static PyObject *_inPU7VH8KQG(PyObject *self, PyObject *args); -static PyObject *_inPU7VHEtIl(PyObject *self, PyObject *args); -static PyObject *_inPU7VHRFmo(PyObject *self, PyObject *args); -static PyObject *_inPU7VHWHA0(PyObject *self, PyObject *args); -static PyObject *_inPU7VHcyIl(PyObject *self, PyObject *args); -static PyObject *_inPU7VHBnBv(PyObject *self, PyObject *args); -static PyObject *_inPU7VHUvW7(PyObject *self, PyObject *args); -static PyObject *_inPU7VHPdXf(PyObject *self, PyObject *args); -static PyObject *_inPU7VHd0dl(PyObject *self, PyObject *args); -static PyObject *_inPU7VHdVbH(PyObject *self, PyObject *args); -static PyObject *_inPU7VHBwF0(PyObject *self, PyObject *args); -static PyObject *_inPU7VH9dPK(PyObject *self, PyObject *args); -static PyObject *_inPU7VHhUwR(PyObject *self, PyObject *args); +static PyObject *_inPU7VHsmnz(PyObject *self, PyObject *args); +static PyObject *_inPU7VHxQ10(PyObject *self, PyObject *args); +static PyObject *_inPU7VH6gPB(PyObject *self, PyObject *args); +static PyObject *_inPU7VHISgV(PyObject *self, PyObject *args); +static PyObject *_inPU7VHH3bx(PyObject *self, PyObject *args); +static PyObject *_inPU7VHzeUk(PyObject *self, PyObject *args); +static PyObject *_inPU7VHUeI5(PyObject *self, PyObject *args); +static PyObject *_inPU7VHuSvx(PyObject *self, PyObject *args); +static PyObject *_inPU7VHwpYd(PyObject *self, PyObject *args); +static PyObject *_inPU7VHOfNh(PyObject *self, PyObject *args); +static PyObject *_inPU7VHf5_U(PyObject *self, PyObject *args); +static PyObject *_inPU7VHL3ZB(PyObject *self, PyObject *args); +static PyObject *_inPU7VHXw0I(PyObject *self, PyObject *args); +static PyObject *_inPU7VH3zru(PyObject *self, PyObject *args); +static PyObject *_inPU7VHRrg2(PyObject *self, PyObject *args); +static PyObject *_inPU7VHEJCx(PyObject *self, PyObject *args); +static PyObject *_inPU7VHWAZr(PyObject *self, PyObject *args); +static PyObject *_inPU7VHrD_M(PyObject *self, PyObject *args); +static PyObject *_inPU7VHjolz(PyObject *self, PyObject *args); +static PyObject *_inPU7VHt_JD(PyObject *self, PyObject *args); +static PyObject *_inPU7VHwEts(PyObject *self, PyObject *args); +static PyObject *_inPU7VHrJWs(PyObject *self, PyObject *args); +static PyObject *_inPU7VHpmFD(PyObject *self, PyObject *args); +static PyObject *_inPU7VHyYUX(PyObject *self, PyObject *args); +static PyObject *_inPU7VH54dn(PyObject *self, PyObject *args); +static PyObject *_inPU7VHGMpW(PyObject *self, PyObject *args); +static PyObject *_inPU7VHNuBV(PyObject *self, PyObject *args); +static PyObject *_inPU7VH9UwA(PyObject *self, PyObject *args); +static PyObject *_inPU7VH3FDt(PyObject *self, PyObject *args); +static PyObject *_inPU7VHf513(PyObject *self, PyObject *args); +static PyObject *_inPU7VHsqGH(PyObject *self, PyObject *args); +static PyObject *_inPU7VH7shV(PyObject *self, PyObject *args); static PyObject *_inPU7VHA1eF(PyObject *self, PyObject *args); -static PyObject *_inPU7VH8pBy(PyObject *self, PyObject *args); -static PyObject *_inPU7VH85oW(PyObject *self, PyObject *args); -static PyObject *_inPU7VHYZz0(PyObject *self, PyObject *args); -static PyObject *_inPU7VHzKCA(PyObject *self, PyObject *args); +static PyObject *_inPU7VH9tTm(PyObject *self, PyObject *args); +static PyObject *_inPU7VH776V(PyObject *self, PyObject *args); +static PyObject *_inPU7VHfaH0(PyObject *self, PyObject *args); +static PyObject *_inPU7VHGB9D(PyObject *self, PyObject *args); static PyObject *_inPU7VHsxxs(PyObject *self, PyObject *args); static PyObject *_inPU7VHMT0z(PyObject *self, PyObject *args); static PyObject *_inPU7VHiW3v(PyObject *self, PyObject *args); @@ -93,61 +93,62 @@ static PyObject *_inPU7VH4Px8(PyObject *self, PyObject *args); static PyObject *_inPU7VHNHcs(PyObject *self, PyObject *args); static PyObject *_inPU7VHqHrb(PyObject *self, PyObject *args); static PyObject *_inPU7VHaOqq(PyObject *self, PyObject *args); -static PyObject *_inPU7VHvue5(PyObject *self, PyObject *args); -static PyObject *_inPU7VHB_n_(PyObject *self, PyObject *args); -static PyObject *_inPU7VHDFET(PyObject *self, PyObject *args); -static PyObject *_inPU7VHUyNE(PyObject *self, PyObject *args); -static PyObject *_inPU7VHpDlm(PyObject *self, PyObject *args); -static PyObject *_inPU7VHAscF(PyObject *self, PyObject *args); -static PyObject *_inPU7VHYjbU(PyObject *self, PyObject *args); -static PyObject *_inPU7VHWmpU(PyObject *self, PyObject *args); -static PyObject *_inPU7VHnegH(PyObject *self, PyObject *args); -static PyObject *_inPU7VHrrnF(PyObject *self, PyObject *args); -static PyObject *_inPU7VH7ShX(PyObject *self, PyObject *args); -static PyObject *_inPU7VHx_aO(PyObject *self, PyObject *args); -static PyObject *_inPU7VHpofZ(PyObject *self, PyObject *args); -static PyObject *_inPU7VH2J9C(PyObject *self, PyObject *args); -static PyObject *_inPU7VHA6iz(PyObject *self, PyObject *args); -static PyObject *_inPU7VHa78E(PyObject *self, PyObject *args); -static PyObject *_inPU7VHWD3W(PyObject *self, PyObject *args); -static PyObject *_inPU7VHYuud(PyObject *self, PyObject *args); -static PyObject *_inPU7VHlmJS(PyObject *self, PyObject *args); -static PyObject *_inPU7VHLlrr(PyObject *self, PyObject *args); -static PyObject *_inPU7VHw_wy(PyObject *self, PyObject *args); -static PyObject *_inPU7VHgk_l(PyObject *self, PyObject *args); -static PyObject *_inPU7VHXpHY(PyObject *self, PyObject *args); -static PyObject *_inPU7VHHhIg(PyObject *self, PyObject *args); -static PyObject *_inPU7VHff0T(PyObject *self, PyObject *args); -static PyObject *_inPU7VH5PPX(PyObject *self, PyObject *args); -static PyObject *_inPU7VHCIt5(PyObject *self, PyObject *args); -static PyObject *_inPU7VHPww5(PyObject *self, PyObject *args); -static PyObject *_inPU7VHPke3(PyObject *self, PyObject *args); -static PyObject *_inPU7VHJmw3(PyObject *self, PyObject *args); -static PyObject *_inPU7VHR0Lc(PyObject *self, PyObject *args); -static PyObject *_inPU7VHc6gE(PyObject *self, PyObject *args); -static PyObject *_inPU7VH1iT0(PyObject *self, PyObject *args); -static PyObject *_inPU7VHz1Mn(PyObject *self, PyObject *args); -static PyObject *_inPU7VHWlf2(PyObject *self, PyObject *args); -static PyObject *_inPU7VH1q8q(PyObject *self, PyObject *args); -static PyObject *_inPU7VHobo6(PyObject *self, PyObject *args); -static PyObject *_inPU7VHjevK(PyObject *self, PyObject *args); -static PyObject *_inPU7VHeBpM(PyObject *self, PyObject *args); -static PyObject *_inPU7VHfmeN(PyObject *self, PyObject *args); -static PyObject *_inPU7VHKBCl(PyObject *self, PyObject *args); -static PyObject *_inPU7VH936K(PyObject *self, PyObject *args); -static PyObject *_inPU7VHPPXQ(PyObject *self, PyObject *args); -static PyObject *_inPU7VHnu86(PyObject *self, PyObject *args); -static PyObject *_inPU7VHngiq(PyObject *self, PyObject *args); -static PyObject *_inPU7VHUXR0(PyObject *self, PyObject *args); -static PyObject *_inPU7VHDO7D(PyObject *self, PyObject *args); -static PyObject *_inPU7VHhZFz(PyObject *self, PyObject *args); -static PyObject *_inPU7VHnKPe(PyObject *self, PyObject *args); -static PyObject *_inPU7VHP3lS(PyObject *self, PyObject *args); -static PyObject *_inPU7VHUlLp(PyObject *self, PyObject *args); -static PyObject *_inPU7VH9Xei(PyObject *self, PyObject *args); -static PyObject *_inPU7VHaGkE(PyObject *self, PyObject *args); -static PyObject *_inPU7VHoe_l(PyObject *self, PyObject *args); -static PyObject *_inPU7VHuEdH(PyObject *self, PyObject *args); +static PyObject *_inPU7VHqWOw(PyObject *self, PyObject *args); +static PyObject *_inPU7VHHu7x(PyObject *self, PyObject *args); +static PyObject *_inPU7VHwGnA(PyObject *self, PyObject *args); +static PyObject *_inPU7VHXGxx(PyObject *self, PyObject *args); +static PyObject *_inPU7VHj04Z(PyObject *self, PyObject *args); +static PyObject *_inPU7VHEOv4(PyObject *self, PyObject *args); +static PyObject *_inPU7VHpCqJ(PyObject *self, PyObject *args); +static PyObject *_inPU7VH_Pz3(PyObject *self, PyObject *args); +static PyObject *_inPU7VHt_06(PyObject *self, PyObject *args); +static PyObject *_inPU7VHmuPs(PyObject *self, PyObject *args); +static PyObject *_inPU7VHvM8B(PyObject *self, PyObject *args); +static PyObject *_inPU7VHap97(PyObject *self, PyObject *args); +static PyObject *_inPU7VH0o8D(PyObject *self, PyObject *args); +static PyObject *_inPU7VHOoQ2(PyObject *self, PyObject *args); +static PyObject *_inPU7VHKuFh(PyObject *self, PyObject *args); +static PyObject *_inPU7VHo5L6(PyObject *self, PyObject *args); +static PyObject *_inPU7VHzgKK(PyObject *self, PyObject *args); +static PyObject *_inPU7VH0FIF(PyObject *self, PyObject *args); +static PyObject *_inPU7VHZqvD(PyObject *self, PyObject *args); +static PyObject *_inPU7VHDyRd(PyObject *self, PyObject *args); +static PyObject *_inPU7VHMnKa(PyObject *self, PyObject *args); +static PyObject *_inPU7VHRtji(PyObject *self, PyObject *args); +static PyObject *_inPU7VHCnbQ(PyObject *self, PyObject *args); +static PyObject *_inPU7VHdUVN(PyObject *self, PyObject *args); +static PyObject *_inPU7VHihbt(PyObject *self, PyObject *args); +static PyObject *_inPU7VHbyPY(PyObject *self, PyObject *args); +static PyObject *_inPU7VHAaT6(PyObject *self, PyObject *args); +static PyObject *_inPU7VHgL9q(PyObject *self, PyObject *args); +static PyObject *_inPU7VHWB97(PyObject *self, PyObject *args); +static PyObject *_inPU7VHDUAl(PyObject *self, PyObject *args); +static PyObject *_inPU7VH1_Kf(PyObject *self, PyObject *args); +static PyObject *_inPU7VH98lD(PyObject *self, PyObject *args); +static PyObject *_inPU7VH9SHr(PyObject *self, PyObject *args); +static PyObject *_inPU7VHdiZP(PyObject *self, PyObject *args); +static PyObject *_inPU7VHTdER(PyObject *self, PyObject *args); +static PyObject *_inPU7VHYO56(PyObject *self, PyObject *args); +static PyObject *_inPU7VHxtCG(PyObject *self, PyObject *args); +static PyObject *_inPU7VH_EB2(PyObject *self, PyObject *args); +static PyObject *_inPU7VHEG1l(PyObject *self, PyObject *args); +static PyObject *_inPU7VH7tUq(PyObject *self, PyObject *args); +static PyObject *_inPU7VHyStU(PyObject *self, PyObject *args); +static PyObject *_inPU7VHdM85(PyObject *self, PyObject *args); +static PyObject *_inPU7VHk_GN(PyObject *self, PyObject *args); +static PyObject *_inPU7VH8QjG(PyObject *self, PyObject *args); +static PyObject *_inPU7VHyMtj(PyObject *self, PyObject *args); +static PyObject *_inPU7VHHDtN(PyObject *self, PyObject *args); +static PyObject *_inPU7VHHFjA(PyObject *self, PyObject *args); +static PyObject *_inPU7VH_NPR(PyObject *self, PyObject *args); +static PyObject *_inPU7VHcTOH(PyObject *self, PyObject *args); +static PyObject *_inPU7VHhdU7(PyObject *self, PyObject *args); +static PyObject *_inPU7VHQPxU(PyObject *self, PyObject *args); +static PyObject *_inPU7VHO7Pz(PyObject *self, PyObject *args); +static PyObject *_inPU7VHvu_E(PyObject *self, PyObject *args); +static PyObject *_inPU7VHxGUt(PyObject *self, PyObject *args); +static PyObject *_inPU7VHzM1P(PyObject *self, PyObject *args); +static PyObject *_inPU7VHoY5L(PyObject *self, PyObject *args); /* @@ -158,7 +159,7 @@ static PyObject * _inPU7VHtbRf(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - interrogate_add_search_directory((char const *)param0); + interrogate_add_search_directory((char *)param0); return Py_BuildValue(""); } return (PyObject *)NULL; @@ -172,7 +173,7 @@ static PyObject * _inPU7VHda_g(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - interrogate_add_search_path((char const *)param0); + interrogate_add_search_path((char *)param0); return Py_BuildValue(""); } return (PyObject *)NULL; @@ -210,13 +211,13 @@ _inPU7VH3Gip(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_manifest(int n) + * ManifestIndex interrogate_get_manifest(int n) */ static PyObject * _inPU7VHRKDz(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_manifest((int)param0); + ManifestIndex return_value = interrogate_get_manifest((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -228,13 +229,13 @@ _inPU7VHRKDz(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_manifest_by_name(char const *manifest_name) + * ManifestIndex interrogate_get_manifest_by_name(char const *manifest_name) */ static PyObject * _inPU7VHgZ9N(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_manifest_by_name((char const *)param0); + ManifestIndex return_value = interrogate_get_manifest_by_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -246,13 +247,13 @@ _inPU7VHgZ9N(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_manifest_name(int manifest) + * char const *interrogate_manifest_name(ManifestIndex manifest) */ static PyObject * -_inPU7VHRQIx(PyObject *, PyObject *args) { +_inPU7VHFnRZ(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_manifest_name((int)param0); + char const *return_value = interrogate_manifest_name((ManifestIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -264,13 +265,13 @@ _inPU7VHRQIx(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_manifest_definition(int manifest) + * char const *interrogate_manifest_definition(ManifestIndex manifest) */ static PyObject * -_inPU7VHGVSj(PyObject *, PyObject *args) { +_inPU7VHg0Qv(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_manifest_definition((int)param0); + char const *return_value = interrogate_manifest_definition((ManifestIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -282,13 +283,13 @@ _inPU7VHGVSj(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_manifest_has_type(int manifest) + * bool interrogate_manifest_has_type(ManifestIndex manifest) */ static PyObject * -_inPU7VHznM6(PyObject *, PyObject *args) { +_inPU7VHtrqw(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_manifest_has_type((int)param0); + bool return_value = interrogate_manifest_has_type((ManifestIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -296,13 +297,13 @@ _inPU7VHznM6(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_manifest_get_type(int manifest) + * TypeIndex interrogate_manifest_get_type(ManifestIndex manifest) */ static PyObject * -_inPU7VHjiLg(PyObject *, PyObject *args) { +_inPU7VHdmpW(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_manifest_get_type((int)param0); + TypeIndex return_value = interrogate_manifest_get_type((ManifestIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -314,13 +315,13 @@ _inPU7VHjiLg(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_manifest_has_getter(int manifest) + * bool interrogate_manifest_has_getter(ManifestIndex manifest) */ static PyObject * -_inPU7VH_yjE(PyObject *, PyObject *args) { +_inPU7VHUYgQ(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_manifest_has_getter((int)param0); + bool return_value = interrogate_manifest_has_getter((ManifestIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -328,13 +329,13 @@ _inPU7VH_yjE(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_manifest_getter(int manifest) + * FunctionIndex interrogate_manifest_getter(ManifestIndex manifest) */ static PyObject * -_inPU7VHzK9F(PyObject *, PyObject *args) { +_inPU7VH0k7F(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_manifest_getter((int)param0); + FunctionIndex return_value = interrogate_manifest_getter((ManifestIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -346,13 +347,13 @@ _inPU7VHzK9F(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_manifest_has_int_value(int manifest) + * bool interrogate_manifest_has_int_value(ManifestIndex manifest) */ static PyObject * -_inPU7VHJju_(PyObject *, PyObject *args) { +_inPU7VHfIsr(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_manifest_has_int_value((int)param0); + bool return_value = interrogate_manifest_has_int_value((ManifestIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -360,13 +361,13 @@ _inPU7VHJju_(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_manifest_get_int_value(int manifest) + * int interrogate_manifest_get_int_value(ManifestIndex manifest) */ static PyObject * -_inPU7VHZktk(PyObject *, PyObject *args) { +_inPU7VHvysR(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_manifest_get_int_value((int)param0); + int return_value = interrogate_manifest_get_int_value((ManifestIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -378,13 +379,13 @@ _inPU7VHZktk(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_element_name(int element) + * char const *interrogate_element_name(ElementIndex element) */ static PyObject * -_inPU7VHG71J(PyObject *, PyObject *args) { +_inPU7VHYQ_2(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_element_name((int)param0); + char const *return_value = interrogate_element_name((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -396,13 +397,13 @@ _inPU7VHG71J(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_element_scoped_name(int element) + * char const *interrogate_element_scoped_name(ElementIndex element) */ static PyObject * -_inPU7VHgeUs(PyObject *, PyObject *args) { +_inPU7VH3kdv(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_element_scoped_name((int)param0); + char const *return_value = interrogate_element_scoped_name((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -414,13 +415,13 @@ _inPU7VHgeUs(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_element_has_comment(int element) + * bool interrogate_element_has_comment(ElementIndex element) */ static PyObject * -_inPU7VH5Gsy(PyObject *, PyObject *args) { +_inPU7VHew01(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_element_has_comment((int)param0); + bool return_value = interrogate_element_has_comment((ElementIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -428,13 +429,13 @@ _inPU7VH5Gsy(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_element_comment(int element) + * char const *interrogate_element_comment(ElementIndex element) */ static PyObject * -_inPU7VHCSJJ(PyObject *, PyObject *args) { +_inPU7VHQna7(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_element_comment((int)param0); + char const *return_value = interrogate_element_comment((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -446,13 +447,13 @@ _inPU7VHCSJJ(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_element_by_name(char const *element_name) + * ElementIndex interrogate_get_element_by_name(char const *element_name) */ static PyObject * _inPU7VHkg95(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_element_by_name((char const *)param0); + ElementIndex return_value = interrogate_get_element_by_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -464,13 +465,13 @@ _inPU7VHkg95(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_element_by_scoped_name(char const *element_name) + * ElementIndex interrogate_get_element_by_scoped_name(char const *element_name) */ static PyObject * _inPU7VHluRc(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_element_by_scoped_name((char const *)param0); + ElementIndex return_value = interrogate_get_element_by_scoped_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -482,13 +483,13 @@ _inPU7VHluRc(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_element_type(int element) + * TypeIndex interrogate_element_type(ElementIndex element) */ static PyObject * -_inPU7VHwtTf(PyObject *, PyObject *args) { +_inPU7VHtHdM(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_element_type((int)param0); + TypeIndex return_value = interrogate_element_type((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -500,13 +501,13 @@ _inPU7VHwtTf(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_element_has_getter(int element) + * bool interrogate_element_has_getter(ElementIndex element) */ static PyObject * -_inPU7VHrfao(PyObject *, PyObject *args) { +_inPU7VHDId0(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_element_has_getter((int)param0); + bool return_value = interrogate_element_has_getter((ElementIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -514,13 +515,13 @@ _inPU7VHrfao(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_element_getter(int element) + * FunctionIndex interrogate_element_getter(ElementIndex element) */ static PyObject * -_inPU7VHcedk(PyObject *, PyObject *args) { +_inPU7VHHuAm(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_element_getter((int)param0); + FunctionIndex return_value = interrogate_element_getter((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -532,13 +533,13 @@ _inPU7VHcedk(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_element_has_setter(int element) + * bool interrogate_element_has_setter(ElementIndex element) */ static PyObject * -_inPU7VHXmoo(PyObject *, PyObject *args) { +_inPU7VH_xr0(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_element_has_setter((int)param0); + bool return_value = interrogate_element_has_setter((ElementIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -546,13 +547,13 @@ _inPU7VHXmoo(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_element_setter(int element) + * FunctionIndex interrogate_element_setter(ElementIndex element) */ static PyObject * -_inPU7VHclIo(PyObject *, PyObject *args) { +_inPU7VHH5qp(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_element_setter((int)param0); + FunctionIndex return_value = interrogate_element_setter((ElementIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -581,13 +582,13 @@ _inPU7VHU2_B(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_global(int n) + * ElementIndex interrogate_get_global(int n) */ static PyObject * _inPU7VHHFO2(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_global((int)param0); + ElementIndex return_value = interrogate_get_global((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -616,13 +617,13 @@ _inPU7VHcfjm(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_global_function(int n) + * FunctionIndex interrogate_get_global_function(int n) */ static PyObject * _inPU7VH3Sjw(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_global_function((int)param0); + FunctionIndex return_value = interrogate_get_global_function((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -651,13 +652,13 @@ _inPU7VHgJcX(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_function(int n) + * FunctionIndex interrogate_get_function(int n) */ static PyObject * _inPU7VHYlw6(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_function((int)param0); + FunctionIndex return_value = interrogate_get_function((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -669,13 +670,13 @@ _inPU7VHYlw6(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_name(int function) + * char const *interrogate_function_name(FunctionIndex function) */ static PyObject * -_inPU7VH3gns(PyObject *, PyObject *args) { +_inPU7VHsmnz(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_name((int)param0); + char const *return_value = interrogate_function_name((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -687,13 +688,13 @@ _inPU7VH3gns(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_scoped_name(int function) + * char const *interrogate_function_scoped_name(FunctionIndex function) */ static PyObject * -_inPU7VHN968(PyObject *, PyObject *args) { +_inPU7VHxQ10(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_scoped_name((int)param0); + char const *return_value = interrogate_function_scoped_name((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -705,13 +706,13 @@ _inPU7VHN968(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_function_has_comment(int function) + * bool interrogate_function_has_comment(FunctionIndex function) */ static PyObject * -_inPU7VHFJVJ(PyObject *, PyObject *args) { +_inPU7VH6gPB(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_function_has_comment((int)param0); + bool return_value = interrogate_function_has_comment((FunctionIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -719,13 +720,13 @@ _inPU7VHFJVJ(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_comment(int function) + * char const *interrogate_function_comment(FunctionIndex function) */ static PyObject * -_inPU7VHndTW(PyObject *, PyObject *args) { +_inPU7VHISgV(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_comment((int)param0); + char const *return_value = interrogate_function_comment((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -737,13 +738,13 @@ _inPU7VHndTW(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_prototype(int function) + * char const *interrogate_function_prototype(FunctionIndex function) */ static PyObject * -_inPU7VHpjWj(PyObject *, PyObject *args) { +_inPU7VHH3bx(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_prototype((int)param0); + char const *return_value = interrogate_function_prototype((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -755,13 +756,13 @@ _inPU7VHpjWj(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_function_is_method(int function) + * bool interrogate_function_is_method(FunctionIndex function) */ static PyObject * -_inPU7VHNcQW(PyObject *, PyObject *args) { +_inPU7VHzeUk(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_function_is_method((int)param0); + bool return_value = interrogate_function_is_method((FunctionIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -769,13 +770,13 @@ _inPU7VHNcQW(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_function_class(int function) + * TypeIndex interrogate_function_class(FunctionIndex function) */ static PyObject * -_inPU7VHP_SX(PyObject *, PyObject *args) { +_inPU7VHUeI5(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_function_class((int)param0); + TypeIndex return_value = interrogate_function_class((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -787,13 +788,13 @@ _inPU7VHP_SX(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_function_has_module_name(int function) + * bool interrogate_function_has_module_name(FunctionIndex function) */ static PyObject * -_inPU7VH1iRq(PyObject *, PyObject *args) { +_inPU7VHuSvx(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_function_has_module_name((int)param0); + bool return_value = interrogate_function_has_module_name((FunctionIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -801,13 +802,13 @@ _inPU7VH1iRq(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_module_name(int function) + * char const *interrogate_function_module_name(FunctionIndex function) */ static PyObject * -_inPU7VHEmel(PyObject *, PyObject *args) { +_inPU7VHwpYd(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_module_name((int)param0); + char const *return_value = interrogate_function_module_name((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -819,13 +820,13 @@ _inPU7VHEmel(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_function_has_library_name(int function) + * bool interrogate_function_has_library_name(FunctionIndex function) */ static PyObject * -_inPU7VH20Vx(PyObject *, PyObject *args) { +_inPU7VHOfNh(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_function_has_library_name((int)param0); + bool return_value = interrogate_function_has_library_name((FunctionIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -833,13 +834,13 @@ _inPU7VH20Vx(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_function_library_name(int function) + * char const *interrogate_function_library_name(FunctionIndex function) */ static PyObject * -_inPU7VHKcdW(PyObject *, PyObject *args) { +_inPU7VHf5_U(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_function_library_name((int)param0); + char const *return_value = interrogate_function_library_name((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -851,13 +852,13 @@ _inPU7VHKcdW(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_function_is_virtual(int function) + * bool interrogate_function_is_virtual(FunctionIndex function) */ static PyObject * -_inPU7VHhUs9(PyObject *, PyObject *args) { +_inPU7VHL3ZB(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_function_is_virtual((int)param0); + bool return_value = interrogate_function_is_virtual((FunctionIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -865,13 +866,13 @@ _inPU7VHhUs9(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_function_number_of_c_wrappers(int function) + * int interrogate_function_number_of_c_wrappers(FunctionIndex function) */ static PyObject * -_inPU7VHhF25(PyObject *, PyObject *args) { +_inPU7VHXw0I(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_function_number_of_c_wrappers((int)param0); + int return_value = interrogate_function_number_of_c_wrappers((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -883,14 +884,14 @@ _inPU7VHhF25(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_function_c_wrapper(int function, int n) + * FunctionWrapperIndex interrogate_function_c_wrapper(FunctionIndex function, int n) */ static PyObject * -_inPU7VHu1qB(PyObject *, PyObject *args) { +_inPU7VH3zru(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_function_c_wrapper((int)param0, (int)param1); + FunctionWrapperIndex return_value = interrogate_function_c_wrapper((FunctionIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -902,13 +903,13 @@ _inPU7VHu1qB(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_function_number_of_python_wrappers(int function) + * int interrogate_function_number_of_python_wrappers(FunctionIndex function) */ static PyObject * -_inPU7VHKMkY(PyObject *, PyObject *args) { +_inPU7VHRrg2(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_function_number_of_python_wrappers((int)param0); + int return_value = interrogate_function_number_of_python_wrappers((FunctionIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -920,14 +921,14 @@ _inPU7VHKMkY(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_function_python_wrapper(int function, int n) + * FunctionWrapperIndex interrogate_function_python_wrapper(FunctionIndex function, int n) */ static PyObject * -_inPU7VHRx9W(PyObject *, PyObject *args) { +_inPU7VHEJCx(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_function_python_wrapper((int)param0, (int)param1); + FunctionWrapperIndex return_value = interrogate_function_python_wrapper((FunctionIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -939,13 +940,13 @@ _inPU7VHRx9W(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_wrapper_name(int wrapper) + * char const *interrogate_wrapper_name(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VH0C9G(PyObject *, PyObject *args) { +_inPU7VHWAZr(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_wrapper_name((int)param0); + char const *return_value = interrogate_wrapper_name((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -957,13 +958,13 @@ _inPU7VH0C9G(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_is_callable_by_name(int wrapper) + * bool interrogate_wrapper_is_callable_by_name(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHhaPp(PyObject *, PyObject *args) { +_inPU7VHrD_M(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_wrapper_is_callable_by_name((int)param0); + bool return_value = interrogate_wrapper_is_callable_by_name((FunctionWrapperIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -971,13 +972,13 @@ _inPU7VHhaPp(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_has_comment(int wrapper) + * bool interrogate_wrapper_has_comment(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHt_1v(PyObject *, PyObject *args) { +_inPU7VHjolz(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_wrapper_has_comment((int)param0); + bool return_value = interrogate_wrapper_has_comment((FunctionWrapperIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -985,13 +986,13 @@ _inPU7VHt_1v(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_wrapper_comment(int wrapper) + * char const *interrogate_wrapper_comment(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VH8KQG(PyObject *, PyObject *args) { +_inPU7VHt_JD(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_wrapper_comment((int)param0); + char const *return_value = interrogate_wrapper_comment((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1003,13 +1004,13 @@ _inPU7VH8KQG(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_has_return_value(int wrapper) + * bool interrogate_wrapper_has_return_value(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHEtIl(PyObject *, PyObject *args) { +_inPU7VHwEts(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_wrapper_has_return_value((int)param0); + bool return_value = interrogate_wrapper_has_return_value((FunctionWrapperIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1017,13 +1018,13 @@ _inPU7VHEtIl(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_wrapper_return_type(int wrapper) + * TypeIndex interrogate_wrapper_return_type(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHRFmo(PyObject *, PyObject *args) { +_inPU7VHrJWs(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_wrapper_return_type((int)param0); + TypeIndex return_value = interrogate_wrapper_return_type((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1035,13 +1036,13 @@ _inPU7VHRFmo(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_caller_manages_return_value(int wrapper) + * bool interrogate_wrapper_caller_manages_return_value(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHWHA0(PyObject *, PyObject *args) { +_inPU7VHpmFD(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_wrapper_caller_manages_return_value((int)param0); + bool return_value = interrogate_wrapper_caller_manages_return_value((FunctionWrapperIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1049,13 +1050,13 @@ _inPU7VHWHA0(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_wrapper_return_value_destructor(int wrapper) + * FunctionIndex interrogate_wrapper_return_value_destructor(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHcyIl(PyObject *, PyObject *args) { +_inPU7VHyYUX(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_wrapper_return_value_destructor((int)param0); + FunctionIndex return_value = interrogate_wrapper_return_value_destructor((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1067,13 +1068,13 @@ _inPU7VHcyIl(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_wrapper_number_of_parameters(int wrapper) + * int interrogate_wrapper_number_of_parameters(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHBnBv(PyObject *, PyObject *args) { +_inPU7VH54dn(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_wrapper_number_of_parameters((int)param0); + int return_value = interrogate_wrapper_number_of_parameters((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1085,14 +1086,14 @@ _inPU7VHBnBv(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_wrapper_parameter_type(int wrapper, int n) + * TypeIndex interrogate_wrapper_parameter_type(FunctionWrapperIndex wrapper, int n) */ static PyObject * -_inPU7VHUvW7(PyObject *, PyObject *args) { +_inPU7VHGMpW(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_wrapper_parameter_type((int)param0, (int)param1); + TypeIndex return_value = interrogate_wrapper_parameter_type((FunctionWrapperIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1104,14 +1105,14 @@ _inPU7VHUvW7(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_parameter_has_name(int wrapper, int n) + * bool interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper, int n) */ static PyObject * -_inPU7VHPdXf(PyObject *, PyObject *args) { +_inPU7VHNuBV(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - bool return_value = interrogate_wrapper_parameter_has_name((int)param0, (int)param1); + bool return_value = interrogate_wrapper_parameter_has_name((FunctionWrapperIndex)param0, (int)param1); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1119,14 +1120,14 @@ _inPU7VHPdXf(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_wrapper_parameter_name(int wrapper, int n) + * char const *interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper, int n) */ static PyObject * -_inPU7VHd0dl(PyObject *, PyObject *args) { +_inPU7VH9UwA(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - char const *return_value = interrogate_wrapper_parameter_name((int)param0, (int)param1); + char const *return_value = interrogate_wrapper_parameter_name((FunctionWrapperIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1138,14 +1139,14 @@ _inPU7VHd0dl(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_parameter_is_this(int wrapper, int n) + * bool interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper, int n) */ static PyObject * -_inPU7VHdVbH(PyObject *, PyObject *args) { +_inPU7VH3FDt(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - bool return_value = interrogate_wrapper_parameter_is_this((int)param0, (int)param1); + bool return_value = interrogate_wrapper_parameter_is_this((FunctionWrapperIndex)param0, (int)param1); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1153,13 +1154,13 @@ _inPU7VHdVbH(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_wrapper_has_pointer(int wrapper) + * bool interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHBwF0(PyObject *, PyObject *args) { +_inPU7VHf513(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_wrapper_has_pointer((int)param0); + bool return_value = interrogate_wrapper_has_pointer((FunctionWrapperIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1167,13 +1168,13 @@ _inPU7VHBwF0(PyObject *, PyObject *args) { /* * Python simple wrapper for - * void *interrogate_wrapper_pointer(int wrapper) + * void *interrogate_wrapper_pointer(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VH9dPK(PyObject *, PyObject *args) { +_inPU7VHsqGH(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - interrogate_wrapper_pointer((int)param0); + interrogate_wrapper_pointer((FunctionWrapperIndex)param0); return Py_BuildValue(""); } return (PyObject *)NULL; @@ -1181,13 +1182,13 @@ _inPU7VH9dPK(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_wrapper_unique_name(int wrapper) + * char const *interrogate_wrapper_unique_name(FunctionWrapperIndex wrapper) */ static PyObject * -_inPU7VHhUwR(PyObject *, PyObject *args) { +_inPU7VH7shV(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_wrapper_unique_name((int)param0); + char const *return_value = interrogate_wrapper_unique_name((FunctionWrapperIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1199,13 +1200,13 @@ _inPU7VHhUwR(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_wrapper_by_unique_name(char const *unique_name) + * FunctionWrapperIndex interrogate_get_wrapper_by_unique_name(char const *unique_name) */ static PyObject * _inPU7VHA1eF(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_wrapper_by_unique_name((char const *)param0); + FunctionWrapperIndex return_value = interrogate_get_wrapper_by_unique_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1217,13 +1218,13 @@ _inPU7VHA1eF(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_make_seq_class(int make_seq) + * TypeIndex interrogate_make_seq_class(MakeSeqIndex make_seq) */ static PyObject * -_inPU7VH8pBy(PyObject *, PyObject *args) { +_inPU7VH9tTm(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_make_seq_class((int)param0); + TypeIndex return_value = interrogate_make_seq_class((MakeSeqIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1235,13 +1236,13 @@ _inPU7VH8pBy(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_make_seq_seq_name(int make_seq) + * char const *interrogate_make_seq_seq_name(MakeSeqIndex make_seq) */ static PyObject * -_inPU7VH85oW(PyObject *, PyObject *args) { +_inPU7VH776V(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_make_seq_seq_name((int)param0); + char const *return_value = interrogate_make_seq_seq_name((MakeSeqIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1253,13 +1254,13 @@ _inPU7VH85oW(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_make_seq_num_name(int make_seq) + * char const *interrogate_make_seq_num_name(MakeSeqIndex make_seq) */ static PyObject * -_inPU7VHYZz0(PyObject *, PyObject *args) { +_inPU7VHfaH0(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_make_seq_num_name((int)param0); + char const *return_value = interrogate_make_seq_num_name((MakeSeqIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1271,13 +1272,13 @@ _inPU7VHYZz0(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_make_seq_element_name(int make_seq) + * char const *interrogate_make_seq_element_name(MakeSeqIndex make_seq) */ static PyObject * -_inPU7VHzKCA(PyObject *, PyObject *args) { +_inPU7VHGB9D(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_make_seq_element_name((int)param0); + char const *return_value = interrogate_make_seq_element_name((MakeSeqIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1306,13 +1307,13 @@ _inPU7VHsxxs(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_global_type(int n) + * TypeIndex interrogate_get_global_type(int n) */ static PyObject * _inPU7VHMT0z(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_global_type((int)param0); + TypeIndex return_value = interrogate_get_global_type((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1341,13 +1342,13 @@ _inPU7VHiW3v(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_type(int n) + * TypeIndex interrogate_get_type(int n) */ static PyObject * _inPU7VH4Px8(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_get_type((int)param0); + TypeIndex return_value = interrogate_get_type((int)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1359,13 +1360,13 @@ _inPU7VH4Px8(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_type_by_name(char const *type_name) + * TypeIndex interrogate_get_type_by_name(char const *type_name) */ static PyObject * _inPU7VHNHcs(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_type_by_name((char const *)param0); + TypeIndex return_value = interrogate_get_type_by_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1377,13 +1378,13 @@ _inPU7VHNHcs(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_type_by_scoped_name(char const *type_name) + * TypeIndex interrogate_get_type_by_scoped_name(char const *type_name) */ static PyObject * _inPU7VHqHrb(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_type_by_scoped_name((char const *)param0); + TypeIndex return_value = interrogate_get_type_by_scoped_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1395,13 +1396,13 @@ _inPU7VHqHrb(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_get_type_by_true_name(char const *type_name) + * TypeIndex interrogate_get_type_by_true_name(char const *type_name) */ static PyObject * _inPU7VHaOqq(PyObject *, PyObject *args) { char *param0; if (PyArg_ParseTuple(args, "s", ¶m0)) { - int return_value = interrogate_get_type_by_true_name((char const *)param0); + TypeIndex return_value = interrogate_get_type_by_true_name((char *)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1413,13 +1414,13 @@ _inPU7VHaOqq(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_name(int type) + * char const *interrogate_type_name(TypeIndex type) */ static PyObject * -_inPU7VHvue5(PyObject *, PyObject *args) { +_inPU7VHqWOw(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_name((int)param0); + char const *return_value = interrogate_type_name((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1431,13 +1432,13 @@ _inPU7VHvue5(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_scoped_name(int type) + * char const *interrogate_type_scoped_name(TypeIndex type) */ static PyObject * -_inPU7VHB_n_(PyObject *, PyObject *args) { +_inPU7VHHu7x(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_scoped_name((int)param0); + char const *return_value = interrogate_type_scoped_name((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1449,13 +1450,13 @@ _inPU7VHB_n_(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_true_name(int type) + * char const *interrogate_type_true_name(TypeIndex type) */ static PyObject * -_inPU7VHDFET(PyObject *, PyObject *args) { +_inPU7VHwGnA(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_true_name((int)param0); + char const *return_value = interrogate_type_true_name((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1467,13 +1468,13 @@ _inPU7VHDFET(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_nested(int type) + * bool interrogate_type_is_nested(TypeIndex type) */ static PyObject * -_inPU7VHUyNE(PyObject *, PyObject *args) { +_inPU7VHXGxx(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_nested((int)param0); + bool return_value = interrogate_type_is_nested((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1481,13 +1482,13 @@ _inPU7VHUyNE(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_outer_class(int type) + * TypeIndex interrogate_type_outer_class(TypeIndex type) */ static PyObject * -_inPU7VHpDlm(PyObject *, PyObject *args) { +_inPU7VHj04Z(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_outer_class((int)param0); + TypeIndex return_value = interrogate_type_outer_class((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1499,13 +1500,13 @@ _inPU7VHpDlm(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_has_comment(int type) + * bool interrogate_type_has_comment(TypeIndex type) */ static PyObject * -_inPU7VHAscF(PyObject *, PyObject *args) { +_inPU7VHEOv4(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_has_comment((int)param0); + bool return_value = interrogate_type_has_comment((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1513,13 +1514,13 @@ _inPU7VHAscF(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_comment(int type) + * char const *interrogate_type_comment(TypeIndex type) */ static PyObject * -_inPU7VHYjbU(PyObject *, PyObject *args) { +_inPU7VHpCqJ(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_comment((int)param0); + char const *return_value = interrogate_type_comment((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1531,13 +1532,13 @@ _inPU7VHYjbU(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_has_module_name(int type) + * bool interrogate_type_has_module_name(TypeIndex type) */ static PyObject * -_inPU7VHWmpU(PyObject *, PyObject *args) { +_inPU7VH_Pz3(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_has_module_name((int)param0); + bool return_value = interrogate_type_has_module_name((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1545,13 +1546,13 @@ _inPU7VHWmpU(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_module_name(int type) + * char const *interrogate_type_module_name(TypeIndex type) */ static PyObject * -_inPU7VHnegH(PyObject *, PyObject *args) { +_inPU7VHt_06(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_module_name((int)param0); + char const *return_value = interrogate_type_module_name((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1563,13 +1564,13 @@ _inPU7VHnegH(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_has_library_name(int type) + * bool interrogate_type_has_library_name(TypeIndex type) */ static PyObject * -_inPU7VHrrnF(PyObject *, PyObject *args) { +_inPU7VHmuPs(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_has_library_name((int)param0); + bool return_value = interrogate_type_has_library_name((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1577,13 +1578,13 @@ _inPU7VHrrnF(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_library_name(int type) + * char const *interrogate_type_library_name(TypeIndex type) */ static PyObject * -_inPU7VH7ShX(PyObject *, PyObject *args) { +_inPU7VHvM8B(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - char const *return_value = interrogate_type_library_name((int)param0); + char const *return_value = interrogate_type_library_name((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1595,13 +1596,13 @@ _inPU7VH7ShX(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_atomic(int type) + * bool interrogate_type_is_atomic(TypeIndex type) */ static PyObject * -_inPU7VHx_aO(PyObject *, PyObject *args) { +_inPU7VHap97(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_atomic((int)param0); + bool return_value = interrogate_type_is_atomic((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1609,13 +1610,13 @@ _inPU7VHx_aO(PyObject *, PyObject *args) { /* * Python simple wrapper for - * AtomicToken interrogate_type_atomic_token(int type) + * AtomicToken interrogate_type_atomic_token(TypeIndex type) */ static PyObject * -_inPU7VHpofZ(PyObject *, PyObject *args) { +_inPU7VH0o8D(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - AtomicToken return_value = interrogate_type_atomic_token((int)param0); + AtomicToken return_value = interrogate_type_atomic_token((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1627,13 +1628,13 @@ _inPU7VHpofZ(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_unsigned(int type) + * bool interrogate_type_is_unsigned(TypeIndex type) */ static PyObject * -_inPU7VH2J9C(PyObject *, PyObject *args) { +_inPU7VHOoQ2(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_unsigned((int)param0); + bool return_value = interrogate_type_is_unsigned((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1641,13 +1642,13 @@ _inPU7VH2J9C(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_signed(int type) + * bool interrogate_type_is_signed(TypeIndex type) */ static PyObject * -_inPU7VHA6iz(PyObject *, PyObject *args) { +_inPU7VHKuFh(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_signed((int)param0); + bool return_value = interrogate_type_is_signed((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1655,13 +1656,13 @@ _inPU7VHA6iz(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_long(int type) + * bool interrogate_type_is_long(TypeIndex type) */ static PyObject * -_inPU7VHa78E(PyObject *, PyObject *args) { +_inPU7VHo5L6(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_long((int)param0); + bool return_value = interrogate_type_is_long((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1669,13 +1670,13 @@ _inPU7VHa78E(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_longlong(int type) + * bool interrogate_type_is_longlong(TypeIndex type) */ static PyObject * -_inPU7VHWD3W(PyObject *, PyObject *args) { +_inPU7VHzgKK(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_longlong((int)param0); + bool return_value = interrogate_type_is_longlong((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1683,13 +1684,13 @@ _inPU7VHWD3W(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_short(int type) + * bool interrogate_type_is_short(TypeIndex type) */ static PyObject * -_inPU7VHYuud(PyObject *, PyObject *args) { +_inPU7VH0FIF(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_short((int)param0); + bool return_value = interrogate_type_is_short((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1697,13 +1698,13 @@ _inPU7VHYuud(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_wrapped(int type) + * bool interrogate_type_is_wrapped(TypeIndex type) */ static PyObject * -_inPU7VHlmJS(PyObject *, PyObject *args) { +_inPU7VHZqvD(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_wrapped((int)param0); + bool return_value = interrogate_type_is_wrapped((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1711,13 +1712,13 @@ _inPU7VHlmJS(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_pointer(int type) + * bool interrogate_type_is_pointer(TypeIndex type) */ static PyObject * -_inPU7VHLlrr(PyObject *, PyObject *args) { +_inPU7VHDyRd(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_pointer((int)param0); + bool return_value = interrogate_type_is_pointer((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1725,13 +1726,13 @@ _inPU7VHLlrr(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_const(int type) + * bool interrogate_type_is_const(TypeIndex type) */ static PyObject * -_inPU7VHw_wy(PyObject *, PyObject *args) { +_inPU7VHMnKa(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_const((int)param0); + bool return_value = interrogate_type_is_const((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1739,13 +1740,27 @@ _inPU7VHw_wy(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_wrapped_type(int type) + * bool interrogate_type_is_typedef(TypeIndex type) */ static PyObject * -_inPU7VHgk_l(PyObject *, PyObject *args) { +_inPU7VHRtji(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_wrapped_type((int)param0); + bool return_value = interrogate_type_is_typedef((TypeIndex)param0); + return PyBool_FromLong(return_value); + } + return (PyObject *)NULL; +} + +/* + * Python simple wrapper for + * TypeIndex interrogate_type_wrapped_type(TypeIndex type) + */ +static PyObject * +_inPU7VHCnbQ(PyObject *, PyObject *args) { + int param0; + if (PyArg_ParseTuple(args, "i", ¶m0)) { + TypeIndex return_value = interrogate_type_wrapped_type((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1757,13 +1772,13 @@ _inPU7VHgk_l(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_enum(int type) + * bool interrogate_type_is_enum(TypeIndex type) */ static PyObject * -_inPU7VHXpHY(PyObject *, PyObject *args) { +_inPU7VHdUVN(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_enum((int)param0); + bool return_value = interrogate_type_is_enum((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1771,13 +1786,13 @@ _inPU7VHXpHY(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_enum_values(int type) + * int interrogate_type_number_of_enum_values(TypeIndex type) */ static PyObject * -_inPU7VHHhIg(PyObject *, PyObject *args) { +_inPU7VHihbt(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_enum_values((int)param0); + int return_value = interrogate_type_number_of_enum_values((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1789,14 +1804,14 @@ _inPU7VHHhIg(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_enum_value_name(int type, int n) + * char const *interrogate_type_enum_value_name(TypeIndex type, int n) */ static PyObject * -_inPU7VHff0T(PyObject *, PyObject *args) { +_inPU7VHbyPY(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - char const *return_value = interrogate_type_enum_value_name((int)param0, (int)param1); + char const *return_value = interrogate_type_enum_value_name((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1808,14 +1823,14 @@ _inPU7VHff0T(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_enum_value_scoped_name(int type, int n) + * char const *interrogate_type_enum_value_scoped_name(TypeIndex type, int n) */ static PyObject * -_inPU7VH5PPX(PyObject *, PyObject *args) { +_inPU7VHAaT6(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - char const *return_value = interrogate_type_enum_value_scoped_name((int)param0, (int)param1); + char const *return_value = interrogate_type_enum_value_scoped_name((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1827,14 +1842,14 @@ _inPU7VH5PPX(PyObject *, PyObject *args) { /* * Python simple wrapper for - * char const *interrogate_type_enum_value_comment(int type, int n) + * char const *interrogate_type_enum_value_comment(TypeIndex type, int n) */ static PyObject * -_inPU7VHCIt5(PyObject *, PyObject *args) { +_inPU7VHgL9q(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - char const *return_value = interrogate_type_enum_value_comment((int)param0, (int)param1); + char const *return_value = interrogate_type_enum_value_comment((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(return_value); #else @@ -1846,14 +1861,14 @@ _inPU7VHCIt5(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_enum_value(int type, int n) + * int interrogate_type_enum_value(TypeIndex type, int n) */ static PyObject * -_inPU7VHPww5(PyObject *, PyObject *args) { +_inPU7VHWB97(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_enum_value((int)param0, (int)param1); + int return_value = interrogate_type_enum_value((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1865,13 +1880,13 @@ _inPU7VHPww5(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_struct(int type) + * bool interrogate_type_is_struct(TypeIndex type) */ static PyObject * -_inPU7VHPke3(PyObject *, PyObject *args) { +_inPU7VHDUAl(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_struct((int)param0); + bool return_value = interrogate_type_is_struct((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1879,13 +1894,13 @@ _inPU7VHPke3(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_class(int type) + * bool interrogate_type_is_class(TypeIndex type) */ static PyObject * -_inPU7VHJmw3(PyObject *, PyObject *args) { +_inPU7VH1_Kf(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_class((int)param0); + bool return_value = interrogate_type_is_class((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1893,13 +1908,13 @@ _inPU7VHJmw3(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_union(int type) + * bool interrogate_type_is_union(TypeIndex type) */ static PyObject * -_inPU7VHR0Lc(PyObject *, PyObject *args) { +_inPU7VH98lD(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_union((int)param0); + bool return_value = interrogate_type_is_union((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1907,13 +1922,13 @@ _inPU7VHR0Lc(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_fully_defined(int type) + * bool interrogate_type_is_fully_defined(TypeIndex type) */ static PyObject * -_inPU7VHc6gE(PyObject *, PyObject *args) { +_inPU7VH9SHr(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_fully_defined((int)param0); + bool return_value = interrogate_type_is_fully_defined((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1921,13 +1936,13 @@ _inPU7VHc6gE(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_is_unpublished(int type) + * bool interrogate_type_is_unpublished(TypeIndex type) */ static PyObject * -_inPU7VH1iT0(PyObject *, PyObject *args) { +_inPU7VHdiZP(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_is_unpublished((int)param0); + bool return_value = interrogate_type_is_unpublished((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1935,13 +1950,13 @@ _inPU7VH1iT0(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_constructors(int type) + * int interrogate_type_number_of_constructors(TypeIndex type) */ static PyObject * -_inPU7VHz1Mn(PyObject *, PyObject *args) { +_inPU7VHTdER(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_constructors((int)param0); + int return_value = interrogate_type_number_of_constructors((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1953,14 +1968,14 @@ _inPU7VHz1Mn(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_constructor(int type, int n) + * FunctionIndex interrogate_type_get_constructor(TypeIndex type, int n) */ static PyObject * -_inPU7VHWlf2(PyObject *, PyObject *args) { +_inPU7VHYO56(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_constructor((int)param0, (int)param1); + FunctionIndex return_value = interrogate_type_get_constructor((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -1972,13 +1987,13 @@ _inPU7VHWlf2(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_has_destructor(int type) + * bool interrogate_type_has_destructor(TypeIndex type) */ static PyObject * -_inPU7VH1q8q(PyObject *, PyObject *args) { +_inPU7VHxtCG(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_has_destructor((int)param0); + bool return_value = interrogate_type_has_destructor((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -1986,13 +2001,13 @@ _inPU7VH1q8q(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_destructor_is_inherited(int type) + * bool interrogate_type_destructor_is_inherited(TypeIndex type) */ static PyObject * -_inPU7VHobo6(PyObject *, PyObject *args) { +_inPU7VH_EB2(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - bool return_value = interrogate_type_destructor_is_inherited((int)param0); + bool return_value = interrogate_type_destructor_is_inherited((TypeIndex)param0); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -2000,13 +2015,13 @@ _inPU7VHobo6(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_destructor(int type) + * FunctionIndex interrogate_type_get_destructor(TypeIndex type) */ static PyObject * -_inPU7VHjevK(PyObject *, PyObject *args) { +_inPU7VHEG1l(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_get_destructor((int)param0); + FunctionIndex return_value = interrogate_type_get_destructor((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2018,13 +2033,13 @@ _inPU7VHjevK(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_elements(int type) + * int interrogate_type_number_of_elements(TypeIndex type) */ static PyObject * -_inPU7VHeBpM(PyObject *, PyObject *args) { +_inPU7VH7tUq(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_elements((int)param0); + int return_value = interrogate_type_number_of_elements((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2036,14 +2051,14 @@ _inPU7VHeBpM(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_element(int type, int n) + * ElementIndex interrogate_type_get_element(TypeIndex type, int n) */ static PyObject * -_inPU7VHfmeN(PyObject *, PyObject *args) { +_inPU7VHyStU(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_element((int)param0, (int)param1); + ElementIndex return_value = interrogate_type_get_element((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2055,13 +2070,13 @@ _inPU7VHfmeN(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_methods(int type) + * int interrogate_type_number_of_methods(TypeIndex type) */ static PyObject * -_inPU7VHKBCl(PyObject *, PyObject *args) { +_inPU7VHdM85(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_methods((int)param0); + int return_value = interrogate_type_number_of_methods((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2073,14 +2088,14 @@ _inPU7VHKBCl(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_method(int type, int n) + * FunctionIndex interrogate_type_get_method(TypeIndex type, int n) */ static PyObject * -_inPU7VH936K(PyObject *, PyObject *args) { +_inPU7VHk_GN(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_method((int)param0, (int)param1); + FunctionIndex return_value = interrogate_type_get_method((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2092,13 +2107,13 @@ _inPU7VH936K(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_make_seqs(int type) + * int interrogate_type_number_of_make_seqs(TypeIndex type) */ static PyObject * -_inPU7VHPPXQ(PyObject *, PyObject *args) { +_inPU7VH8QjG(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_make_seqs((int)param0); + int return_value = interrogate_type_number_of_make_seqs((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2110,14 +2125,14 @@ _inPU7VHPPXQ(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_make_seq(int type, int n) + * MakeSeqIndex interrogate_type_get_make_seq(TypeIndex type, int n) */ static PyObject * -_inPU7VHnu86(PyObject *, PyObject *args) { +_inPU7VHyMtj(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_make_seq((int)param0, (int)param1); + MakeSeqIndex return_value = interrogate_type_get_make_seq((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2129,13 +2144,13 @@ _inPU7VHnu86(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_casts(int type) + * int interrogate_type_number_of_casts(TypeIndex type) */ static PyObject * -_inPU7VHngiq(PyObject *, PyObject *args) { +_inPU7VHHDtN(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_casts((int)param0); + int return_value = interrogate_type_number_of_casts((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2147,14 +2162,14 @@ _inPU7VHngiq(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_cast(int type, int n) + * FunctionIndex interrogate_type_get_cast(TypeIndex type, int n) */ static PyObject * -_inPU7VHUXR0(PyObject *, PyObject *args) { +_inPU7VHHFjA(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_cast((int)param0, (int)param1); + FunctionIndex return_value = interrogate_type_get_cast((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2166,13 +2181,13 @@ _inPU7VHUXR0(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_derivations(int type) + * int interrogate_type_number_of_derivations(TypeIndex type) */ static PyObject * -_inPU7VHDO7D(PyObject *, PyObject *args) { +_inPU7VH_NPR(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_derivations((int)param0); + int return_value = interrogate_type_number_of_derivations((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2184,14 +2199,14 @@ _inPU7VHDO7D(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_derivation(int type, int n) + * TypeIndex interrogate_type_get_derivation(TypeIndex type, int n) */ static PyObject * -_inPU7VHhZFz(PyObject *, PyObject *args) { +_inPU7VHcTOH(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_derivation((int)param0, (int)param1); + TypeIndex return_value = interrogate_type_get_derivation((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2203,14 +2218,14 @@ _inPU7VHhZFz(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_derivation_has_upcast(int type, int n) + * bool interrogate_type_derivation_has_upcast(TypeIndex type, int n) */ static PyObject * -_inPU7VHnKPe(PyObject *, PyObject *args) { +_inPU7VHhdU7(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - bool return_value = interrogate_type_derivation_has_upcast((int)param0, (int)param1); + bool return_value = interrogate_type_derivation_has_upcast((TypeIndex)param0, (int)param1); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -2218,14 +2233,14 @@ _inPU7VHnKPe(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_upcast(int type, int n) + * FunctionIndex interrogate_type_get_upcast(TypeIndex type, int n) */ static PyObject * -_inPU7VHP3lS(PyObject *, PyObject *args) { +_inPU7VHQPxU(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_upcast((int)param0, (int)param1); + FunctionIndex return_value = interrogate_type_get_upcast((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2237,14 +2252,14 @@ _inPU7VHP3lS(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_derivation_downcast_is_impossible(int type, int n) + * bool interrogate_type_derivation_downcast_is_impossible(TypeIndex type, int n) */ static PyObject * -_inPU7VHUlLp(PyObject *, PyObject *args) { +_inPU7VHO7Pz(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - bool return_value = interrogate_type_derivation_downcast_is_impossible((int)param0, (int)param1); + bool return_value = interrogate_type_derivation_downcast_is_impossible((TypeIndex)param0, (int)param1); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -2252,14 +2267,14 @@ _inPU7VHUlLp(PyObject *, PyObject *args) { /* * Python simple wrapper for - * bool interrogate_type_derivation_has_downcast(int type, int n) + * bool interrogate_type_derivation_has_downcast(TypeIndex type, int n) */ static PyObject * -_inPU7VH9Xei(PyObject *, PyObject *args) { +_inPU7VHvu_E(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - bool return_value = interrogate_type_derivation_has_downcast((int)param0, (int)param1); + bool return_value = interrogate_type_derivation_has_downcast((TypeIndex)param0, (int)param1); return PyBool_FromLong(return_value); } return (PyObject *)NULL; @@ -2267,14 +2282,14 @@ _inPU7VH9Xei(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_downcast(int type, int n) + * FunctionIndex interrogate_type_get_downcast(TypeIndex type, int n) */ static PyObject * -_inPU7VHaGkE(PyObject *, PyObject *args) { +_inPU7VHxGUt(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_downcast((int)param0, (int)param1); + FunctionIndex return_value = interrogate_type_get_downcast((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2286,13 +2301,13 @@ _inPU7VHaGkE(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_number_of_nested_types(int type) + * int interrogate_type_number_of_nested_types(TypeIndex type) */ static PyObject * -_inPU7VHoe_l(PyObject *, PyObject *args) { +_inPU7VHzM1P(PyObject *, PyObject *args) { int param0; if (PyArg_ParseTuple(args, "i", ¶m0)) { - int return_value = interrogate_type_number_of_nested_types((int)param0); + int return_value = interrogate_type_number_of_nested_types((TypeIndex)param0); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2304,14 +2319,14 @@ _inPU7VHoe_l(PyObject *, PyObject *args) { /* * Python simple wrapper for - * int interrogate_type_get_nested_type(int type, int n) + * TypeIndex interrogate_type_get_nested_type(TypeIndex type, int n) */ static PyObject * -_inPU7VHuEdH(PyObject *, PyObject *args) { +_inPU7VHoY5L(PyObject *, PyObject *args) { int param0; int param1; if (PyArg_ParseTuple(args, "ii", ¶m0, ¶m1)) { - int return_value = interrogate_type_get_nested_type((int)param0, (int)param1); + TypeIndex return_value = interrogate_type_get_nested_type((TypeIndex)param0, (int)param1); #if PY_MAJOR_VERSION >= 3 return PyLong_FromLong(return_value); #else @@ -2329,68 +2344,68 @@ static PyMethodDef python_simple_funcs[] = { { "interrogate_number_of_manifests", &_inPU7VH3Gip, METH_VARARGS }, { "interrogate_get_manifest", &_inPU7VHRKDz, METH_VARARGS }, { "interrogate_get_manifest_by_name", &_inPU7VHgZ9N, METH_VARARGS }, - { "interrogate_manifest_name", &_inPU7VHRQIx, METH_VARARGS }, - { "interrogate_manifest_definition", &_inPU7VHGVSj, METH_VARARGS }, - { "interrogate_manifest_has_type", &_inPU7VHznM6, METH_VARARGS }, - { "interrogate_manifest_get_type", &_inPU7VHjiLg, METH_VARARGS }, - { "interrogate_manifest_has_getter", &_inPU7VH_yjE, METH_VARARGS }, - { "interrogate_manifest_getter", &_inPU7VHzK9F, METH_VARARGS }, - { "interrogate_manifest_has_int_value", &_inPU7VHJju_, METH_VARARGS }, - { "interrogate_manifest_get_int_value", &_inPU7VHZktk, METH_VARARGS }, - { "interrogate_element_name", &_inPU7VHG71J, METH_VARARGS }, - { "interrogate_element_scoped_name", &_inPU7VHgeUs, METH_VARARGS }, - { "interrogate_element_has_comment", &_inPU7VH5Gsy, METH_VARARGS }, - { "interrogate_element_comment", &_inPU7VHCSJJ, METH_VARARGS }, + { "interrogate_manifest_name", &_inPU7VHFnRZ, METH_VARARGS }, + { "interrogate_manifest_definition", &_inPU7VHg0Qv, METH_VARARGS }, + { "interrogate_manifest_has_type", &_inPU7VHtrqw, METH_VARARGS }, + { "interrogate_manifest_get_type", &_inPU7VHdmpW, METH_VARARGS }, + { "interrogate_manifest_has_getter", &_inPU7VHUYgQ, METH_VARARGS }, + { "interrogate_manifest_getter", &_inPU7VH0k7F, METH_VARARGS }, + { "interrogate_manifest_has_int_value", &_inPU7VHfIsr, METH_VARARGS }, + { "interrogate_manifest_get_int_value", &_inPU7VHvysR, METH_VARARGS }, + { "interrogate_element_name", &_inPU7VHYQ_2, METH_VARARGS }, + { "interrogate_element_scoped_name", &_inPU7VH3kdv, METH_VARARGS }, + { "interrogate_element_has_comment", &_inPU7VHew01, METH_VARARGS }, + { "interrogate_element_comment", &_inPU7VHQna7, METH_VARARGS }, { "interrogate_get_element_by_name", &_inPU7VHkg95, METH_VARARGS }, { "interrogate_get_element_by_scoped_name", &_inPU7VHluRc, METH_VARARGS }, - { "interrogate_element_type", &_inPU7VHwtTf, METH_VARARGS }, - { "interrogate_element_has_getter", &_inPU7VHrfao, METH_VARARGS }, - { "interrogate_element_getter", &_inPU7VHcedk, METH_VARARGS }, - { "interrogate_element_has_setter", &_inPU7VHXmoo, METH_VARARGS }, - { "interrogate_element_setter", &_inPU7VHclIo, METH_VARARGS }, + { "interrogate_element_type", &_inPU7VHtHdM, METH_VARARGS }, + { "interrogate_element_has_getter", &_inPU7VHDId0, METH_VARARGS }, + { "interrogate_element_getter", &_inPU7VHHuAm, METH_VARARGS }, + { "interrogate_element_has_setter", &_inPU7VH_xr0, METH_VARARGS }, + { "interrogate_element_setter", &_inPU7VHH5qp, METH_VARARGS }, { "interrogate_number_of_globals", &_inPU7VHU2_B, METH_VARARGS }, { "interrogate_get_global", &_inPU7VHHFO2, METH_VARARGS }, { "interrogate_number_of_global_functions", &_inPU7VHcfjm, METH_VARARGS }, { "interrogate_get_global_function", &_inPU7VH3Sjw, METH_VARARGS }, { "interrogate_number_of_functions", &_inPU7VHgJcX, METH_VARARGS }, { "interrogate_get_function", &_inPU7VHYlw6, METH_VARARGS }, - { "interrogate_function_name", &_inPU7VH3gns, METH_VARARGS }, - { "interrogate_function_scoped_name", &_inPU7VHN968, METH_VARARGS }, - { "interrogate_function_has_comment", &_inPU7VHFJVJ, METH_VARARGS }, - { "interrogate_function_comment", &_inPU7VHndTW, METH_VARARGS }, - { "interrogate_function_prototype", &_inPU7VHpjWj, METH_VARARGS }, - { "interrogate_function_is_method", &_inPU7VHNcQW, METH_VARARGS }, - { "interrogate_function_class", &_inPU7VHP_SX, METH_VARARGS }, - { "interrogate_function_has_module_name", &_inPU7VH1iRq, METH_VARARGS }, - { "interrogate_function_module_name", &_inPU7VHEmel, METH_VARARGS }, - { "interrogate_function_has_library_name", &_inPU7VH20Vx, METH_VARARGS }, - { "interrogate_function_library_name", &_inPU7VHKcdW, METH_VARARGS }, - { "interrogate_function_is_virtual", &_inPU7VHhUs9, METH_VARARGS }, - { "interrogate_function_number_of_c_wrappers", &_inPU7VHhF25, METH_VARARGS }, - { "interrogate_function_c_wrapper", &_inPU7VHu1qB, METH_VARARGS }, - { "interrogate_function_number_of_python_wrappers", &_inPU7VHKMkY, METH_VARARGS }, - { "interrogate_function_python_wrapper", &_inPU7VHRx9W, METH_VARARGS }, - { "interrogate_wrapper_name", &_inPU7VH0C9G, METH_VARARGS }, - { "interrogate_wrapper_is_callable_by_name", &_inPU7VHhaPp, METH_VARARGS }, - { "interrogate_wrapper_has_comment", &_inPU7VHt_1v, METH_VARARGS }, - { "interrogate_wrapper_comment", &_inPU7VH8KQG, METH_VARARGS }, - { "interrogate_wrapper_has_return_value", &_inPU7VHEtIl, METH_VARARGS }, - { "interrogate_wrapper_return_type", &_inPU7VHRFmo, METH_VARARGS }, - { "interrogate_wrapper_caller_manages_return_value", &_inPU7VHWHA0, METH_VARARGS }, - { "interrogate_wrapper_return_value_destructor", &_inPU7VHcyIl, METH_VARARGS }, - { "interrogate_wrapper_number_of_parameters", &_inPU7VHBnBv, METH_VARARGS }, - { "interrogate_wrapper_parameter_type", &_inPU7VHUvW7, METH_VARARGS }, - { "interrogate_wrapper_parameter_has_name", &_inPU7VHPdXf, METH_VARARGS }, - { "interrogate_wrapper_parameter_name", &_inPU7VHd0dl, METH_VARARGS }, - { "interrogate_wrapper_parameter_is_this", &_inPU7VHdVbH, METH_VARARGS }, - { "interrogate_wrapper_has_pointer", &_inPU7VHBwF0, METH_VARARGS }, - { "interrogate_wrapper_pointer", &_inPU7VH9dPK, METH_VARARGS }, - { "interrogate_wrapper_unique_name", &_inPU7VHhUwR, METH_VARARGS }, + { "interrogate_function_name", &_inPU7VHsmnz, METH_VARARGS }, + { "interrogate_function_scoped_name", &_inPU7VHxQ10, METH_VARARGS }, + { "interrogate_function_has_comment", &_inPU7VH6gPB, METH_VARARGS }, + { "interrogate_function_comment", &_inPU7VHISgV, METH_VARARGS }, + { "interrogate_function_prototype", &_inPU7VHH3bx, METH_VARARGS }, + { "interrogate_function_is_method", &_inPU7VHzeUk, METH_VARARGS }, + { "interrogate_function_class", &_inPU7VHUeI5, METH_VARARGS }, + { "interrogate_function_has_module_name", &_inPU7VHuSvx, METH_VARARGS }, + { "interrogate_function_module_name", &_inPU7VHwpYd, METH_VARARGS }, + { "interrogate_function_has_library_name", &_inPU7VHOfNh, METH_VARARGS }, + { "interrogate_function_library_name", &_inPU7VHf5_U, METH_VARARGS }, + { "interrogate_function_is_virtual", &_inPU7VHL3ZB, METH_VARARGS }, + { "interrogate_function_number_of_c_wrappers", &_inPU7VHXw0I, METH_VARARGS }, + { "interrogate_function_c_wrapper", &_inPU7VH3zru, METH_VARARGS }, + { "interrogate_function_number_of_python_wrappers", &_inPU7VHRrg2, METH_VARARGS }, + { "interrogate_function_python_wrapper", &_inPU7VHEJCx, METH_VARARGS }, + { "interrogate_wrapper_name", &_inPU7VHWAZr, METH_VARARGS }, + { "interrogate_wrapper_is_callable_by_name", &_inPU7VHrD_M, METH_VARARGS }, + { "interrogate_wrapper_has_comment", &_inPU7VHjolz, METH_VARARGS }, + { "interrogate_wrapper_comment", &_inPU7VHt_JD, METH_VARARGS }, + { "interrogate_wrapper_has_return_value", &_inPU7VHwEts, METH_VARARGS }, + { "interrogate_wrapper_return_type", &_inPU7VHrJWs, METH_VARARGS }, + { "interrogate_wrapper_caller_manages_return_value", &_inPU7VHpmFD, METH_VARARGS }, + { "interrogate_wrapper_return_value_destructor", &_inPU7VHyYUX, METH_VARARGS }, + { "interrogate_wrapper_number_of_parameters", &_inPU7VH54dn, METH_VARARGS }, + { "interrogate_wrapper_parameter_type", &_inPU7VHGMpW, METH_VARARGS }, + { "interrogate_wrapper_parameter_has_name", &_inPU7VHNuBV, METH_VARARGS }, + { "interrogate_wrapper_parameter_name", &_inPU7VH9UwA, METH_VARARGS }, + { "interrogate_wrapper_parameter_is_this", &_inPU7VH3FDt, METH_VARARGS }, + { "interrogate_wrapper_has_pointer", &_inPU7VHf513, METH_VARARGS }, + { "interrogate_wrapper_pointer", &_inPU7VHsqGH, METH_VARARGS }, + { "interrogate_wrapper_unique_name", &_inPU7VH7shV, METH_VARARGS }, { "interrogate_get_wrapper_by_unique_name", &_inPU7VHA1eF, METH_VARARGS }, - { "interrogate_make_seq_class", &_inPU7VH8pBy, METH_VARARGS }, - { "interrogate_make_seq_seq_name", &_inPU7VH85oW, METH_VARARGS }, - { "interrogate_make_seq_num_name", &_inPU7VHYZz0, METH_VARARGS }, - { "interrogate_make_seq_element_name", &_inPU7VHzKCA, METH_VARARGS }, + { "interrogate_make_seq_class", &_inPU7VH9tTm, METH_VARARGS }, + { "interrogate_make_seq_seq_name", &_inPU7VH776V, METH_VARARGS }, + { "interrogate_make_seq_num_name", &_inPU7VHfaH0, METH_VARARGS }, + { "interrogate_make_seq_element_name", &_inPU7VHGB9D, METH_VARARGS }, { "interrogate_number_of_global_types", &_inPU7VHsxxs, METH_VARARGS }, { "interrogate_get_global_type", &_inPU7VHMT0z, METH_VARARGS }, { "interrogate_number_of_types", &_inPU7VHiW3v, METH_VARARGS }, @@ -2398,61 +2413,62 @@ static PyMethodDef python_simple_funcs[] = { { "interrogate_get_type_by_name", &_inPU7VHNHcs, METH_VARARGS }, { "interrogate_get_type_by_scoped_name", &_inPU7VHqHrb, METH_VARARGS }, { "interrogate_get_type_by_true_name", &_inPU7VHaOqq, METH_VARARGS }, - { "interrogate_type_name", &_inPU7VHvue5, METH_VARARGS }, - { "interrogate_type_scoped_name", &_inPU7VHB_n_, METH_VARARGS }, - { "interrogate_type_true_name", &_inPU7VHDFET, METH_VARARGS }, - { "interrogate_type_is_nested", &_inPU7VHUyNE, METH_VARARGS }, - { "interrogate_type_outer_class", &_inPU7VHpDlm, METH_VARARGS }, - { "interrogate_type_has_comment", &_inPU7VHAscF, METH_VARARGS }, - { "interrogate_type_comment", &_inPU7VHYjbU, METH_VARARGS }, - { "interrogate_type_has_module_name", &_inPU7VHWmpU, METH_VARARGS }, - { "interrogate_type_module_name", &_inPU7VHnegH, METH_VARARGS }, - { "interrogate_type_has_library_name", &_inPU7VHrrnF, METH_VARARGS }, - { "interrogate_type_library_name", &_inPU7VH7ShX, METH_VARARGS }, - { "interrogate_type_is_atomic", &_inPU7VHx_aO, METH_VARARGS }, - { "interrogate_type_atomic_token", &_inPU7VHpofZ, METH_VARARGS }, - { "interrogate_type_is_unsigned", &_inPU7VH2J9C, METH_VARARGS }, - { "interrogate_type_is_signed", &_inPU7VHA6iz, METH_VARARGS }, - { "interrogate_type_is_long", &_inPU7VHa78E, METH_VARARGS }, - { "interrogate_type_is_longlong", &_inPU7VHWD3W, METH_VARARGS }, - { "interrogate_type_is_short", &_inPU7VHYuud, METH_VARARGS }, - { "interrogate_type_is_wrapped", &_inPU7VHlmJS, METH_VARARGS }, - { "interrogate_type_is_pointer", &_inPU7VHLlrr, METH_VARARGS }, - { "interrogate_type_is_const", &_inPU7VHw_wy, METH_VARARGS }, - { "interrogate_type_wrapped_type", &_inPU7VHgk_l, METH_VARARGS }, - { "interrogate_type_is_enum", &_inPU7VHXpHY, METH_VARARGS }, - { "interrogate_type_number_of_enum_values", &_inPU7VHHhIg, METH_VARARGS }, - { "interrogate_type_enum_value_name", &_inPU7VHff0T, METH_VARARGS }, - { "interrogate_type_enum_value_scoped_name", &_inPU7VH5PPX, METH_VARARGS }, - { "interrogate_type_enum_value_comment", &_inPU7VHCIt5, METH_VARARGS }, - { "interrogate_type_enum_value", &_inPU7VHPww5, METH_VARARGS }, - { "interrogate_type_is_struct", &_inPU7VHPke3, METH_VARARGS }, - { "interrogate_type_is_class", &_inPU7VHJmw3, METH_VARARGS }, - { "interrogate_type_is_union", &_inPU7VHR0Lc, METH_VARARGS }, - { "interrogate_type_is_fully_defined", &_inPU7VHc6gE, METH_VARARGS }, - { "interrogate_type_is_unpublished", &_inPU7VH1iT0, METH_VARARGS }, - { "interrogate_type_number_of_constructors", &_inPU7VHz1Mn, METH_VARARGS }, - { "interrogate_type_get_constructor", &_inPU7VHWlf2, METH_VARARGS }, - { "interrogate_type_has_destructor", &_inPU7VH1q8q, METH_VARARGS }, - { "interrogate_type_destructor_is_inherited", &_inPU7VHobo6, METH_VARARGS }, - { "interrogate_type_get_destructor", &_inPU7VHjevK, METH_VARARGS }, - { "interrogate_type_number_of_elements", &_inPU7VHeBpM, METH_VARARGS }, - { "interrogate_type_get_element", &_inPU7VHfmeN, METH_VARARGS }, - { "interrogate_type_number_of_methods", &_inPU7VHKBCl, METH_VARARGS }, - { "interrogate_type_get_method", &_inPU7VH936K, METH_VARARGS }, - { "interrogate_type_number_of_make_seqs", &_inPU7VHPPXQ, METH_VARARGS }, - { "interrogate_type_get_make_seq", &_inPU7VHnu86, METH_VARARGS }, - { "interrogate_type_number_of_casts", &_inPU7VHngiq, METH_VARARGS }, - { "interrogate_type_get_cast", &_inPU7VHUXR0, METH_VARARGS }, - { "interrogate_type_number_of_derivations", &_inPU7VHDO7D, METH_VARARGS }, - { "interrogate_type_get_derivation", &_inPU7VHhZFz, METH_VARARGS }, - { "interrogate_type_derivation_has_upcast", &_inPU7VHnKPe, METH_VARARGS }, - { "interrogate_type_get_upcast", &_inPU7VHP3lS, METH_VARARGS }, - { "interrogate_type_derivation_downcast_is_impossible", &_inPU7VHUlLp, METH_VARARGS }, - { "interrogate_type_derivation_has_downcast", &_inPU7VH9Xei, METH_VARARGS }, - { "interrogate_type_get_downcast", &_inPU7VHaGkE, METH_VARARGS }, - { "interrogate_type_number_of_nested_types", &_inPU7VHoe_l, METH_VARARGS }, - { "interrogate_type_get_nested_type", &_inPU7VHuEdH, METH_VARARGS }, + { "interrogate_type_name", &_inPU7VHqWOw, METH_VARARGS }, + { "interrogate_type_scoped_name", &_inPU7VHHu7x, METH_VARARGS }, + { "interrogate_type_true_name", &_inPU7VHwGnA, METH_VARARGS }, + { "interrogate_type_is_nested", &_inPU7VHXGxx, METH_VARARGS }, + { "interrogate_type_outer_class", &_inPU7VHj04Z, METH_VARARGS }, + { "interrogate_type_has_comment", &_inPU7VHEOv4, METH_VARARGS }, + { "interrogate_type_comment", &_inPU7VHpCqJ, METH_VARARGS }, + { "interrogate_type_has_module_name", &_inPU7VH_Pz3, METH_VARARGS }, + { "interrogate_type_module_name", &_inPU7VHt_06, METH_VARARGS }, + { "interrogate_type_has_library_name", &_inPU7VHmuPs, METH_VARARGS }, + { "interrogate_type_library_name", &_inPU7VHvM8B, METH_VARARGS }, + { "interrogate_type_is_atomic", &_inPU7VHap97, METH_VARARGS }, + { "interrogate_type_atomic_token", &_inPU7VH0o8D, METH_VARARGS }, + { "interrogate_type_is_unsigned", &_inPU7VHOoQ2, METH_VARARGS }, + { "interrogate_type_is_signed", &_inPU7VHKuFh, METH_VARARGS }, + { "interrogate_type_is_long", &_inPU7VHo5L6, METH_VARARGS }, + { "interrogate_type_is_longlong", &_inPU7VHzgKK, METH_VARARGS }, + { "interrogate_type_is_short", &_inPU7VH0FIF, METH_VARARGS }, + { "interrogate_type_is_wrapped", &_inPU7VHZqvD, METH_VARARGS }, + { "interrogate_type_is_pointer", &_inPU7VHDyRd, METH_VARARGS }, + { "interrogate_type_is_const", &_inPU7VHMnKa, METH_VARARGS }, + { "interrogate_type_is_typedef", &_inPU7VHRtji, METH_VARARGS }, + { "interrogate_type_wrapped_type", &_inPU7VHCnbQ, METH_VARARGS }, + { "interrogate_type_is_enum", &_inPU7VHdUVN, METH_VARARGS }, + { "interrogate_type_number_of_enum_values", &_inPU7VHihbt, METH_VARARGS }, + { "interrogate_type_enum_value_name", &_inPU7VHbyPY, METH_VARARGS }, + { "interrogate_type_enum_value_scoped_name", &_inPU7VHAaT6, METH_VARARGS }, + { "interrogate_type_enum_value_comment", &_inPU7VHgL9q, METH_VARARGS }, + { "interrogate_type_enum_value", &_inPU7VHWB97, METH_VARARGS }, + { "interrogate_type_is_struct", &_inPU7VHDUAl, METH_VARARGS }, + { "interrogate_type_is_class", &_inPU7VH1_Kf, METH_VARARGS }, + { "interrogate_type_is_union", &_inPU7VH98lD, METH_VARARGS }, + { "interrogate_type_is_fully_defined", &_inPU7VH9SHr, METH_VARARGS }, + { "interrogate_type_is_unpublished", &_inPU7VHdiZP, METH_VARARGS }, + { "interrogate_type_number_of_constructors", &_inPU7VHTdER, METH_VARARGS }, + { "interrogate_type_get_constructor", &_inPU7VHYO56, METH_VARARGS }, + { "interrogate_type_has_destructor", &_inPU7VHxtCG, METH_VARARGS }, + { "interrogate_type_destructor_is_inherited", &_inPU7VH_EB2, METH_VARARGS }, + { "interrogate_type_get_destructor", &_inPU7VHEG1l, METH_VARARGS }, + { "interrogate_type_number_of_elements", &_inPU7VH7tUq, METH_VARARGS }, + { "interrogate_type_get_element", &_inPU7VHyStU, METH_VARARGS }, + { "interrogate_type_number_of_methods", &_inPU7VHdM85, METH_VARARGS }, + { "interrogate_type_get_method", &_inPU7VHk_GN, METH_VARARGS }, + { "interrogate_type_number_of_make_seqs", &_inPU7VH8QjG, METH_VARARGS }, + { "interrogate_type_get_make_seq", &_inPU7VHyMtj, METH_VARARGS }, + { "interrogate_type_number_of_casts", &_inPU7VHHDtN, METH_VARARGS }, + { "interrogate_type_get_cast", &_inPU7VHHFjA, METH_VARARGS }, + { "interrogate_type_number_of_derivations", &_inPU7VH_NPR, METH_VARARGS }, + { "interrogate_type_get_derivation", &_inPU7VHcTOH, METH_VARARGS }, + { "interrogate_type_derivation_has_upcast", &_inPU7VHhdU7, METH_VARARGS }, + { "interrogate_type_get_upcast", &_inPU7VHQPxU, METH_VARARGS }, + { "interrogate_type_derivation_downcast_is_impossible", &_inPU7VHO7Pz, METH_VARARGS }, + { "interrogate_type_derivation_has_downcast", &_inPU7VHvu_E, METH_VARARGS }, + { "interrogate_type_get_downcast", &_inPU7VHxGUt, METH_VARARGS }, + { "interrogate_type_number_of_nested_types", &_inPU7VHzM1P, METH_VARARGS }, + { "interrogate_type_get_nested_type", &_inPU7VHoY5L, METH_VARARGS }, { NULL, NULL } }; From 2ff9083812aa20f667a03b1917670fc7ceda9533 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 16 Apr 2015 16:55:29 +0200 Subject: [PATCH 2/5] Add support for buffer textures --- panda/src/display/graphicsStateGuardian.I | 26 +++ panda/src/display/graphicsStateGuardian.cxx | 2 + panda/src/display/graphicsStateGuardian.h | 4 + .../glstuff/glGraphicsStateGuardian_src.cxx | 155 +++++++++++++++--- .../src/glstuff/glGraphicsStateGuardian_src.h | 4 + panda/src/glstuff/glShaderContext_src.cxx | 26 ++- panda/src/glstuff/glTextureContext_src.I | 1 + panda/src/glstuff/glTextureContext_src.cxx | 10 ++ panda/src/glstuff/glTextureContext_src.h | 3 + panda/src/gobj/texture.I | 32 ++++ panda/src/gobj/texture.cxx | 31 +++- panda/src/gobj/texture.h | 6 + 12 files changed, 274 insertions(+), 26 deletions(-) diff --git a/panda/src/display/graphicsStateGuardian.I b/panda/src/display/graphicsStateGuardian.I index a4cea5ffc3..9cfa0e3fed 100644 --- a/panda/src/display/graphicsStateGuardian.I +++ b/panda/src/display/graphicsStateGuardian.I @@ -397,6 +397,22 @@ get_max_cube_map_dimension() const { return _max_cube_map_dimension; } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_max_buffer_texture_size +// Access: Published +// Description: Returns the largest possible buffer texture size, +// or -1 if there is no particular limit. Returns 0 +// if cube map textures are not supported. +// +// The value returned may not be meaningful until after +// the graphics context has been fully created (e.g. the +// window has been opened). +//////////////////////////////////////////////////////////////////// +INLINE int GraphicsStateGuardian:: +get_max_buffer_texture_size() const { + return _max_buffer_texture_size; +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_supports_texture_combine // Access: Published @@ -469,6 +485,16 @@ get_supports_cube_map() const { return _supports_cube_map; } +//////////////////////////////////////////////////////////////////// +// Function: GraphicsStateGuardian::get_supports_buffer_texture +// Access: Published +// Description: Returns true if this GSG can render buffer textures. +//////////////////////////////////////////////////////////////////// +INLINE bool GraphicsStateGuardian:: +get_supports_buffer_texture() const { + return _supports_buffer_texture; +} + //////////////////////////////////////////////////////////////////// // Function: GraphicsStateGuardian::get_supports_tex_non_pow2 // Access: Published diff --git a/panda/src/display/graphicsStateGuardian.cxx b/panda/src/display/graphicsStateGuardian.cxx index 1263339604..41cc8315ea 100644 --- a/panda/src/display/graphicsStateGuardian.cxx +++ b/panda/src/display/graphicsStateGuardian.cxx @@ -185,6 +185,7 @@ GraphicsStateGuardian(CoordinateSystem internal_coordinate_system, _max_3d_texture_dimension = 0; _max_2d_texture_array_layers = 0; _max_cube_map_dimension = 0; + _max_buffer_texture_size = 0; // Assume we don't support these fairly advanced texture combiner // modes. @@ -195,6 +196,7 @@ GraphicsStateGuardian(CoordinateSystem internal_coordinate_system, _supports_3d_texture = false; _supports_2d_texture_array = false; _supports_cube_map = false; + _supports_buffer_texture = false; _supports_tex_non_pow2 = false; _supports_texture_srgb = false; _supports_compressed_texture = false; diff --git a/panda/src/display/graphicsStateGuardian.h b/panda/src/display/graphicsStateGuardian.h index b546a61945..7e9d8b6f47 100644 --- a/panda/src/display/graphicsStateGuardian.h +++ b/panda/src/display/graphicsStateGuardian.h @@ -121,6 +121,7 @@ PUBLISHED: INLINE int get_max_3d_texture_dimension() const; INLINE int get_max_2d_texture_array_layers() const; //z axis INLINE int get_max_cube_map_dimension() const; + INLINE int get_max_buffer_texture_size() const; INLINE bool get_supports_texture_combine() const; INLINE bool get_supports_texture_saved_result() const; @@ -129,6 +130,7 @@ PUBLISHED: INLINE bool get_supports_3d_texture() const; INLINE bool get_supports_2d_texture_array() const; INLINE bool get_supports_cube_map() const; + INLINE bool get_supports_buffer_texture() const; INLINE bool get_supports_tex_non_pow2() const; INLINE bool get_supports_texture_srgb() const; @@ -476,6 +478,7 @@ protected: int _max_3d_texture_dimension; int _max_2d_texture_array_layers; //on the z axis int _max_cube_map_dimension; + int _max_buffer_texture_size; bool _supports_texture_combine; bool _supports_texture_saved_result; @@ -484,6 +487,7 @@ protected: bool _supports_3d_texture; bool _supports_2d_texture_array; bool _supports_cube_map; + bool _supports_buffer_texture; bool _supports_tex_non_pow2; bool _supports_texture_srgb; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 637bfb63e9..8efef7fd09 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -854,6 +854,17 @@ reset() { } #endif +#ifndef OPENGLES + if (is_at_least_gl_version(3, 0)) { + _glTexBuffer = (PFNGLTEXBUFFERPROC)get_extension_func("glTexBuffer"); + _supports_buffer_texture = true; + + } else if (has_extension("GL_ARB_texture_buffer_object")) { + _glTexBuffer = (PFNGLTEXBUFFERPROC)get_extension_func("glTexBufferARB"); + _supports_buffer_texture = true; + } +#endif + _supports_texture_srgb = false; if (is_at_least_gl_version(2, 1) || has_extension("GL_EXT_texture_sRGB")) { _supports_texture_srgb = true; @@ -1941,6 +1952,7 @@ reset() { GLint max_3d_texture_size = 0; GLint max_2d_texture_array_layers = 0; GLint max_cube_map_size = 0; + GLint max_buffer_texture_size = 0; glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_texture_size); _max_texture_dimension = max_texture_size; @@ -1966,6 +1978,15 @@ reset() { _max_cube_map_dimension = 0; } +#ifndef OPENGLES + if (_supports_buffer_texture) { + glGetIntegerv(GL_MAX_TEXTURE_BUFFER_SIZE, &max_buffer_texture_size); + _max_buffer_texture_size = max_buffer_texture_size; + } else { + _max_buffer_texture_size = 0; + } +#endif // !OPENGLES + GLint max_elements_vertices = 0, max_elements_indices = 0; #ifndef OPENGLES glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, &max_elements_vertices); @@ -4510,6 +4531,15 @@ prepare_texture(Texture *tex, int view) { << "Cube map textures are not supported by this OpenGL driver.\n"; return NULL; } + break; + + case Texture::TT_buffer_texture: + if (!_supports_buffer_texture) { + GLCAT.warning() + << "Buffer textures are not supported by this OpenGL driver.\n"; + return NULL; + } + break; default: break; @@ -7362,27 +7392,35 @@ get_texture_target(Texture::TextureType texture_type) const { return GL_TEXTURE_2D; case Texture::TT_3d_texture: - if (_supports_3d_texture) { #ifndef OPENGLES_1 + if (_supports_3d_texture) { return GL_TEXTURE_3D; -#endif - } else { - return GL_NONE; } +#endif + return GL_NONE; + case Texture::TT_2d_texture_array: - if (_supports_2d_texture_array) { #ifndef OPENGLES + if (_supports_2d_texture_array) { return GL_TEXTURE_2D_ARRAY_EXT; -#endif - } else { - return GL_NONE; } +#endif + return GL_NONE; + case Texture::TT_cube_map: if (_supports_cube_map) { return GL_TEXTURE_CUBE_MAP; } else { return GL_NONE; } + + case Texture::TT_buffer_texture: +#ifndef OPENGLES + if (_supports_buffer_texture) { + return GL_TEXTURE_BUFFER; + } +#endif + return GL_NONE; } GLCAT.error() << "Invalid Texture::TextureType value!\n"; @@ -10252,6 +10290,12 @@ specify_texture(CLP(TextureContext) *gtc, const SamplerState &sampler) { // Unsupported target (e.g. 3-d texturing on GL 1.1). return false; } +#ifndef OPENGLES + if (target == GL_TEXTURE_BUFFER) { + // Buffer textures may not receive texture parameters. + return false; + } +#endif // OPENGLES // Record the active sampler settings. gtc->_active_sampler = sampler; @@ -10505,7 +10549,8 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { // If we'll use immutable texture storage, we have to pick a sized // image format. - bool force_sized = (gl_immutable_texture_storage && _supports_tex_storage); + bool force_sized = (gl_immutable_texture_storage && _supports_tex_storage) || + (tex->get_texture_type() == Texture::TT_buffer_texture); GLint internal_format = get_internal_image_format(tex, force_sized); GLint external_format = get_external_image_format(tex); @@ -10553,6 +10598,12 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { max_dimension_z = _max_2d_texture_array_layers; break; + case Texture::TT_buffer_texture: + max_dimension_x = _max_buffer_texture_size; + max_dimension_y = 1; + max_dimension_z = 1; + break; + default: max_dimension_x = _max_texture_dimension; max_dimension_y = _max_texture_dimension; @@ -10631,6 +10682,13 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { GLenum target = get_texture_target(tex->get_texture_type()); uses_mipmaps = (uses_mipmaps && !gl_ignore_mipmaps) || gl_force_mipmaps; +#ifndef OPENGLES + if (target == GL_TEXTURE_BUFFER) { + // Buffer textures may not have mipmaps. + uses_mipmaps = false; + } +#endif // OPENGLES + bool needs_reload = false; if (!gtc->_has_storage || gtc->_uses_mipmaps != uses_mipmaps || @@ -10640,6 +10698,12 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { gtc->_depth != depth) { // We need to reload a new GL Texture object. needs_reload = true; + + if (_use_object_labels) { + // This seems like a good time to assign a label for the debug messages. + const string &name = tex->get_name(); + _glObjectLabel(GL_TEXTURE, gtc->_index, name.size(), name.data()); + } } if (needs_reload && gtc->_immutable) { @@ -10648,13 +10712,26 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { glBindTexture(target, gtc->_index); } - if (needs_reload) { - if (_use_object_labels) { - // This seems like a good time to assign a label for the debug messages. - const string &name = tex->get_name(); - _glObjectLabel(GL_TEXTURE, gtc->_index, name.size(), name.data()); - } +#ifndef OPENGLES + if (target == GL_TEXTURE_BUFFER) { + // Buffer textures don't support mipmappping. + gtc->_generate_mipmaps = false; + if (gtc->_buffer == 0) { + // The buffer object wasn't created yet. + _glGenBuffers(1, >c->_buffer); + _glBindBuffer(GL_TEXTURE_BUFFER, gtc->_buffer); + _glTexBuffer(GL_TEXTURE_BUFFER, internal_format, gtc->_buffer); + needs_reload = true; + } else { + _glBindBuffer(GL_TEXTURE_BUFFER, gtc->_buffer); + if (gtc->_internal_format != internal_format) { + _glTexBuffer(GL_TEXTURE_BUFFER, internal_format, gtc->_buffer); + } + } + } else +#endif // !OPENGLES + if (needs_reload) { // Figure out whether mipmaps will be generated by the GPU or by // Panda (or not at all), and how many mipmap levels should be created. gtc->_generate_mipmaps = false; @@ -10736,6 +10813,8 @@ upload_texture(CLP(TextureContext) *gtc, bool force, bool uses_mipmaps) { } switch (tex->get_texture_type()) { + case Texture::TT_buffer_texture: + // Won't get here, but squelch compiler warning case Texture::TT_1d_texture: _glTexStorage1D(target, num_levels, internal_format, width); break; @@ -11095,6 +11174,17 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, break; #endif // OPENGLES +#ifndef OPENGLES + case GL_TEXTURE_BUFFER: + if (_supports_buffer_texture) { + _glBufferSubData(GL_TEXTURE_BUFFER, 0, width, image_ptr); + } else { + report_my_gl_errors(); + return false; + } + break; +#endif // OPENGLES + default: if (image_compression == Texture::CM_off) { if (n==0) { @@ -11248,6 +11338,7 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, } break; #endif + #ifndef OPENGLES case GL_TEXTURE_2D_ARRAY_EXT: if (_supports_2d_texture_array) { @@ -11265,7 +11356,19 @@ upload_texture_image(CLP(TextureContext) *gtc, bool needs_reload, return false; } break; -#endif +#endif // OPENGLES + +#ifndef OPENGLES + case GL_TEXTURE_BUFFER: + if (_supports_buffer_texture) { + _glBufferData(GL_TEXTURE_BUFFER, width, image_ptr, + get_usage(tex->get_usage_hint())); + } else { + report_my_gl_errors(); + return false; + } + break; +#endif // OPENGLES default: if (image_compression == Texture::CM_off) { @@ -11396,6 +11499,12 @@ get_texture_memory_size(Texture *tex) { // We need a particular page to get the level parameter from. page_target = GL_TEXTURE_CUBE_MAP_POSITIVE_X; scale = 6; + + } else if (target == GL_TEXTURE_BUFFER) { + // In the case of buffer textures, we provided the size to begin with, + // so no point in querying anything. Plus, glGetTexParameter is not even + // supported for buffer textures. + return tex->get_expected_ram_image_size(); } GLint minfilter; @@ -11431,20 +11540,20 @@ get_texture_memory_size(Texture *tex) { luminance_size, intensity_size; GLint depth_size = 0; glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_RED_SIZE, &red_size); + GL_TEXTURE_RED_SIZE, &red_size); glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_GREEN_SIZE, &green_size); + GL_TEXTURE_GREEN_SIZE, &green_size); glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_BLUE_SIZE, &blue_size); + GL_TEXTURE_BLUE_SIZE, &blue_size); glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_ALPHA_SIZE, &alpha_size); + GL_TEXTURE_ALPHA_SIZE, &alpha_size); glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_LUMINANCE_SIZE, &luminance_size); + GL_TEXTURE_LUMINANCE_SIZE, &luminance_size); glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_INTENSITY_SIZE, &intensity_size); + GL_TEXTURE_INTENSITY_SIZE, &intensity_size); if (_supports_depth_texture) { glGetTexLevelParameteriv(page_target, 0, - GL_TEXTURE_DEPTH_SIZE, &depth_size); + GL_TEXTURE_DEPTH_SIZE, &depth_size); } GLint width = 1, height = 1, depth = 1; diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.h b/panda/src/glstuff/glGraphicsStateGuardian_src.h index 3a7f5ddba7..cac7694f4e 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.h +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.h @@ -693,6 +693,10 @@ public: PFNGLTEXSTORAGE2DPROC _glTexStorage2D; PFNGLTEXSTORAGE3DPROC _glTexStorage3D; +#ifndef OPENGLES + PFNGLTEXBUFFERPROC _glTexBuffer; +#endif + bool _supports_clear_texture; #ifndef OPENGLES PFNGLCLEARTEXIMAGEPROC _glClearTexImage; diff --git a/panda/src/glstuff/glShaderContext_src.cxx b/panda/src/glstuff/glShaderContext_src.cxx index 3c031dc904..dc50428d00 100644 --- a/panda/src/glstuff/glShaderContext_src.cxx +++ b/panda/src/glstuff/glShaderContext_src.cxx @@ -602,16 +602,19 @@ CLP(ShaderContext)(CLP(GraphicsStateGuardian) *glgsg, Shader *s) : ShaderContext case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_CUBE: + case GL_INT_SAMPLER_BUFFER: case GL_UNSIGNED_INT_SAMPLER_1D: case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_CUBE: case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: + case GL_UNSIGNED_INT_SAMPLER_BUFFER: case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_1D: case GL_SAMPLER_CUBE_SHADOW: case GL_SAMPLER_2D_ARRAY: case GL_SAMPLER_2D_ARRAY_SHADOW: + case GL_SAMPLER_BUFFER: #endif // !OPENGLES case GL_SAMPLER_2D: case GL_SAMPLER_2D_SHADOW: @@ -620,7 +623,7 @@ CLP(ShaderContext)(CLP(GraphicsStateGuardian) *glgsg, Shader *s) : ShaderContext Shader::ShaderTexSpec bind; bind._id = arg_id; bind._name = InternalName::make(param_name); - bind._desired_type = Texture::TT_2d_texture_array; + bind._desired_type = Texture::TT_2d_texture; bind._stage = texunitno++; if (get_sampler_texture_type(bind._desired_type, param_type)) { _glgsg->_glUniform1i(p, s->_tex_spec.size()); @@ -761,16 +764,19 @@ CLP(ShaderContext)(CLP(GraphicsStateGuardian) *glgsg, Shader *s) : ShaderContext case GL_IMAGE_3D_EXT: case GL_IMAGE_CUBE_EXT: case GL_IMAGE_2D_ARRAY_EXT: + case GL_IMAGE_BUFFER_EXT: case GL_INT_IMAGE_1D_EXT: case GL_INT_IMAGE_2D_EXT: case GL_INT_IMAGE_3D_EXT: case GL_INT_IMAGE_CUBE_EXT: case GL_INT_IMAGE_2D_ARRAY_EXT: + case GL_INT_IMAGE_BUFFER_EXT: case GL_UNSIGNED_INT_IMAGE_1D_EXT: case GL_UNSIGNED_INT_IMAGE_2D_EXT: case GL_UNSIGNED_INT_IMAGE_3D_EXT: case GL_UNSIGNED_INT_IMAGE_CUBE_EXT: case GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT: + case GL_UNSIGNED_INT_IMAGE_BUFFER_EXT: // This won't really change at runtime, so we might as well // bind once and then forget about it. _glgsg->_glUniform1i(p, imgunitno++); @@ -1076,6 +1082,18 @@ get_sampler_texture_type(int &out, GLenum param_type) { << "GLSL shader uses 2D texture array, which is unsupported by the driver.\n"; return false; } + + case GL_INT_SAMPLER_BUFFER: + case GL_UNSIGNED_INT_SAMPLER_BUFFER: + case GL_SAMPLER_BUFFER: + out = Texture::TT_buffer_texture; + if (_glgsg->_supports_buffer_texture) { + return true; + } else { + GLCAT.error() + << "GLSL shader uses buffer texture, which is unsupported by the driver.\n"; + return false; + } #endif default: @@ -1509,6 +1527,12 @@ disable_shader_texture_bindings() { case Texture::TT_cube_map: glBindTexture(GL_TEXTURE_CUBE_MAP, 0); break; + + case Texture::TT_buffer_texture: +#ifndef OPENGLES + glBindTexture(GL_TEXTURE_BUFFER, 0); +#endif + break; } } diff --git a/panda/src/glstuff/glTextureContext_src.I b/panda/src/glstuff/glTextureContext_src.I index 687a2e1f3b..37aa40d50c 100644 --- a/panda/src/glstuff/glTextureContext_src.I +++ b/panda/src/glstuff/glTextureContext_src.I @@ -26,6 +26,7 @@ CLP(TextureContext)(CLP(GraphicsStateGuardian) *glgsg, _glgsg = glgsg; glGenTextures(1, &_index); + _buffer = 0; _handle = 0; _has_storage = false; diff --git a/panda/src/glstuff/glTextureContext_src.cxx b/panda/src/glstuff/glTextureContext_src.cxx index af6d8c7259..1383275832 100644 --- a/panda/src/glstuff/glTextureContext_src.cxx +++ b/panda/src/glstuff/glTextureContext_src.cxx @@ -34,6 +34,11 @@ CLP(TextureContext):: glDeleteTextures(1, &_index); _index = 0; + + if (_buffer != 0) { + _glgsg->_glDeleteBuffers(1, &_buffer); + _buffer = 0; + } } //////////////////////////////////////////////////////////////////// @@ -88,6 +93,11 @@ reset_data() { // Free the texture resources. glDeleteTextures(1, &_index); + if (_buffer != 0) { + _glgsg->_glDeleteBuffers(1, &_buffer); + _buffer = 0; + } + // We still need a valid index number, though, in case we want to // re-load the texture later. glGenTextures(1, &_index); diff --git a/panda/src/glstuff/glTextureContext_src.h b/panda/src/glstuff/glTextureContext_src.h index 14a0b68f6e..57fd2fc790 100644 --- a/panda/src/glstuff/glTextureContext_src.h +++ b/panda/src/glstuff/glTextureContext_src.h @@ -48,6 +48,9 @@ public: // This is the GL "name" of the texture object. GLuint _index; + // This is only used for buffer textures. + GLuint _buffer; + // This is the bindless "handle" to the texture object. GLuint64 _handle; bool _handle_resident; diff --git a/panda/src/gobj/texture.I b/panda/src/gobj/texture.I index e7db1364ce..4aeaf4b259 100644 --- a/panda/src/gobj/texture.I +++ b/panda/src/gobj/texture.I @@ -215,6 +215,26 @@ setup_cube_map(int size, ComponentType component_type, Format format) { setup_texture(TT_cube_map, size, size, 6, component_type, format); } +//////////////////////////////////////////////////////////////////// +// Function: Texture::setup_buffer_texture +// Access: Published +// Description: Sets the texture as an empty buffer texture with +// the specified size and properties. Follow up +// with set_ram_image() or modify_ram_image() to fill +// the image data, or use set_clear_color to let the +// texture be cleared to a solid color. +// +// Note that a buffer texture's format needs to match +// the component type. +//////////////////////////////////////////////////////////////////// +INLINE void Texture:: +setup_buffer_texture(int size, ComponentType component_type, Format format, + GeomEnums::UsageHint usage) { + setup_texture(TT_buffer_texture, size, 1, 1, component_type, format); + CDWriter cdata(_cycler); + cdata->_usage_hint = usage; +} + //////////////////////////////////////////////////////////////////// // Function: Texture::clear_image // Access: Published @@ -886,6 +906,18 @@ get_component_type() const { return cdata->_component_type; } +//////////////////////////////////////////////////////////////////// +// Function: Texture::get_usage_hint +// Access: Published +// Description: Returns the usage hint specified for buffer textures, +// or UH_unspecified for all other texture types. +//////////////////////////////////////////////////////////////////// +INLINE GeomEnums::UsageHint Texture:: +get_usage_hint() const { + CDReader cdata(_cycler); + return cdata->_usage_hint; +} + //////////////////////////////////////////////////////////////////// // Function: Texture::set_wrap_u // Access: Published diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index bf6b8f0422..13137221f0 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -1524,6 +1524,10 @@ write(ostream &out, int indent_level) const { case TT_cube_map: out << "cube map, " << cdata->_x_size << " x " << cdata->_y_size; break; + + case TT_buffer_texture: + out << "buffer, " << cdata->_x_size; + break; } if (cdata->_num_views > 1) { @@ -1924,6 +1928,8 @@ format_texture_type(TextureType tt) { return "2d_texture_array"; case TT_cube_map: return "cube_map"; + case TT_buffer_texture: + return "buffer_texture"; } return "**invalid**"; } @@ -1946,6 +1952,8 @@ string_texture_type(const string &str) { return TT_2d_texture_array; } else if (cmp_nocase(str, "cube_map") == 0) { return TT_cube_map; + } else if (cmp_nocase(str, "buffer_texture") == 0) { + return TT_buffer_texture; } gobj_cat->error() @@ -2673,6 +2681,7 @@ do_read(CData *cdata, const Filename &fullpath, const Filename &alpha_fullpath, switch (cdata->_texture_type) { case TT_1d_texture: case TT_2d_texture: + case TT_buffer_texture: z_size = 1; break; @@ -4854,7 +4863,8 @@ do_reconsider_image_properties(CData *cdata, int x_size, int y_size, int num_com } #ifndef NDEBUG - if (cdata->_texture_type == TT_1d_texture) { + if (cdata->_texture_type == TT_1d_texture || + cdata->_texture_type == TT_buffer_texture) { nassertr(y_size == 1, false); } else if (cdata->_texture_type == TT_cube_map) { nassertr(x_size == y_size, false); @@ -5051,6 +5061,10 @@ do_setup_texture(CData *cdata, Texture::TextureType texture_type, cdata->_default_sampler.set_wrap_v(SamplerState::WM_clamp); cdata->_default_sampler.set_wrap_w(SamplerState::WM_clamp); break; + + case TT_buffer_texture: + nassertv(y_size == 1 && z_size == 1); + break; } if (texture_type != TT_2d_texture) { @@ -5199,7 +5213,8 @@ do_set_x_size(CData *cdata, int x_size) { void Texture:: do_set_y_size(CData *cdata, int y_size) { if (cdata->_y_size != y_size) { - nassertv(cdata->_texture_type != Texture::TT_1d_texture || y_size == 1); + nassertv((cdata->_texture_type != Texture::TT_buffer_texture && + cdata->_texture_type != Texture::TT_1d_texture) || y_size == 1); cdata->_y_size = y_size; cdata->inc_image_modified(); do_clear_ram_image(cdata); @@ -7897,6 +7912,10 @@ do_write_datagram_body(CData *cdata, BamWriter *manager, Datagram &me) { me.add_uint8(cdata->_format); me.add_uint8(cdata->_num_components); + if (cdata->_texture_type == TT_buffer_texture) { + me.add_uint8(cdata->_usage_hint); + } + me.add_uint8(cdata->_auto_texture_scale); me.add_uint32(cdata->_orig_file_x_size); me.add_uint32(cdata->_orig_file_y_size); @@ -8063,6 +8082,7 @@ make_this_from_bam(const FactoryParams ¶ms) { options.set_auto_texture_scale(auto_texture_scale); switch (texture_type) { + case TT_buffer_texture: case TT_1d_texture: case TT_2d_texture: if (alpha_filename.empty()) { @@ -8124,6 +8144,10 @@ do_fillin_body(CData *cdata, DatagramIterator &scan, BamReader *manager) { cdata->_format = (Format)scan.get_uint8(); cdata->_num_components = scan.get_uint8(); + if (cdata->_texture_type == TT_buffer_texture) { + cdata->_usage_hint = (GeomEnums::UsageHint)scan.get_uint8(); + } + cdata->inc_properties_modified(); cdata->_auto_texture_scale = ATS_unspecified; @@ -8304,6 +8328,9 @@ CData() { // check in do_set_format depending on an uninitialized value. _format = F_rgba; + // Only used for buffer textures. + _usage_hint = GeomEnums::UH_unspecified; + _pad_x_size = 0; _pad_y_size = 0; _pad_z_size = 0; diff --git a/panda/src/gobj/texture.h b/panda/src/gobj/texture.h index 1320935860..f19b1ef8fa 100644 --- a/panda/src/gobj/texture.h +++ b/panda/src/gobj/texture.h @@ -42,6 +42,7 @@ #include "samplerState.h" #include "pnmImage.h" #include "colorSpace.h" +#include "geomEnums.h" class PNMImage; class PfmFile; @@ -82,6 +83,7 @@ PUBLISHED: TT_3d_texture, TT_2d_texture_array, TT_cube_map, + TT_buffer_texture, }; enum ComponentType { @@ -240,6 +242,8 @@ PUBLISHED: INLINE void setup_2d_texture_array(int z_size = 1); INLINE void setup_2d_texture_array(int x_size, int y_size, int z_size, ComponentType component_type, Format format); + INLINE void setup_buffer_texture(int size, ComponentType component_type, + Format format, GeomEnums::UsageHint usage); void generate_normalization_cube_map(int size); void generate_alpha_scale_map(); @@ -304,6 +308,7 @@ PUBLISHED: INLINE TextureType get_texture_type() const; INLINE Format get_format() const; INLINE ComponentType get_component_type() const; + INLINE GeomEnums::UsageHint get_usage_hint() const; INLINE void set_wrap_u(WrapMode wrap); INLINE void set_wrap_v(WrapMode wrap); @@ -829,6 +834,7 @@ protected: TextureType _texture_type; Format _format; ComponentType _component_type; + GeomEnums::UsageHint _usage_hint; bool _loaded_from_image; bool _loaded_from_txo; From 52288e299bb16cb94346ca762fa8d56eff4532a4 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 16 Apr 2015 16:57:46 +0200 Subject: [PATCH 3/5] Fix interrogate regression that broke multiview support --- dtool/src/interrogate/interfaceMakerPythonNative.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index a35f8c0fb4..ecd2460d7c 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -2636,7 +2636,7 @@ write_module_class(ostream &out, Object *obj) { write_function_slot(out, 2, slots, "bf_getsegcount"); write_function_slot(out, 2, slots, "bf_getcharbuffer"); out << "#endif\n"; - out << "#if PY_MAJOR_VERSION >= 0x02060000\n"; + out << "#if PY_VERSION_HEX >= 0x02060000\n"; write_function_slot(out, 2, slots, "bf_getbuffer"); write_function_slot(out, 2, slots, "bf_releasebuffer"); out << "#endif\n"; From 4f47b018ebf0870ac3ee660c4def4bc9abcccc34 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 16 Apr 2015 17:10:14 +0200 Subject: [PATCH 4/5] Some .bam cross-compatibility for buffer textures --- panda/src/gobj/texture.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index bf6b8f0422..279dcc41e2 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -8124,6 +8124,14 @@ do_fillin_body(CData *cdata, DatagramIterator &scan, BamReader *manager) { cdata->_format = (Format)scan.get_uint8(); cdata->_num_components = scan.get_uint8(); + if ((int)cdata->_texture_type == 5) { + // As a kind little gesture to the people who try to load a Panda 1.10 + // bam in Panda 1.9. + scan.get_uint8(); + gobj_cat.error() + << "Buffer textures are not supported in this version of Panda3D.\n"; + } + cdata->inc_properties_modified(); cdata->_auto_texture_scale = ATS_unspecified; From 9c313a172d280b981f194333952b208190730890 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 16 Apr 2015 20:26:55 +0200 Subject: [PATCH 5/5] Make writable: bullet convex hull, triangle mesh, debug node --- panda/src/bullet/bulletBodyNode.cxx | 39 ++++-- panda/src/bullet/bulletBodyNode.h | 1 + panda/src/bullet/bulletConvexHullShape.cxx | 104 +++++++++++++++- panda/src/bullet/bulletConvexHullShape.h | 10 +- panda/src/bullet/bulletDebugNode.cxx | 67 ++++++++++ panda/src/bullet/bulletDebugNode.h | 9 +- panda/src/bullet/bulletTriangleMesh.cxx | 122 +++++++++++++++++++ panda/src/bullet/bulletTriangleMesh.h | 17 ++- panda/src/bullet/bulletTriangleMeshShape.cxx | 117 +++++++++++++++++- panda/src/bullet/bulletTriangleMeshShape.h | 17 ++- panda/src/bullet/config_bullet.cxx | 4 + 11 files changed, 483 insertions(+), 24 deletions(-) diff --git a/panda/src/bullet/bulletBodyNode.cxx b/panda/src/bullet/bulletBodyNode.cxx index 24274f9ff5..c494afe00c 100644 --- a/panda/src/bullet/bulletBodyNode.cxx +++ b/panda/src/bullet/bulletBodyNode.cxx @@ -167,13 +167,16 @@ output(ostream &out) const { // Description: //////////////////////////////////////////////////////////////////// void BulletBodyNode:: -add_shape(BulletShape *shape, const TransformState *ts) { +add_shape(BulletShape *bullet_shape, const TransformState *ts) { nassertv(get_object()); nassertv(ts); - nassertv(!(shape->ptr()->getShapeType() == CONVEX_HULL_SHAPE_PROXYTYPE - && ((btConvexHullShape *)shape->ptr())->getNumVertices() == 0)); + btCollisionShape *shape = bullet_shape->ptr(); + nassertv(shape != NULL); + + nassertv(!(shape->getShapeType() == CONVEX_HULL_SHAPE_PROXYTYPE && + ((btConvexHullShape *)shape)->getNumVertices() == 0)); // Transform btTransform trans = TransformState_to_btTrans(ts); @@ -195,13 +198,13 @@ add_shape(BulletShape *shape, const TransformState *ts) { // After adding the shape we will have one shape, but with transform. // We need to wrap the shape within a compound shape, in oder to // be able to set the local transform. - next = shape->ptr(); + next = shape; } else { // After adding the shape we will have a total of one shape, without // local transform. We can set the shape directly. next = new btCompoundShape(); - ((btCompoundShape *)next)->addChildShape(trans, shape->ptr()); + ((btCompoundShape *)next)->addChildShape(trans, shape); } get_object()->setCollisionShape(next); @@ -216,7 +219,7 @@ add_shape(BulletShape *shape, const TransformState *ts) { // to the compound shape. next = previous; - ((btCompoundShape *)next)->addChildShape(trans, shape->ptr()); + ((btCompoundShape *)next)->addChildShape(trans, shape); } else { // We have one shape which is NOT a compound shape, and want to add @@ -225,7 +228,7 @@ add_shape(BulletShape *shape, const TransformState *ts) { btTransform previous_trans = btTransform::getIdentity(); ((btCompoundShape *)next)->addChildShape(previous_trans, previous); - ((btCompoundShape *)next)->addChildShape(trans, shape->ptr()); + ((btCompoundShape *)next)->addChildShape(trans, shape); get_object()->setCollisionShape(next); _shape = next; @@ -238,10 +241,10 @@ add_shape(BulletShape *shape, const TransformState *ts) { nassertv(previous->getShapeType() == COMPOUND_SHAPE_PROXYTYPE); next = previous; - ((btCompoundShape *)next)->addChildShape(trans, shape->ptr()); + ((btCompoundShape *)next)->addChildShape(trans, shape); } - _shapes.push_back(shape); + _shapes.push_back(bullet_shape); // Restore the local scaling again np.set_scale(scale); @@ -778,7 +781,7 @@ int BulletBodyNode:: complete_pointers(TypedWritable **p_list, BamReader *manager) { int pi = PandaNode::complete_pointers(p_list, manager); - BulletShape *shape = DCAST(BulletShape, p_list[pi++]); + PT(BulletShape) shape = DCAST(BulletShape, p_list[pi++]); while (shape != (BulletShape *)NULL) { const TransformState *trans = DCAST(TransformState, p_list[pi++]); @@ -790,6 +793,22 @@ complete_pointers(TypedWritable **p_list, BamReader *manager) { return pi; } +//////////////////////////////////////////////////////////////////// +// Function: BulletBodyNode::require_fully_complete +// Access: Public, Virtual +// Description: Some objects require all of their nested pointers to +// have been completed before the objects themselves can +// be completed. If this is the case, override this +// method to return true, and be careful with circular +// references (which would make the object unreadable +// from a bam file). +//////////////////////////////////////////////////////////////////// +bool BulletBodyNode:: +require_fully_complete() const { + // We require the shape pointers to be complete before we add them. + return true; +} + //////////////////////////////////////////////////////////////////// // Function: BulletBodyNode::fillin // Access: Protected diff --git a/panda/src/bullet/bulletBodyNode.h b/panda/src/bullet/bulletBodyNode.h index 8c50b67fae..a2c7fc2e67 100644 --- a/panda/src/bullet/bulletBodyNode.h +++ b/panda/src/bullet/bulletBodyNode.h @@ -148,6 +148,7 @@ public: virtual void write_datagram(BamWriter *manager, Datagram &dg); virtual int complete_pointers(TypedWritable **plist, BamReader *manager); + virtual bool require_fully_complete() const; protected: void fillin(DatagramIterator &scan, BamReader *manager); diff --git a/panda/src/bullet/bulletConvexHullShape.cxx b/panda/src/bullet/bulletConvexHullShape.cxx index 016c0b24f6..45ccc87b4e 100644 --- a/panda/src/bullet/bulletConvexHullShape.cxx +++ b/panda/src/bullet/bulletConvexHullShape.cxx @@ -66,10 +66,17 @@ add_array(const PTA_LVecBase3 &points) { _shape->setUserPointer(this); PTA_LVecBase3::const_iterator it; - for (it=points.begin(); it!=points.end(); it++) { - LVecBase3 v = *it; - _shape->addPoint(LVecBase3_to_btVector3(v)); + +#if BT_BULLET_VERSION >= 282 + for (it = points.begin(); it != points.end(); ++it) { + _shape->addPoint(LVecBase3_to_btVector3(*it), false); } + _shape->recalcLocalAabb(); +#else + for (it = points.begin(); it != points.end(); ++it) { + _shape->addPoint(LVecBase3_to_btVector3(*it)); + } +#endif } //////////////////////////////////////////////////////////////////// @@ -100,8 +107,97 @@ add_geom(const Geom *geom, const TransformState *ts) { _shape->setUserPointer(this); pvector::const_iterator it; - for (it=points.begin(); it!=points.end(); it++) { + +#if BT_BULLET_VERSION >= 282 + for (it = points.begin(); it != points.end(); ++it) { + LVecBase3 v = *it; + _shape->addPoint(LVecBase3_to_btVector3(*it), false); + } + _shape->recalcLocalAabb(); +#else + for (it = points.begin(); it != points.end(); ++it) { + LVecBase3 v = *it; _shape->addPoint(LVecBase3_to_btVector3(*it)); } +#endif +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletConvexHullShape::register_with_read_factory +// Access: Public, Static +// Description: Tells the BamReader how to create objects of type +// BulletShape. +//////////////////////////////////////////////////////////////////// +void BulletConvexHullShape:: +register_with_read_factory() { + BamReader::get_factory()->register_factory(get_class_type(), make_from_bam); +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletConvexHullShape::write_datagram +// Access: Public, Virtual +// Description: Writes the contents of this object to the datagram +// for shipping out to a Bam file. +//////////////////////////////////////////////////////////////////// +void BulletConvexHullShape:: +write_datagram(BamWriter *manager, Datagram &dg) { + dg.add_stdfloat(get_margin()); + + unsigned int num_points = _shape->getNumPoints(); + dg.add_uint32(num_points); + + const btVector3 *points = _shape->getUnscaledPoints(); + + for (unsigned int i = 0; i < num_points; ++i) { + LVecBase3 point = btVector3_to_LVecBase3(points[i]); + point.write_datagram(dg); + } } +//////////////////////////////////////////////////////////////////// +// Function: BulletConvexHullShape::make_from_bam +// Access: Protected, Static +// Description: This function is called by the BamReader's factory +// when a new object of type BulletShape is encountered +// in the Bam file. It should create the BulletShape +// and extract its information from the file. +//////////////////////////////////////////////////////////////////// +TypedWritable *BulletConvexHullShape:: +make_from_bam(const FactoryParams ¶ms) { + BulletConvexHullShape *param = new BulletConvexHullShape; + DatagramIterator scan; + BamReader *manager; + + parse_params(params, scan, manager); + param->fillin(scan, manager); + + return param; +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletConvexHullShape::fillin +// Access: Protected +// Description: This internal function is called by make_from_bam to +// read in all of the relevant data from the BamFile for +// the new BulletShape. +//////////////////////////////////////////////////////////////////// +void BulletConvexHullShape:: +fillin(DatagramIterator &scan, BamReader *manager) { + PN_stdfloat margin = scan.get_stdfloat(); + unsigned int num_points = scan.get_uint32(); + +#if BT_BULLET_VERSION >= 282 + for (unsigned int i = 0; i < num_points; ++i) { + LVecBase3 point; + point.read_datagram(scan); + _shape->addPoint(LVecBase3_to_btVector3(point), false); + } + _shape->recalcLocalAabb(); +#else + for (unsigned int i = 0; i < num_points; ++i) { + LVecBase3 point; + point.read_datagram(scan); + _shape->addPoint(LVecBase3_to_btVector3(point)); + } +#endif +} diff --git a/panda/src/bullet/bulletConvexHullShape.h b/panda/src/bullet/bulletConvexHullShape.h index a46a8c5cee..f51b33560f 100644 --- a/panda/src/bullet/bulletConvexHullShape.h +++ b/panda/src/bullet/bulletConvexHullShape.h @@ -29,7 +29,6 @@ // Description : //////////////////////////////////////////////////////////////////// class EXPCL_PANDABULLET BulletConvexHullShape : public BulletShape { - PUBLISHED: BulletConvexHullShape(); INLINE BulletConvexHullShape(const BulletConvexHullShape ©); @@ -47,7 +46,14 @@ public: private: btConvexHullShape *_shape; -//////////////////////////////////////////////////////////////////// +public: + static void register_with_read_factory(); + virtual void write_datagram(BamWriter *manager, Datagram &dg); + +protected: + static TypedWritable *make_from_bam(const FactoryParams ¶ms); + void fillin(DatagramIterator &scan, BamReader *manager); + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/bullet/bulletDebugNode.cxx b/panda/src/bullet/bulletDebugNode.cxx index cd23b77d8d..ce283267e9 100644 --- a/panda/src/bullet/bulletDebugNode.cxx +++ b/panda/src/bullet/bulletDebugNode.cxx @@ -463,3 +463,70 @@ drawSphere(btScalar radius, const btTransform &transform, const btVector3 &color drawArc(center, zoffs, xoffs, radius, radius, 0, SIMD_2_PI, color, false, 10.0); } +//////////////////////////////////////////////////////////////////// +// Function: BulletDebugNode::register_with_read_factory +// Access: Public, Static +// Description: Tells the BamReader how to create objects of type +// BulletDebugNode. +//////////////////////////////////////////////////////////////////// +void BulletDebugNode:: +register_with_read_factory() { + BamReader::get_factory()->register_factory(get_class_type(), make_from_bam); +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletDebugNode::write_datagram +// Access: Public, Virtual +// Description: Writes the contents of this object to the datagram +// for shipping out to a Bam file. +//////////////////////////////////////////////////////////////////// +void BulletDebugNode:: +write_datagram(BamWriter *manager, Datagram &dg) { + // Don't upcall to GeomNode since we're not interested in storing + // the actual debug Geoms in the .bam file. + PandaNode::write_datagram(manager, dg); + + dg.add_bool(_wireframe); + dg.add_bool(_constraints); + dg.add_bool(_bounds); + dg.add_bool(_drawer._normals); +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletDebugNode::make_from_bam +// Access: Protected, Static +// Description: This function is called by the BamReader's factory +// when a new object of this type is encountered +// in the Bam file. It should create the rigid body +// and extract its information from the file. +//////////////////////////////////////////////////////////////////// +TypedWritable *BulletDebugNode:: +make_from_bam(const FactoryParams ¶ms) { + BulletDebugNode *param = new BulletDebugNode; + DatagramIterator scan; + BamReader *manager; + + parse_params(params, scan, manager); + param->fillin(scan, manager); + + return param; +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletDebugNode::fillin +// Access: Protected +// Description: This internal function is called by make_from_bam to +// read in all of the relevant data from the BamFile for +// the new BulletDebugNode. +//////////////////////////////////////////////////////////////////// +void BulletDebugNode:: +fillin(DatagramIterator &scan, BamReader *manager) { + // Don't upcall to GeomNode since we're not interested in storing + // the actual debug Geoms in the .bam file. + PandaNode::fillin(scan, manager); + + _wireframe = scan.get_bool(); + _constraints = scan.get_bool(); + _bounds = scan.get_bool(); + _drawer._normals = scan.get_bool(); +} diff --git a/panda/src/bullet/bulletDebugNode.h b/panda/src/bullet/bulletDebugNode.h index 50f6fd7592..cae9628dbb 100644 --- a/panda/src/bullet/bulletDebugNode.h +++ b/panda/src/bullet/bulletDebugNode.h @@ -101,7 +101,14 @@ private: friend class BulletWorld; -//////////////////////////////////////////////////////////////////// +public: + static void register_with_read_factory(); + virtual void write_datagram(BamWriter *manager, Datagram &dg); + +protected: + static TypedWritable *make_from_bam(const FactoryParams ¶ms); + void fillin(DatagramIterator &scan, BamReader *manager); + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/bullet/bulletTriangleMesh.cxx b/panda/src/bullet/bulletTriangleMesh.cxx index 928c728677..343f0138af 100644 --- a/panda/src/bullet/bulletTriangleMesh.cxx +++ b/panda/src/bullet/bulletTriangleMesh.cxx @@ -213,3 +213,125 @@ write(ostream &out, int indent_level) const { } } +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMesh::register_with_read_factory +// Access: Public, Static +// Description: Tells the BamReader how to create objects of type +// BulletTriangleMesh. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMesh:: +register_with_read_factory() { + BamReader::get_factory()->register_factory(get_class_type(), make_from_bam); +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMesh::write_datagram +// Access: Public, Virtual +// Description: Writes the contents of this object to the datagram +// for shipping out to a Bam file. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMesh:: +write_datagram(BamWriter *manager, Datagram &dg) { + dg.add_stdfloat(get_welding_distance()); + + // In case we ever want to represent more than 1 indexed mesh. + dg.add_int32(1); + + btIndexedMesh &mesh = _mesh->getIndexedMeshArray()[0]; + dg.add_int32(mesh.m_numVertices); + dg.add_int32(mesh.m_numTriangles); + + // In case we want to use this to distinguish 16-bit vs 32-bit indices. + dg.add_bool(true); + + // Add the vertices. + const unsigned char *vptr = mesh.m_vertexBase; + nassertv(vptr != NULL || mesh.m_numVertices == 0); + + for (int i = 0; i < mesh.m_numVertices; ++i) { + const btVector3 &vertex = *((btVector3 *)vptr); + dg.add_stdfloat(vertex.getX()); + dg.add_stdfloat(vertex.getY()); + dg.add_stdfloat(vertex.getZ()); + vptr += mesh.m_vertexStride; + } + + // Now add the triangle indices. + const unsigned char *iptr = mesh.m_triangleIndexBase; + nassertv(iptr != NULL || mesh.m_numTriangles == 0); + + if (_mesh->getUse32bitIndices()) { + for (int i = 0; i < mesh.m_numTriangles; ++i) { + int *triangle = (int *)iptr; + dg.add_int32(triangle[0]); + dg.add_int32(triangle[1]); + dg.add_int32(triangle[2]); + iptr += mesh.m_triangleIndexStride; + } + } else { + for (int i = 0; i < mesh.m_numTriangles; ++i) { + short int *triangle = (short int *)iptr; + dg.add_int32(triangle[0]); + dg.add_int32(triangle[1]); + dg.add_int32(triangle[2]); + iptr += mesh.m_triangleIndexStride; + } + } +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMesh::make_from_bam +// Access: Protected, Static +// Description: This function is called by the BamReader's factory +// when a new object of type BulletShape is encountered +// in the Bam file. It should create the BulletShape +// and extract its information from the file. +//////////////////////////////////////////////////////////////////// +TypedWritable *BulletTriangleMesh:: +make_from_bam(const FactoryParams ¶ms) { + BulletTriangleMesh *param = new BulletTriangleMesh; + DatagramIterator scan; + BamReader *manager; + + parse_params(params, scan, manager); + param->fillin(scan, manager); + + return param; +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMesh::fillin +// Access: Protected +// Description: This internal function is called by make_from_bam to +// read in all of the relevant data from the BamFile for +// the new BulletTriangleMesh. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMesh:: +fillin(DatagramIterator &scan, BamReader *manager) { + set_welding_distance(scan.get_stdfloat()); + + nassertv(scan.get_int32() == 1); + int num_vertices = scan.get_int32(); + int num_triangles = scan.get_int32(); + nassertv(scan.get_bool() == true); + + // Read and add the vertices. + _mesh->preallocateVertices(num_vertices); + for (int i = 0; i < num_vertices; ++i) { + PN_stdfloat x = scan.get_stdfloat(); + PN_stdfloat y = scan.get_stdfloat(); + PN_stdfloat z = scan.get_stdfloat(); + _mesh->findOrAddVertex(btVector3(x, y, z), false); + } + + // Now read and add the indices. + int num_indices = num_triangles * 3; + _mesh->preallocateIndices(num_indices); + for (int i = 0; i < num_indices; ++i) { + _mesh->addIndex(scan.get_int32()); + } + + // Since we manually added the vertices individually, we have to + // update the triangle count appropriately. + _mesh->getIndexedMeshArray()[0].m_numTriangles = num_triangles; +} diff --git a/panda/src/bullet/bulletTriangleMesh.h b/panda/src/bullet/bulletTriangleMesh.h index 6e6caf7188..8b363a1c48 100644 --- a/panda/src/bullet/bulletTriangleMesh.h +++ b/panda/src/bullet/bulletTriangleMesh.h @@ -20,7 +20,7 @@ #include "bullet_includes.h" #include "bullet_utils.h" -#include "typedReferenceCount.h" +#include "typedWritableReferenceCount.h" #include "nodePath.h" #include "luse.h" #include "geom.h" @@ -31,7 +31,7 @@ // Class : BulletTriangleMesh // Description : //////////////////////////////////////////////////////////////////// -class EXPCL_PANDABULLET BulletTriangleMesh : public TypedReferenceCount { +class EXPCL_PANDABULLET BulletTriangleMesh : public TypedWritableReferenceCount { PUBLISHED: BulletTriangleMesh(); @@ -63,15 +63,22 @@ public: private: btTriangleMesh *_mesh; -//////////////////////////////////////////////////////////////////// +public: + static void register_with_read_factory(); + virtual void write_datagram(BamWriter *manager, Datagram &dg); + +protected: + static TypedWritable *make_from_bam(const FactoryParams ¶ms); + void fillin(DatagramIterator &scan, BamReader *manager); + public: static TypeHandle get_class_type() { return _type_handle; } static void init_type() { - TypedReferenceCount::init_type(); + TypedWritableReferenceCount::init_type(); register_type(_type_handle, "BulletTriangleMesh", - TypedReferenceCount::get_class_type()); + TypedWritableReferenceCount::get_class_type()); } virtual TypeHandle get_type() const { return get_class_type(); diff --git a/panda/src/bullet/bulletTriangleMeshShape.cxx b/panda/src/bullet/bulletTriangleMeshShape.cxx index 441f2c449b..1df03d7e32 100644 --- a/panda/src/bullet/bulletTriangleMeshShape.cxx +++ b/panda/src/bullet/bulletTriangleMeshShape.cxx @@ -21,6 +21,21 @@ TypeHandle BulletTriangleMeshShape::_type_handle; +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::Constructor +// Access: Private +// Description: Only used by make_from_bam. +//////////////////////////////////////////////////////////////////// +BulletTriangleMeshShape:: +BulletTriangleMeshShape() : + _mesh(NULL), + _gimpact_shape(NULL), + _bvh_shape(NULL), + _dynamic(false), + _compress(false), + _bvh(false) { +} + //////////////////////////////////////////////////////////////////// // Function: BulletTriangleMeshShape::Constructor // Access: Published @@ -28,7 +43,10 @@ TypeHandle BulletTriangleMeshShape::_type_handle; // if 'dynamic' is set to FALSE. //////////////////////////////////////////////////////////////////// BulletTriangleMeshShape:: -BulletTriangleMeshShape(BulletTriangleMesh *mesh, bool dynamic, bool compress, bool bvh) { +BulletTriangleMeshShape(BulletTriangleMesh *mesh, bool dynamic, bool compress, bool bvh) : + _dynamic(dynamic), + _compress(compress), + _bvh(bvh) { // Assert that mesh is not NULL if (!mesh) { @@ -101,3 +119,100 @@ refit_tree(const LPoint3 &aabb_min, const LPoint3 &aabb_max) { LVecBase3_to_btVector3(aabb_max)); } +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::register_with_read_factory +// Access: Public, Static +// Description: Tells the BamReader how to create objects of type +// BulletTriangleMeshShape. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMeshShape:: +register_with_read_factory() { + BamReader::get_factory()->register_factory(get_class_type(), make_from_bam); +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::write_datagram +// Access: Public, Virtual +// Description: Writes the contents of this object to the datagram +// for shipping out to a Bam file. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMeshShape:: +write_datagram(BamWriter *manager, Datagram &dg) { + dg.add_stdfloat(get_margin()); + + manager->write_pointer(dg, _mesh); + + dg.add_bool(_dynamic); + if (!_dynamic) { + dg.add_bool(_compress); + dg.add_bool(_bvh); + } +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::complete_pointers +// Access: Public, Virtual +// Description: Receives an array of pointers, one for each time +// manager->read_pointer() was called in fillin(). +// Returns the number of pointers processed. +//////////////////////////////////////////////////////////////////// +int BulletTriangleMeshShape:: +complete_pointers(TypedWritable **p_list, BamReader *manager) { + int pi = BulletShape::complete_pointers(p_list, manager); + + _mesh = DCAST(BulletTriangleMesh, p_list[pi++]); + + btTriangleMesh *mesh_ptr = _mesh->ptr(); + nassertr(mesh_ptr != NULL, pi); + + if (_dynamic) { + _gimpact_shape = new btGImpactMeshShape(mesh_ptr); + _gimpact_shape->updateBound(); + _gimpact_shape->setUserPointer(this); + } else { + _bvh_shape = new btBvhTriangleMeshShape(mesh_ptr, _compress, _bvh); + _bvh_shape->setUserPointer(this); + } + + return pi; +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::make_from_bam +// Access: Protected, Static +// Description: This function is called by the BamReader's factory +// when a new object of type BulletShape is encountered +// in the Bam file. It should create the BulletShape +// and extract its information from the file. +//////////////////////////////////////////////////////////////////// +TypedWritable *BulletTriangleMeshShape:: +make_from_bam(const FactoryParams ¶ms) { + BulletTriangleMeshShape *param = new BulletTriangleMeshShape; + DatagramIterator scan; + BamReader *manager; + + parse_params(params, scan, manager); + param->fillin(scan, manager); + + return param; +} + +//////////////////////////////////////////////////////////////////// +// Function: BulletTriangleMeshShape::fillin +// Access: Protected +// Description: This internal function is called by make_from_bam to +// read in all of the relevant data from the BamFile for +// the new BulletTriangleMeshShape. +//////////////////////////////////////////////////////////////////// +void BulletTriangleMeshShape:: +fillin(DatagramIterator &scan, BamReader *manager) { + PN_stdfloat margin = scan.get_stdfloat(); + + manager->read_pointer(scan); + + _dynamic = scan.get_bool(); + if (!_dynamic) { + _compress = scan.get_bool(); + _bvh = scan.get_bool(); + } +} diff --git a/panda/src/bullet/bulletTriangleMeshShape.h b/panda/src/bullet/bulletTriangleMeshShape.h index 31049c2606..5c8faa0cab 100644 --- a/panda/src/bullet/bulletTriangleMeshShape.h +++ b/panda/src/bullet/bulletTriangleMeshShape.h @@ -29,6 +29,8 @@ class BulletTriangleMesh; // Description : //////////////////////////////////////////////////////////////////// class EXPCL_PANDABULLET BulletTriangleMeshShape : public BulletShape { +private: + INLINE BulletTriangleMeshShape(); PUBLISHED: BulletTriangleMeshShape(BulletTriangleMesh *mesh, bool dynamic, bool compress=true, bool bvh=true); @@ -50,7 +52,20 @@ private: PT(BulletTriangleMesh) _mesh; -//////////////////////////////////////////////////////////////////// + bool _dynamic : 1; + bool _compress : 1; + bool _bvh : 1; + +public: + static void register_with_read_factory(); + virtual void write_datagram(BamWriter *manager, Datagram &dg); + virtual int complete_pointers(TypedWritable **plist, + BamReader *manager); + +protected: + static TypedWritable *make_from_bam(const FactoryParams ¶ms); + void fillin(DatagramIterator &scan, BamReader *manager); + public: static TypeHandle get_class_type() { return _type_handle; diff --git a/panda/src/bullet/config_bullet.cxx b/panda/src/bullet/config_bullet.cxx index 4448a1c16b..2b33b8dffe 100644 --- a/panda/src/bullet/config_bullet.cxx +++ b/panda/src/bullet/config_bullet.cxx @@ -184,9 +184,13 @@ init_libbullet() { // Register factory functions for constructing objects from .bam files BulletBoxShape::register_with_read_factory(); + BulletConvexHullShape::register_with_read_factory(); + BulletDebugNode::register_with_read_factory(); BulletPlaneShape::register_with_read_factory(); BulletRigidBodyNode::register_with_read_factory(); BulletSphereShape::register_with_read_factory(); + BulletTriangleMesh::register_with_read_factory(); + BulletTriangleMeshShape::register_with_read_factory(); // Custom contact callbacks gContactAddedCallback = contact_added_callback;