[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