[Bf-blender-cvs] [4ce8a1b] openvdb: Ensure filename is absolute in the vdb node.

Kévin Dietrich noreply at git.blender.org
Fri Jun 5 14:08:38 CEST 2015


Commit: 4ce8a1bf253d1014512dba9a0b1deb7c6e4174ae
Author: Kévin Dietrich
Date:   Mon Jun 1 13:26:56 2015 +0200
Branches: openvdb
https://developer.blender.org/rB4ce8a1bf253d1014512dba9a0b1deb7c6e4174ae

Ensure filename is absolute in the vdb node.

===================================================================

M	source/blender/blenkernel/BKE_node.h
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/nodes/shader/nodes/node_shader_openvdb.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index f33d73b..2e59dd7 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -811,7 +811,7 @@ void            set_node_shader_lamp_loop(void (*lamp_loop_func)(struct ShadeInp
 
 void            ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat, short compatibility);
 
-void            ntreeUpdateOpenVDBNode(struct bNodeTree *ntree, struct bNode *node);
+void            ntreeUpdateOpenVDBNode(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
 
 /** \} */
 
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index f0d2bd1..b328fe6 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -2974,7 +2974,7 @@ static void rna_ShaderNodeOpenVDB_update(Main *bmain, Scene *scene, PointerRNA *
 	bNodeTree *ntree = (bNodeTree *)ptr->id.data;
 	bNode *node = (bNode *)ptr->data;
 
-	ntreeUpdateOpenVDBNode(ntree, node);
+	ntreeUpdateOpenVDBNode(bmain, ntree, node);
 	ntreeUpdateTree(bmain, ntree);
 	WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
 
diff --git a/source/blender/nodes/shader/nodes/node_shader_openvdb.c b/source/blender/nodes/shader/nodes/node_shader_openvdb.c
index 23379a2..96c3f99 100644
--- a/source/blender/nodes/shader/nodes/node_shader_openvdb.c
+++ b/source/blender/nodes/shader/nodes/node_shader_openvdb.c
@@ -41,19 +41,28 @@ static void node_shader_init_openvdb(bNodeTree *UNUSED(ntree), bNode *node)
 }
 
 #ifdef WITH_OPENVDB
-void ntreeUpdateOpenVDBNode(bNodeTree *ntree, bNode *node)
+void ntreeUpdateOpenVDBNode(Main *bmain, bNodeTree *ntree, bNode *node)
 {
 	NodeShaderOpenVDB *vdb = node->storage;
+	char *filename;
 
-	if (vdb) {
-		BLI_listbase_clear(&node->outputs);
-		OpenVDB_getNodeSockets(vdb->filename, ntree, node);
+	if (!vdb) {
+		return;
 	}
+
+	filename = &vdb->filename[0];
+
+	if (BLI_path_is_rel(filename)) {
+		BLI_path_abs(filename, bmain->name);
+	}
+
+	BLI_listbase_clear(&node->outputs);
+	OpenVDB_getNodeSockets(filename, ntree, node);
 }
 #else
-void ntreeUpdateOpenVDBNode(bNodeTree *ntree, bNode *node)
+void ntreeUpdateOpenVDBNode(Main *bmain, bNodeTree *ntree, bNode *node)
 {
-	UNUSED_VARS(ntree, node);
+	UNUSED_VARS(bmain, ntree, node);
 }
 #endif




More information about the Bf-blender-cvs mailing list