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

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to