[Bf-blender-cvs] [7f29a89ffd9] cycles_procedural_api: add convenience function to tag sockets as modified

Kévin Dietrich noreply at git.blender.org
Fri Oct 9 17:56:04 CEST 2020


Commit: 7f29a89ffd91db82190ca0eb3232b89b88f8c136
Author: Kévin Dietrich
Date:   Fri Oct 9 00:25:57 2020 +0200
Branches: cycles_procedural_api
https://developer.blender.org/rB7f29a89ffd91db82190ca0eb3232b89b88f8c136

add convenience function to tag sockets as modified

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

M	intern/cycles/graph/node.h
M	intern/cycles/render/mesh.cpp

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

diff --git a/intern/cycles/graph/node.h b/intern/cycles/graph/node.h
index b5543d4bb07..e36a9da8ce0 100644
--- a/intern/cycles/graph/node.h
+++ b/intern/cycles/graph/node.h
@@ -42,6 +42,11 @@ struct Transform;
     const SocketType *socket = get_##name##_socket(); \
     return socket_is_modified(*socket); \
   } \
+  void tag_##name##_modified() \
+  { \
+    const SocketType *socket = get_##name##_socket(); \
+    socket_modified |= socket->modified_flag_bit; \
+  } \
   type_ const &get_##name() const \
   { \
     const SocketType *socket = get_##name##_socket(); \
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp
index da026b5baf4..066a9398b47 100644
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/render/mesh.cpp
@@ -317,21 +317,22 @@ void Mesh::clear()
 void Mesh::add_vertex(float3 P)
 {
   verts.push_back_reserved(P);
+  tag_verts_modified();
 
   if (get_num_subd_faces()) {
     vert_patch_uv.push_back_reserved(make_float2(0.0f, 0.0f));
+    tag_vert_patch_uv_modified();
   }
 }
 
 void Mesh::add_vertex_slow(float3 P)
 {
   verts.push_back_slow(P);
-
-  socket_modified |= get_triangles_socket()->modified_flag_bit;
+  tag_verts_modified();
 
   if (get_num_subd_faces()) {
     vert_patch_uv.push_back_slow(make_float2(0.0f, 0.0f));
-    socket_modified |= get_vert_patch_uv_socket()->modified_flag_bit;
+    tag_vert_patch_uv_modified();
   }
 }
 
@@ -343,13 +344,13 @@ void Mesh::add_triangle(int v0, int v1, int v2, int shader_, bool smooth_)
   shader.push_back_reserved(shader_);
   smooth.push_back_reserved(smooth_);
 
-  socket_modified |= get_triangles_socket()->modified_flag_bit;
-  socket_modified |= get_shader_socket()->modified_flag_bit;
-  socket_modified |= get_smooth_socket()->modified_flag_bit;
+  tag_triangles_modified();
+  tag_shader_modified();
+  tag_smooth_modified();
 
   if (get_num_subd_faces()) {
     triangle_patch.push_back_reserved(-1);
-    socket_modified |= get_triangle_patch_socket()->modified_flag_bit;
+    tag_triangle_patch_modified();
   }
 }
 
@@ -374,6 +375,13 @@ void Mesh::add_subd_face(int *corners, int num_corners, int shader_, bool smooth
   subd_shader.push_back_reserved(shader_);
   subd_smooth.push_back_reserved(smooth_);
   subd_ptex_offset.push_back_reserved(ptex_offset);
+
+  tag_subd_face_corners_modified();
+  tag_subd_start_corner_modified();
+  tag_subd_num_corners_modified();
+  tag_subd_shader_modified();
+  tag_subd_smooth_modified();
+  tag_subd_ptex_offset_modified();
 }
 
 Mesh::SubdFace Mesh::get_subd_face(size_t index) const
@@ -392,6 +400,10 @@ void ccl::Mesh::add_crease(int v0, int v1, float weight)
   subd_creases_edge.push_back_slow(v0);
   subd_creases_edge.push_back_slow(v1);
   subd_creases_weight.push_back_slow(weight);
+
+  tag_subd_creases_edge_modified();
+  tag_subd_creases_edge_modified();
+  tag_subd_creases_weight_modified();
 }
 
 void Mesh::copy_center_to_motion_step(const int motion_step)



More information about the Bf-blender-cvs mailing list