[Bf-blender-cvs] [438aae9d0fd] functions: remove Function from displace modifier (was only for testing)

Jacques Lucke noreply at git.blender.org
Tue Jul 9 18:01:03 CEST 2019


Commit: 438aae9d0fd8278dab82965afc0f7f123340caa2
Author: Jacques Lucke
Date:   Tue Jul 9 09:58:12 2019 +0200
Branches: functions
https://developer.blender.org/rB438aae9d0fd8278dab82965afc0f7f123340caa2

remove Function from displace modifier (was only for testing)

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

M	release/scripts/startup/bl_ui/properties_data_modifier.py
M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/intern/MOD_displace.c

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

diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 333fc68ceb6..d0e4bfdd4f7 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -386,8 +386,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
         row.prop(md, "mid_level")
         row.prop(md, "strength")
 
-        layout.prop(md, "function_tree", text="Weight Function")
-
     def DYNAMIC_PAINT(self, layout, _ob, md):
         layout.label(text="Settings are inside the Physics tab")
 
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 03e0d5ff895..bfee921beed 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -482,7 +482,6 @@ typedef struct DisplaceModifierData {
   char defgrp_name[64];
   float midlevel;
   int space;
-  struct bNodeTree *function_tree;
 } DisplaceModifierData;
 
 /* DisplaceModifierData->direction */
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 6fb2e1c4991..6a13072dac0 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -2683,11 +2683,6 @@ static void rna_def_modifier_displace(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Space", "");
   RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
 
-  prop = RNA_def_property(srna, "function_tree", PROP_POINTER, PROP_NONE);
-  RNA_def_property_flag(prop, PROP_EDITABLE);
-  RNA_def_property_ui_text(prop, "Function Tree", "Function node tree");
-  RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
-
   rna_def_modifier_generic_map_info(srna);
 }
 
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index 8838e7b8524..50447ae0376 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -26,12 +26,9 @@
 #include "BLI_math.h"
 #include "BLI_task.h"
 
-#include "PIL_time_utildefines.h"
-
 #include "DNA_mesh_types.h"
 #include "DNA_meshdata_types.h"
 #include "DNA_object_types.h"
-#include "DNA_node_types.h"
 
 #include "BKE_customdata.h"
 #include "BKE_editmesh.h"
@@ -53,8 +50,6 @@
 
 #include "RE_shader_ext.h"
 
-#include "FN_all-c.h"
-
 /* Displace */
 
 static void initData(ModifierData *md)
@@ -66,21 +61,6 @@ static void initData(ModifierData *md)
   dmd->direction = MOD_DISP_DIR_NOR;
   dmd->midlevel = 0.5;
   dmd->space = MOD_DISP_SPACE_LOCAL;
-  dmd->function_tree = NULL;
-}
-
-static FnFunction getCurrentFunction(DisplaceModifierData *dmd)
-{
-  bNodeTree *tree = (bNodeTree *)DEG_get_original_id((ID *)dmd->function_tree);
-
-  FnType float_ty = FN_type_borrow_float();
-  FnType int32_ty = FN_type_borrow_int32();
-  FnType float3_ty = FN_type_borrow_float3();
-
-  FnType inputs[] = {float3_ty, int32_ty, NULL};
-  FnType outputs[] = {float_ty, NULL};
-
-  return FN_function_get_with_signature(tree, inputs, outputs);
 }
 
 static void requiredDataMask(Object *UNUSED(ob),
@@ -134,7 +114,6 @@ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *u
   DisplaceModifierData *dmd = (DisplaceModifierData *)md;
 
   walk(userData, ob, (ID **)&dmd->texture, IDWALK_CB_USER);
-  walk(userData, ob, (ID **)&dmd->function_tree, IDWALK_CB_USER);
 
   foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
 }
@@ -169,12 +148,6 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
   if (dmd->texture != NULL) {
     DEG_add_generic_id_relation(ctx->node, &dmd->texture->id, "Displace Modifier");
   }
