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

Reply via email to