[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31309] branches/soc-2010-moguri-2/source/ blender/blenloader/intern: Fixing some issues with saving and loading vector uniforms.
Mitchell Stokes
mogurijin at gmail.com
Fri Aug 13 09:14:23 CEST 2010
Revision: 31309
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31309
Author: moguri
Date: 2010-08-13 09:14:22 +0200 (Fri, 13 Aug 2010)
Log Message:
-----------
Fixing some issues with saving and loading vector uniforms.
Modified Paths:
--------------
branches/soc-2010-moguri-2/source/blender/blenloader/intern/readfile.c
branches/soc-2010-moguri-2/source/blender/blenloader/intern/writefile.c
Modified: branches/soc-2010-moguri-2/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2010-moguri-2/source/blender/blenloader/intern/readfile.c 2010-08-13 06:45:33 UTC (rev 31308)
+++ branches/soc-2010-moguri-2/source/blender/blenloader/intern/readfile.c 2010-08-13 07:14:22 UTC (rev 31309)
@@ -2910,6 +2910,7 @@
static void direct_link_material(FileData *fd, Material *ma)
{
int a;
+ CustomUniform *cu;
ma->adt= newdataadr(fd, ma->adt);
direct_link_animdata(fd, ma->adt);
@@ -2921,6 +2922,18 @@
ma->ramp_col= newdataadr(fd, ma->ramp_col);
ma->ramp_spec= newdataadr(fd, ma->ramp_spec);
link_list(fd, &ma->csi.uniforms);
+
+ cu = ma->csi.uniforms.first;
+
+ while(cu) {
+ // Sampler2D is handled in lib_link, so only vec* and ivec* need special attention here
+ if (cu->type != MA_UNF_FLOAT &&
+ cu->type != MA_UNF_INT &&
+ cu->type != MA_UNF_SAMPLER2D)
+ cu->data= newdataadr(fd, cu->data);
+
+ cu = cu->next;
+ }
ma->nodetree= newdataadr(fd, ma->nodetree);
if(ma->nodetree)
Modified: branches/soc-2010-moguri-2/source/blender/blenloader/intern/writefile.c
===================================================================
--- branches/soc-2010-moguri-2/source/blender/blenloader/intern/writefile.c 2010-08-13 06:45:33 UTC (rev 31308)
+++ branches/soc-2010-moguri-2/source/blender/blenloader/intern/writefile.c 2010-08-13 07:14:22 UTC (rev 31309)
@@ -1688,6 +1688,20 @@
while(cu) {
writestruct(wd, DATA, "CustomUniform", 1, cu);
+ switch(cu->type)
+ {
+ case MA_UNF_VEC2:
+ case MA_UNF_VEC3:
+ case MA_UNF_VEC4:
+ writedata(wd, DATA, sizeof(float) * cu->size, cu->data);
+ break;
+ case MA_UNF_IVEC2:
+ case MA_UNF_IVEC3:
+ case MA_UNF_IVEC4:
+ writedata(wd, DATA, sizeof(int) * cu->size, cu->data);
+ break;
+ }
+
cu= cu->next;
}
}
More information about the Bf-blender-cvs
mailing list