-
-  FnFunction fn = getCurrentFunction(dmd);
-  if (fn) {
-    FN_function_update_dependencies(fn, ctx->node);
-    FN_function_free(fn);
-  }
 }
 
 typedef struct DisplaceUserdata {
@@ -192,7 +165,6 @@ typedef struct DisplaceUserdata {
   float local_mat[4][4];
   MVert *mvert;
   float (*vert_clnors)[3];
-  FnFunction calc_weight_func;
 } DisplaceUserdata;
 
 static void displaceModifier_do_task(void *__restrict userdata,
@@ -201,7 +173,9 @@ static void displaceModifier_do_task(void *__restrict userdata,
 {
   DisplaceUserdata *data = (DisplaceUserdata *)userdata;
   DisplaceModifierData *dmd = data->dmd;
+  MDeformVert *dvert = data->dvert;
   float weight = data->weight;
+  int defgrp_index = data->defgrp_index;
   int direction = data->direction;
   bool use_global_direction = data->use_global_direction;
   float(*tex_co)[3] = data->tex_co;
@@ -217,37 +191,13 @@ static void displaceModifier_do_task(void *__restrict userdata,
   float delta;
   float local_vec[3];
 
-  if (data->calc_weight_func) {
-    FnTupleCallBody body = FN_tuple_call_get(data->calc_weight_func);
-    BLI_assert(body);
-
-    FN_TUPLE_CALL_PREPARE_STACK(body, fn_in, fn_out);
-
-    FN_tuple_set_float3(fn_in, 0, vertexCos[iter]);
-    FN_tuple_set_int32(fn_in, 1, iter);
-
-    FN_tuple_call_invoke(body, fn_in, fn_out, __func__);
-
-    weight = FN_tuple_get_float(fn_out, 0);
-
-    FN_TUPLE_CALL_DESTRUCT_STACK(body, fn_in, fn_out);
-  }
-
-  if (weight == 0.0f) {
-    return;
+  if (dvert) {
+    weight = defvert_find_weight(dvert + iter, defgrp_index);
+    if (weight == 0.0f) {
+      return;
+    }
   }
 
-  // MDeformVert *dvert = data->dvert;
-  // int defgrp_index = data->defgrp_index;
-  // if (dvert) {
-  //  weight = defvert_find_weight(dvert + iter, defgrp_index);
-  //  if (weight == 0.0f) {
-  //      return;
-  //  }
-  // }
-
-  strength *= weight;
-
   if (data->tex_target) {
     texres.nor = NULL;
     BKE_texture_get_value_ex(
@@ -258,6 +208,10 @@ static void displaceModifier_do_task(void *__restrict userdata,
     delta = delta_fixed; /* (1.0f - dmd->midlevel) */ /* never changes */
   }
 
+  if (dvert) {
+    strength *= weight;
+  }
+
   delta *= strength;
   CLAMP(delta, -10000, 10000);
 
@@ -394,25 +348,15 @@ static void displaceModifier_do(DisplaceModifierData *dmd,
     data.pool = BKE_image_pool_new();
     BKE_texture_fetch_images_for_pool(tex_target, data.pool);
   }
-  data.calc_weight_func = getCurrentFunction(dmd);
-
-  TIMEIT_START(displace_timer);
-
   ParallelRangeSettings settings;
   BLI_parallel_range_settings_defaults(&settings);
   settings.use_threading = (numVerts > 512);
   BLI_task_parallel_range(0, numVerts, &data, displaceModifier_do_task, &settings);
 
-  TIMEIT_END(displace_timer);
-
   if (data.pool != NULL) {
     BKE_image_pool_free(data.pool);
   }
 
-  if (data.calc_weight_func != NULL) {
-    FN_function_free(data.calc_weight_func);
-  }
-
   if (tex_co) {
     MEM_freeN(tex_co);
   }



More information about the Bf-blender-cvs mailing list