[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31230] branches/soc-2010-moguri-2/source/ gameengine/Ketsji: Setting KX_BlenderMaterial. blender_shader now sets the sources of the underlying BL_BlenderShader.
Mitchell Stokes
mogurijin at gmail.com
Wed Aug 11 07:12:00 CEST 2010
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);
More information about the Bf-blender-cvs
mailing list