Revision: 31230
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31230
Author: moguri
Date: 2010-08-11 07:11:43 +0200 (Wed, 11 Aug 2010)
Log Message:
-----------
Setting KX_BlenderMaterial.blender_shader now sets the sources of the
underlying BL_BlenderShader. It looks like all that is left for the API is
changing the Uniform's value. That and anything else Dalai deems necessary. :)
Modified Paths:
--------------
branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_PythonShaders.h
Modified:
branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
===================================================================
--- branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
2010-08-11 03:31:56 UTC (rev 31229)
+++ branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
2010-08-11 05:11:43 UTC (rev 31230)
@@ -861,8 +861,22 @@
{
KX_BlenderMaterial* self = static_cast<KX_BlenderMaterial*>(self_v);
+ if (!PyType_IsSubtype(&KX_PythonShader::Type, Py_TYPE(value)))
+ {
+ PyErr_SetString(PyExc_TypeError, "expected a Shader object");
+ return NULL;
+ }
+
+ KX_PythonShader *pyshader =
static_cast<KX_PythonShader*>BGE_PROXY_REF(value);
+
BL_BlenderShader* shader = new BL_BlenderShader(self->mScene,
self->GetBlenderMaterial(), self->mLightLayer);
self->SetBlenderShader(shader);
+
+ shader->SetSources (
+ pyshader->GetVertex().Ptr(),
+ pyshader->GetGeometry().Ptr(),
+ pyshader->GetFragment().Ptr());
+
return PY_SET_ATTR_SUCCESS;
}
Modified: branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_PythonShaders.h
===================================================================
--- branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_PythonShaders.h
2010-08-11 03:31:56 UTC (rev 31229)
+++ branches/soc-2010-moguri-2/source/gameengine/Ketsji/KX_PythonShaders.h
2010-08-11 05:11:43 UTC (rev 31230)
@@ -49,11 +49,12 @@
KX_PythonShader(class KX_BlenderMaterial *material);
~KX_PythonShader();
- UniformList& GetUniforms()
- {
- return m_uniforms;
- }
+ STR_String& GetVertex() { return m_vert; }
+ STR_String& GetGeometry() { return m_geom; }
+ STR_String& GetFragment() { return m_frag; }
+ UniformList& GetUniforms() { return m_uniforms; }
+
static PyObject* py_shader_new(PyTypeObject *type, PyObject *args,
PyObject *kwds);
KX_PYMETHOD_DOC_O(KX_PythonShader, addUniform);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs