[Bf-blender-cvs] [acf1c027cec] master: Subdiv: Cleanup, split function into smaller ones

Sergey Sharybin noreply at git.blender.org
Wed Sep 18 17:56:28 CEST 2019


Commit: acf1c027ceccf97c7d4dd7a8febb5a6b328dfa41
Author: Sergey Sharybin
Date:   Wed Sep 18 14:33:53 2019 +0200
Branches: master
https://developer.blender.org/rBacf1c027ceccf97c7d4dd7a8febb5a6b328dfa41

Subdiv: Cleanup, split function into smaller ones

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

M	source/blender/blenkernel/intern/subdiv_ccg.c

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

diff --git a/source/blender/blenkernel/intern/subdiv_ccg.c b/source/blender/blenkernel/intern/subdiv_ccg.c
index d346d4d6f8d..843e68108c3 100644
--- a/source/blender/blenkernel/intern/subdiv_ccg.c
+++ b/source/blender/blenkernel/intern/subdiv_ccg.c
@@ -169,11 +169,11 @@ typedef struct CCGEvalGridsData {
   SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator;
 } CCGEvalGridsData;
 
-static void subdiv_ccg_eval_grid_element(CCGEvalGridsData *data,
-                                         const int ptex_face_index,
-                                         const float u,
-                                         const float v,
-                                         unsigned char *element)
+static void subdiv_ccg_eval_grid_element_limit(CCGEvalGridsData *data,
+                                               const int ptex_face_index,
+                                               const float u,
+                                               const float v,
+                                               unsigned char *element)
 {
   Subdiv *subdiv = data->subdiv;
   SubdivCCG *subdiv_ccg = data->subdiv_ccg;
@@ -191,18 +191,37 @@ static void subdiv_ccg_eval_grid_element(CCGEvalGridsData *data,
   else {
     BKE_subdiv_eval_limit_point(subdiv, ptex_face_index, u, v, (float *)element);
   }
-  if (subdiv_ccg->has_mask) {
-    float *mask_value_ptr = (float *)(element + subdiv_ccg->mask_offset);
-    if (data->mask_evaluator != NULL) {
-      *mask_value_ptr = data->mask_evaluator->eval_mask(
-          data->mask_evaluator, ptex_face_index, u, v);
-    }
-    else {
-      *mask_value_ptr = 0.0f;
-    }
+}
+
+static void subdiv_ccg_eval_grid_element_mask(CCGEvalGridsData *data,
+                                              const int ptex_face_index,
+                                              const float u,
+                                              const float v,
+                                              unsigned char *element)
+{
+  SubdivCCG *subdiv_ccg = data->subdiv_ccg;
+  if (!subdiv_ccg->has_mask) {
+    return;
+  }
+  float *mask_value_ptr = (float *)(element + subdiv_ccg->mask_offset);
+  if (data->mask_evaluator != NULL) {
+    *mask_value_ptr = data->mask_evaluator->eval_mask(data->mask_evaluator, ptex_face_index, u, v);
+  }
+  else {
+    *mask_value_ptr = 0.0f;
   }
 }
 
+static void subdiv_ccg_eval_grid_element(CCGEvalGridsData *data,
+                                         const int ptex_face_index,
+                                         const float u,
+                                         const float v,
+                                         unsigned char *element)
+{
+  subdiv_ccg_eval_grid_element_limit(data, ptex_face_index, u, v, element);
+  subdiv_ccg_eval_grid_element_mask(data, ptex_face_index, u, v, element);
+}
+
 static void subdiv_ccg_eval_regular_grid(CCGEvalGridsData *data, const int face_index)
 {
   SubdivCCG *subdiv_ccg = data->subdiv_ccg;



More information about the Bf-blender-cvs mailing list