Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-08-29 11:58:36 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-29 11:58:36 +0400
commit78ded61065848bf50a31a51ed4b20207ef56bf65 (patch)
tree33b6a029f8ced24b08c5a9ec0ecdadc824356614 /source/blender/nodes
parenta3d4b98a30a8c24ce284027a3a8771f106a114e1 (diff)
texture curves were not initialized (causing crash), own regression from moving curve initialization outside evaluation.
Diffstat (limited to 'source/blender/nodes')
-rw-r--r--source/blender/nodes/intern/node_util.c6
-rw-r--r--source/blender/nodes/intern/node_util.h1
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_curves.c10
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_curves.c2
4 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c
index 8f9214fa1b2..27258c45fe5 100644
--- a/source/blender/nodes/intern/node_util.c
+++ b/source/blender/nodes/intern/node_util.c
@@ -73,6 +73,12 @@ void node_copy_standard_storage(bNode *orig_node, bNode *new_node)
new_node->storage= MEM_dupallocN(orig_node->storage);
}
+void *node_initexec_curves(bNode *node)
+{
+ curvemapping_initialize(node->storage);
+ return NULL; /* unused return */
+}
+
/**** Labels ****/
const char *node_blend_label(bNode *node)
diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h
index 6f167e35262..9f9caef14e2 100644
--- a/source/blender/nodes/intern/node_util.h
+++ b/source/blender/nodes/intern/node_util.h
@@ -53,6 +53,7 @@ extern void node_free_standard_storage(struct bNode *node);
extern void node_copy_curves(struct bNode *orig_node, struct bNode *new_node);
extern void node_copy_standard_storage(struct bNode *orig_node, struct bNode *new_node);
+extern void *node_initexec_curves(struct bNode *node);
/**** Labels ****/
diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.c b/source/blender/nodes/shader/nodes/node_shader_curves.c
index 8831b07d8a0..83cb1d33628 100644
--- a/source/blender/nodes/shader/nodes/node_shader_curves.c
+++ b/source/blender/nodes/shader/nodes/node_shader_curves.c
@@ -45,12 +45,6 @@ static bNodeSocketTemplate sh_node_curve_vec_out[]= {
{ -1, 0, "" }
};
-static void *node_shader_initexec_curve(bNode *node)
-{
- curvemapping_initialize(node->storage);
- return NULL; /* unused return */
-}
-
static void node_shader_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
float vec[3];
@@ -86,7 +80,7 @@ void register_node_type_sh_curve_vec(bNodeTreeType *ttype)
node_type_init(&ntype, node_shader_init_curve_vec);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, node_shader_exec_curve_vec);
- node_type_exec_new(&ntype, node_shader_initexec_curve, NULL, NULL); /* only for its initexec func */
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
node_type_gpu(&ntype, gpu_shader_curve_vec);
nodeRegisterType(ttype, &ntype);
@@ -144,7 +138,7 @@ void register_node_type_sh_curve_rgb(bNodeTreeType *ttype)
node_type_init(&ntype, node_shader_init_curve_rgb);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, node_shader_exec_curve_rgb);
- node_type_exec_new(&ntype, node_shader_initexec_curve, NULL, NULL); /* only for its initexec func */
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
node_type_gpu(&ntype, gpu_shader_curve_rgb);
nodeRegisterType(ttype, &ntype);
diff --git a/source/blender/nodes/texture/nodes/node_texture_curves.c b/source/blender/nodes/texture/nodes/node_texture_curves.c
index 543b39ec75e..6ccb5e1e83f 100644
--- a/source/blender/nodes/texture/nodes/node_texture_curves.c
+++ b/source/blender/nodes/texture/nodes/node_texture_curves.c
@@ -77,6 +77,7 @@ void register_node_type_tex_curve_time(bNodeTreeType *ttype)
node_type_init(&ntype, time_init);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, time_exec);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
nodeRegisterType(ttype, &ntype);
}
@@ -121,6 +122,7 @@ void register_node_type_tex_curve_rgb(bNodeTreeType *ttype)
node_type_init(&ntype, rgb_init);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, rgb_exec);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
nodeRegisterType(ttype, &ntype);
}