diff --git a/doc/python_api/rst/bge_types/bge.types.KX_BlenderMaterial.rst b/doc/python_api/rst/bge_types/bge.types.KX_BlenderMaterial.rst index 17f54031ec3..ece2a65af71 100644 --- a/doc/python_api/rst/bge_types/bge.types.KX_BlenderMaterial.rst +++ b/doc/python_api/rst/bge_types/bge.types.KX_BlenderMaterial.rst @@ -89,6 +89,15 @@ base class --- :class:`PyObjectPlus` :return: the material's shader :rtype: :class:`BL_Shader` + .. method:: getTextureBindcode(textureslot) + + Returns the material's texture OpenGL bind code/id/number/name. + + :arg textureslot: Specifies the texture slot number + :type textureslot: integer + :return: the material's texture OpenGL bind code/id/number/name + :rtype: integer + .. attribute:: alpha The material's alpha transparency. diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index 1d185d52dc8..476fbd29b8b 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -972,6 +972,7 @@ PyMethodDef KX_BlenderMaterial::Methods[] = { KX_PYMETHODTABLE( KX_BlenderMaterial, getShader ), KX_PYMETHODTABLE( KX_BlenderMaterial, getMaterialIndex ), + KX_PYMETHODTABLE( KX_BlenderMaterial, getTextureBindcode ), KX_PYMETHODTABLE( KX_BlenderMaterial, setBlending ), {NULL,NULL} //Sentinel }; @@ -1325,4 +1326,20 @@ KX_PYMETHODDEF_DOC( KX_BlenderMaterial, setBlending , "setBlending( bge.logic.sr return NULL; } +KX_PYMETHODDEF_DOC(KX_BlenderMaterial, getTextureBindcode, "getTextureBindcode(texslot)") +{ + unsigned int texslot; + if (!PyArg_ParseTuple(args, "i:texslot", &texslot)) { + PyErr_SetString(PyExc_ValueError, "material.getTextureBindcode(texslot): KX_BlenderMaterial, expected an int."); + return NULL; + } + Image *ima = getImage(texslot); + if (ima) { + unsigned int *bindcode = ima->bindcode; + return PyLong_FromLong(*bindcode); + } + PyErr_SetString(PyExc_ValueError, "material.getTextureBindcode(texslot): KX_BlenderMaterial, invalid texture slot."); + return NULL; +} + #endif // WITH_PYTHON diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h index df089cb7f99..a3d10c0a89d 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.h +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h @@ -133,6 +133,7 @@ public: KX_PYMETHOD_DOC(KX_BlenderMaterial, getMaterialIndex); KX_PYMETHOD_DOC(KX_BlenderMaterial, getTexture); KX_PYMETHOD_DOC(KX_BlenderMaterial, setTexture); + KX_PYMETHOD_DOC(KX_BlenderMaterial, getTextureBindcode); KX_PYMETHOD_DOC(KX_BlenderMaterial, setBlending); #endif /* WITH_PYTHON */