diff options
Diffstat (limited to 'source/gameengine/Ketsji/KX_BlenderMaterial.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_BlenderMaterial.cpp | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp index 2ef7e55429f..f5f52a3bd5e 100644 --- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp +++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp @@ -794,9 +794,9 @@ PyMethodDef KX_BlenderMaterial::Methods[] = }; PyAttributeDef KX_BlenderMaterial::Attributes[] = { - //KX_PYATTRIBUTE_TODO("shader"), - //KX_PYATTRIBUTE_TODO("materialIndex"), - //KX_PYATTRIBUTE_TODO("blending"), + KX_PYATTRIBUTE_RO_FUNCTION("shader", KX_BlenderMaterial, pyattr_get_shader), + KX_PYATTRIBUTE_RO_FUNCTION("material_index", KX_BlenderMaterial, pyattr_get_materialIndex), + KX_PYATTRIBUTE_RW_FUNCTION("blending", KX_BlenderMaterial, pyattr_get_blending, pyattr_set_blending), { NULL } //Sentinel }; @@ -822,6 +822,37 @@ PyTypeObject KX_BlenderMaterial::Type = { py_base_new }; +PyObject* KX_BlenderMaterial::pyattr_get_shader(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v); + return self->PygetShader(NULL, NULL); +} + +PyObject* KX_BlenderMaterial::pyattr_get_materialIndex(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v); + return PyLong_FromSsize_t(self->GetMaterialIndex()); +} + +PyObject* KX_BlenderMaterial::pyattr_get_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v); + unsigned int* bfunc = self->getBlendFunc(); + return Py_BuildValue("(ll)", (long int)bfunc[0], (long int)bfunc[1]); +} + +int KX_BlenderMaterial::pyattr_set_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) +{ + KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v); + PyObject* obj = self->PysetBlending(value, NULL); + if(obj) + { + Py_DECREF(obj); + return 0; + } + return -1; +} + KX_PYMETHODDEF_DOC( KX_BlenderMaterial, getShader , "getShader()") { if( !GLEW_ARB_fragment_shader) { |