[Bf-blender-cvs] [595d0339401] soc-2019-cycles-procedural: Refactor musgrave node

OmarSquircleArt noreply at git.blender.org
Thu Jul 4 21:32:30 CEST 2019


Commit: 595d03394010faab6a3429850b11703f2b0dd261
Author: OmarSquircleArt
Date:   Thu Jul 4 21:33:09 2019 +0200
Branches: soc-2019-cycles-procedural
https://developer.blender.org/rB595d03394010faab6a3429850b11703f2b0dd261

Refactor musgrave node

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

M	source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c

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

diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
index 932ba96933f..c6384310356 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
@@ -76,74 +76,50 @@ static int node_shader_gpu_tex_musgrave(GPUMaterial *mat,
   int dimensions = tex->dimensions;
   int type = tex->musgrave_type;
 
-  switch (dimensions) {
-    case 1: {
-      switch (type) {
-        case SHD_MUSGRAVE_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_multi_fractal_1d", in, out);
-        case SHD_MUSGRAVE_FBM:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_fBm_1d", in, out);
-        case SHD_MUSGRAVE_HYBRID_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hybrid_multi_fractal_1d", in, out);
-        case SHD_MUSGRAVE_RIDGED_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_ridged_multi_fractal_1d", in, out);
-        case SHD_MUSGRAVE_HETERO_TERRAIN:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hetero_terrain_1d", in, out);
-        default:
-          return 0;
-      }
-    }
-    case 2: {
-      switch (type) {
-        case SHD_MUSGRAVE_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_multi_fractal_2d", in, out);
-        case SHD_MUSGRAVE_FBM:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_fBm_2d", in, out);
-        case SHD_MUSGRAVE_HYBRID_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hybrid_multi_fractal_2d", in, out);
-        case SHD_MUSGRAVE_RIDGED_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_ridged_multi_fractal_2d", in, out);
-        case SHD_MUSGRAVE_HETERO_TERRAIN:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hetero_terrain_2d", in, out);
-        default:
-          return 0;
-      }
-    }
-    case 3: {
-      switch (type) {
-        case SHD_MUSGRAVE_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_multi_fractal_3d", in, out);
-        case SHD_MUSGRAVE_FBM:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_fBm_3d", in, out);
-        case SHD_MUSGRAVE_HYBRID_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hybrid_multi_fractal_3d", in, out);
-        case SHD_MUSGRAVE_RIDGED_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_ridged_multi_fractal_3d", in, out);
-        case SHD_MUSGRAVE_HETERO_TERRAIN:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hetero_terrain_3d", in, out);
-        default:
-          return 0;
-      }
-    }
-    case 4: {
-      switch (type) {
-        case SHD_MUSGRAVE_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_multi_fractal_4d", in, out);
-        case SHD_MUSGRAVE_FBM:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_fBm_4d", in, out);
-        case SHD_MUSGRAVE_HYBRID_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hybrid_multi_fractal_4d", in, out);
-        case SHD_MUSGRAVE_RIDGED_MULTIFRACTAL:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_ridged_multi_fractal_4d", in, out);
-        case SHD_MUSGRAVE_HETERO_TERRAIN:
-          return GPU_stack_link(mat, node, "node_tex_musgrave_hetero_terrain_4d", in, out);
-        default:
-          return 0;
-      }
-    }
-    default:
-      return 0;
-  }
+  static const char *names[][5] = {
+      [SHD_MUSGRAVE_MULTIFRACTAL] =
+          {
+              "",
+              "node_tex_musgrave_multi_fractal_1d",
+              "node_tex_musgrave_multi_fractal_2d",
+              "node_tex_musgrave_multi_fractal_3d",
+              "node_tex_musgrave_multi_fractal_4d",
+          },
+      [SHD_MUSGRAVE_FBM] =
+          {
+              "",
+              "node_tex_musgrave_fBm_1d",
+              "node_tex_musgrave_fBm_2d",
+              "node_tex_musgrave_fBm_3d",
+              "node_tex_musgrave_fBm_4d",
+          },
+      [SHD_MUSGRAVE_HYBRID_MULTIFRACTAL] =
+          {
+              "",
+              "node_tex_musgrave_hybrid_multi_fractal_1d",
+              "node_tex_musgrave_hybrid_multi_fractal_2d",
+              "node_tex_musgrave_hybrid_multi_fractal_3d",
+              "node_tex_musgrave_hybrid_multi_fractal_4d",
+          },
+      [SHD_MUSGRAVE_RIDGED_MULTIFRACTAL] =
+          {
+              "",
+              "node_tex_musgrave_ridged_multi_fractal_1d",
+              "node_tex_musgrave_ridged_multi_fractal_2d",
+              "node_tex_musgrave_ridged_multi_fractal_3d",
+              "node_tex_musgrave_ridged_multi_fractal_4d",
+          },
+      [SHD_MUSGRAVE_HETERO_TERRAIN] =
+          {
+              "",
+              "node_tex_musgrave_hetero_terrain_1d",
+              "node_tex_musgrave_hetero_terrain_2d",
+              "node_tex_musgrave_hetero_terrain_3d",
+              "node_tex_musgrave_hetero_terrain_4d",
+          },
+  };
+
+  return GPU_stack_link(mat, node, names[type][dimensions], in, out);
 }
 
 static void node_shader_update_tex_musgrave(bNodeTree *UNUSED(ntree), bNode *node)



More information about the Bf-blender-cvs mailing list