diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-10-08 10:09:28 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-10-08 10:41:05 +0300 |
commit | ac098007fb25b056f81336dfeef289d14a41dd43 (patch) | |
tree | ffc10b4bd0665e0578d2c717d8a5be8cce94c468 /source/blender/makesrna/intern/rna_nodetree.c | |
parent | 1d9de55949a4b1a79370c23e11ad59bffc5ae440 (diff) |
Cycles: Fix for point density always using render settings for modifiers
Diffstat (limited to 'source/blender/makesrna/intern/rna_nodetree.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 8ebc3f03608..9c93b8ee794 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -3019,7 +3019,11 @@ static int point_density_color_source_from_shader(NodeShaderTexPointDensity *sha /* TODO(sergey): This function assumes allocated array was passed, * works fine with Cycles via C++ RNA, but fails with call from python. */ -void rna_ShaderNodePointDensity_density_calc(bNode *self, Scene *scene, int *length, float **values) +void rna_ShaderNodePointDensity_density_calc(bNode *self, + Scene *scene, + int settings, + int *length, + float **values) { NodeShaderTexPointDensity *shader_point_density = self->storage; PointDensity pd; @@ -3051,6 +3055,7 @@ void rna_ShaderNodePointDensity_density_calc(bNode *self, Scene *scene, int *len /* Single-threaded sampling of the voxel domain. */ RE_sample_point_density(scene, &pd, shader_point_density->resolution, + settings == 1, *values); /* We're done, time to clean up. */ @@ -3934,6 +3939,13 @@ static void def_sh_tex_pointdensity(StructRNA *srna) {0, NULL, 0, NULL, NULL} }; + /* TODO(sergey): Use some mnemonic names for the hardcoded values here. */ + static EnumPropertyItem calc_mode_items[] = { + {0, "VIEWPORT", 0, "Viewport", "Canculate density using viewport settings"}, + {1, "RENDER", 0, "Render", "Canculate duplis using render settings"}, + {0, NULL, 0, NULL, NULL} + }; + prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "id"); RNA_def_property_struct_type(prop, "Object"); @@ -3986,6 +3998,7 @@ static void def_sh_tex_pointdensity(StructRNA *srna) func = RNA_def_function(srna, "calc_point_density", "rna_ShaderNodePointDensity_density_calc"); RNA_def_function_ui_description(func, "Calculate point density"); RNA_def_pointer(func, "scene", "Scene", "", ""); + RNA_def_enum(func, "settings", calc_mode_items, 1, "", "Calculate density for rendering"); /* TODO, See how array size of 0 works, this shouldnt be used. */ prop = RNA_def_float_array(func, "rgba_values", 1, NULL, 0, 0, "", "RGBA Values", 0, 0); RNA_def_property_flag(prop, PROP_DYNAMIC); |