[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