[Bf-blender-cvs] [848496c7133] cycles_procedural_api: fixes

Kévin Dietrich noreply at git.blender.org
Thu Nov 5 18:57:53 CET 2020


Commit: 848496c7133890cce0c95a1b028248b3bea8d605
Author: Kévin Dietrich
Date:   Wed Nov 4 11:05:59 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rB848496c7133890cce0c95a1b028248b3bea8d605

fixes

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

M	intern/cycles/blender/blender_curves.cpp
M	intern/cycles/blender/blender_geometry.cpp
M	intern/cycles/blender/blender_mesh.cpp
M	intern/cycles/blender/blender_object.cpp
M	intern/cycles/graph/node.h

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

diff --git a/intern/cycles/blender/blender_curves.cpp b/intern/cycles/blender/blender_curves.cpp
index 90c01d0bd8d..dc6e4e7e54c 100644
--- a/intern/cycles/blender/blender_curves.cpp
+++ b/intern/cycles/blender/blender_curves.cpp
@@ -529,8 +529,7 @@ bool BlenderSync::object_has_particle_hair(BL::Object b_ob)
 }
 
 /* Old particle hair. */
-void BlenderSync::sync_particle_hair(
-    Hair *hair, BL::Mesh &b_mesh, BL::Object &b_ob, bool motion, int motion_step)
+void BlenderSync::sync_particle_hair(Hair *hair, BL::Mesh &b_mesh, BL::Object &b_ob, bool motion, int motion_step)
 {
   /* obtain general settings */
   if (b_ob.mode() == b_ob.mode_PARTICLE_EDIT || b_ob.mode() == b_ob.mode_EDIT) {
@@ -820,6 +819,7 @@ void BlenderSync::sync_hair(Hair *hair, BL::Object &b_ob, bool motion, int motio
 void BlenderSync::sync_hair(BL::Depsgraph b_depsgraph, BL::Object b_ob, Hair *hair)
 {
   Hair new_hair;
+  new_hair.set_used_shaders(hair->get_used_shaders());
 
   if (view_layer.use_hair) {
     if (b_ob.type() == BL::Object::type_HAIR) {
diff --git a/intern/cycles/blender/blender_geometry.cpp b/intern/cycles/blender/blender_geometry.cpp
index f5acb5adbed..bd2f0731030 100644
--- a/intern/cycles/blender/blender_geometry.cpp
+++ b/intern/cycles/blender/blender_geometry.cpp
@@ -140,7 +140,7 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
   geom->name = ustring(b_ob_data.name().c_str());
 
   /* Store the shaders immediately for the object attribute code. */
-  geom->used_shaders = used_shaders;
+  geom->set_used_shaders(used_shaders);
 
   auto sync_func = [=]() mutable {
     if (progress.get_cancel())
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index e952b46a567..7aa4e890f41 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -1020,6 +1020,7 @@ static void sync_mesh_fluid_motion(BL::Object &b_ob, Scene *scene, Mesh *mesh)
 void BlenderSync::sync_mesh(BL::Depsgraph b_depsgraph, BL::Object b_ob, Mesh *mesh)
 {
   Mesh new_mesh;
+  new_mesh.set_used_shaders(mesh->get_used_shaders());
 
   if (view_layer.use_surfaces) {
     /* Adaptive subdivision setup. Not for baking since that requires
@@ -1060,7 +1061,7 @@ void BlenderSync::sync_mesh(BL::Depsgraph b_depsgraph, BL::Object b_ob, Mesh *me
 
   for (const SocketType &socket : new_mesh.type->inputs) {
     /* Those sockets are updated in sync_object, so do not modify them. */
-	if (socket.name == "use_motion_blur" || socket.name == "motion_steps" || socket.name == "used_shaders") {
+ if (socket.name == "use_motion_blur" || socket.name == "motion_steps") {
       continue;
     }
     mesh->set_value(socket, new_mesh, socket);
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index b9e922a1023..4a70cbbf41f 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -415,7 +415,7 @@ static float4 lookup_instance_property(BL::DepsgraphObjectInstance &b_instance,
 bool BlenderSync::sync_object_attributes(BL::DepsgraphObjectInstance &b_instance, Object *object)
 {
   /* Find which attributes are needed. */
-  AttributeRequestSet requests = object->geometry->needed_attributes();
+  AttributeRequestSet requests = object->get_geometry()->needed_attributes();
 
   /* Delete attributes that became unnecessary. */
   vector<ParamValue> &attributes = object->attributes;
diff --git a/intern/cycles/graph/node.h b/intern/cycles/graph/node.h
index b28ea09282b..2fc9a1e0281 100644
--- a/intern/cycles/graph/node.h
+++ b/intern/cycles/graph/node.h
@@ -74,6 +74,11 @@ struct Transform;
   { \
     const SocketType *socket = get_##name##_socket(); \
     this->set(*socket, value); \
+  } \
+  type_ &get_##name() \
+  { \
+    const SocketType *socket = get_##name##_socket(); \
+    return get_socket_value<type_>(this, *socket); \
   }
 
 #define NODE_SOCKET_API_STRUCT_MEMBER(type_, name, member) \



More information about the Bf-blender-cvs mailing list