[Bf-blender-cvs] [fdc6c21] openvdb: Fix compile error.
Kévin Dietrich
noreply at git.blender.org
Sun Nov 13 21:44:35 CET 2016
Commit: fdc6c21d177f6dce7a3eaa79660f782a1c741d33
Author: Kévin Dietrich
Date: Thu Jul 7 14:06:27 2016 +0200
Branches: openvdb
https://developer.blender.org/rBfdc6c21d177f6dce7a3eaa79660f782a1c741d33
Fix compile error.
===================================================================
M intern/cycles/blender/blender_shader.cpp
M intern/cycles/blender/blender_volume.cpp
M intern/cycles/render/attribute.cpp
M intern/cycles/render/nodes.cpp
M intern/cycles/render/nodes.h
M intern/cycles/render/shader.cpp
M intern/cycles/render/volume.cpp
M intern/cycles/render/volume.h
M intern/cycles/util/util_task.cpp
M intern/cycles/util/util_thread.h
M source/blender/blenloader/intern/writefile.c
===================================================================
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 2fa76a1..08a84d1 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -858,7 +858,7 @@ static ShaderNode *add_node(Scene *scene,
for(b_vdb_node.outputs.begin(b_output); b_output != b_vdb_node.outputs.end(); ++b_output) {
vdb_node->output_names.push_back(ustring(b_output->name()));
- vdb_node->add_output(vdb_node->output_names.back().c_str(),
+ vdb_node->add_output(vdb_node->output_names.back(),
convert_socket_type(*b_output));
}
diff --git a/intern/cycles/blender/blender_volume.cpp b/intern/cycles/blender/blender_volume.cpp
index ba21216..a7964bd8 100644
--- a/intern/cycles/blender/blender_volume.cpp
+++ b/intern/cycles/blender/blender_volume.cpp
@@ -92,8 +92,7 @@ static void create_volume_attributes(Scene *scene,
Volume *volume,
float frame)
{
- foreach(uint id, volume->used_shaders) {
- Shader *shader = scene->shaders[id];
+ foreach(Shader *shader, volume->used_shaders) {
fprintf(stderr, "Number of attribute requests: %lu\n", shader->attributes.requests.size());
foreach(AttributeRequest req, shader->attributes.requests) {
@@ -131,7 +130,7 @@ Volume *BlenderSync::sync_volume(BL::Object &b_ob)
BL::Material material_override = render_layer.material_override;
/* find shader indices */
- vector<uint> used_shaders;
+ vector<Shader*> used_shaders;
BL::ID b_ob_data = b_ob.data();
fprintf(stderr, "%s: before material assignment\n", __func__);
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp
index ab4edbe..cbe1bb4 100644
--- a/intern/cycles/render/attribute.cpp
+++ b/intern/cycles/render/attribute.cpp
@@ -295,7 +295,7 @@ Attribute *AttributeSet::add(ustring name, TypeDesc type, AttributeElement eleme
else if(curve_mesh)
attr->resize(0, 0, curve_mesh->motion_steps, curve_mesh->num_curves(), curve_mesh->curve_keys.size(), false);
else
- attr->reserve(0, 0, 0, 0, 0, false);
+ attr->resize(0, 0, 0, 0, 0, false);
return attr;
}
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index a2a7853..1ad6db5 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -5375,7 +5375,7 @@ void OpenVDBNode::compile(SVMCompiler& compiler)
int type = NODE_VDB_FLOAT;
- if(out->type == SHADER_SOCKET_VECTOR || out->type == SHADER_SOCKET_COLOR) {
+ if(out->type() == SocketType::VECTOR || out->type() == SocketType::COLOR) {
type = NODE_VDB_FLOAT3;
}
@@ -5394,6 +5394,11 @@ void OpenVDBNode::compile(SVMCompiler& compiler)
}
}
+void OpenVDBNode::add_output(ustring name, SocketType::Type socket_type)
+{
+ const_cast<NodeType*>(type)->register_output(name, name, socket_type);
+}
+
void OpenVDBNode::compile(OSLCompiler& /*compiler*/)
{
}
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 2d66b1e..605b61a 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -973,6 +973,8 @@ public:
void attributes(Shader *shader, AttributeRequestSet *attributes);
bool has_spatial_varying() { return true; }
+ void add_output(ustring name, SocketType::Type type);
+
ustring filename;
VolumeManager *volume_manager;
diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp
index b45fd65..0505928 100644
--- a/intern/cycles/render/shader.cpp
+++ b/intern/cycles/render/shader.cpp
@@ -509,19 +509,19 @@ void ShaderManager::add_default(Scene *scene)
/* default empty */
{
- graph = new ShaderGraph();
+ ShaderGraph *graph = new ShaderGraph();
- closure = graph->add(new ScatterVolumeNode());
- closure->input("Density")->value = make_float3(0.8f, 0.8f, 0.8f);
- out = graph->output();
+ ScatterVolumeNode *scatter = new ScatterVolumeNode();
+ scatter->input("Density")->set(make_float3(0.8f, 0.8f, 0.8f));
+ graph->add(scatter);
- graph->connect(closure->output("Volume"), out->input("Volume"));
+ graph->connect(scatter->output("Volume"), graph->output()->input("Volume"));
- shader = new Shader();
+ Shader *shader = new Shader();
shader->name = "default_volume";
shader->graph = graph;
scene->shaders.push_back(shader);
- scene->default_volume = scene->shaders.size() - 1;
+ scene->default_volume = shader;
}
}
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/render/volume.cpp
index 9ca1a52..2664d47 100644
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/render/volume.cpp
@@ -389,8 +389,7 @@ void VolumeManager::device_update_attributes(Device *device, DeviceScene *dscene
for(size_t i = 0; i < volumes.size(); i++) {
Volume *volume = volumes[i];
- foreach(uint sindex, volume->used_shaders) {
- Shader *shader = scene->shaders[sindex];
+ foreach(Shader *shader, volume->used_shaders) {
volume_attributes[i].add(shader->attributes);
}
}
diff --git a/intern/cycles/render/volume.h b/intern/cycles/render/volume.h
index d2889b4..693558e 100644
--- a/intern/cycles/render/volume.h
+++ b/intern/cycles/render/volume.h
@@ -29,10 +29,11 @@ class Device;
class DeviceScene;
class Progress;
class Scene;
+class Shader;
class Volume {
public:
- vector<uint> used_shaders;
+ vector<Shader*> used_shaders;
AttributeSet attributes;
string name;
diff --git a/intern/cycles/util/util_task.cpp b/intern/cycles/util/util_task.cpp
index 251356c..ed6f5b7 100644
--- a/intern/cycles/util/util_task.cpp
+++ b/intern/cycles/util/util_task.cpp
@@ -224,7 +224,7 @@ void TaskScheduler::init(int num_threads)
thread_index + 1),
group);
threads_ids.push_back(threads[thread_index]->id());
- std::cerr << "Thread " << i << ", id: " << threads[i]->id() << '\n';
+ std::cerr << "Thread " << thread_index << ", id: " << threads[thread_index]->id() << '\n';
}
}
}
diff --git a/intern/cycles/util/util_thread.h b/intern/cycles/util/util_thread.h
index adb18f1..5d0020a 100644
--- a/intern/cycles/util/util_thread.h
+++ b/intern/cycles/util/util_thread.h
@@ -60,7 +60,7 @@ public:
pthread_t id() const
{
- return pthread_id;
+ return pthread_id_;
}
protected:
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index dbe2ff0..99b4f41 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1018,8 +1018,8 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree)
(node->type == SH_NODE_OPENVDB))
{
NodeShaderOpenVDB *vdb = (NodeShaderOpenVDB *)node->storage;
- writelist(wd, DATA, "OpenVDBGridInfo", &vdb->grid_info);
- writestruct(wd, DATA, node->typeinfo->storagename, 1, node->storage);
+ writelist(wd, DATA, OpenVDBGridInfo, &vdb->grid_info);
+ writestruct_id(wd, DATA, node->typeinfo->storagename, 1, node->storage);
}
else if ((ntree->type == NTREE_COMPOSIT) &&
ELEM(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT))
More information about the Bf-blender-cvs
mailing list