From c905415f6bf498ebf0351aae040ea52983a5b36e Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 24 Jan 2012 20:10:37 +0000 Subject: [PATCH 1/6] Cycles Node Editor: * Add Use Nodes button for World shader type * UI was not redrawing the Node area, when enabling "Use nodes", added check for it to the listener. --- intern/cycles/blender/addon/ui.py | 2 +- release/scripts/startup/bl_ui/space_node.py | 1 + source/blender/editors/space_node/space_node.c | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index f44c04e36f8..763cff0bd7d 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -241,7 +241,7 @@ class CyclesCamera_PT_dof(CyclesButtonsPanel, Panel): class Cycles_PT_context_material(CyclesButtonsPanel, Panel): - bl_label = "Surface" + bl_label = "" bl_context = "material" bl_options = {'HIDE_HEADER'} diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index e1a599dca2e..f875fab415f 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -61,6 +61,7 @@ class NODE_HT_header(Header): if snode.shader_type == 'WORLD': layout.template_ID(scene, "world", new="world.new") + layout.prop(snode_id, "use_nodes") elif snode.tree_type == 'TEXTURE': layout.prop(snode, "texture_type", text="", expand=True) diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 9d4c5705bd1..a00b1d1d2dc 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -214,6 +214,11 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_refresh(sa); } break; + case NC_WORLD: + if(type==NTREE_SHADER) { + ED_area_tag_refresh(sa); + } + break; case NC_OBJECT: if(type==NTREE_SHADER) { if(wmn->data==ND_OB_SHADING) From d888b19d9080c5d977105ffe4035c6280ab1d9af Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 24 Jan 2012 20:13:44 +0000 Subject: [PATCH 2/6] Fix compilation error caused by recent changes in file browser stuff --- source/blender/windowmanager/intern/wm_operators.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 4cf36de7f5f..faf2d3fd352 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2166,7 +2166,7 @@ static void WM_OT_collada_export(wmOperatorType *ot) ot->exec= wm_collada_export_exec; ot->poll= WM_operator_winactive; - WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); RNA_def_boolean(ot->srna, "selected", 0, "Export only selected", "Export only selected elements"); } @@ -2198,7 +2198,7 @@ static void WM_OT_collada_import(wmOperatorType *ot) ot->exec= wm_collada_import_exec; ot->poll= WM_operator_winactive; - WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH); + WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); } #endif From 8169ad0219c54edca8b9209b1320be44462e9ce9 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 24 Jan 2012 20:19:26 +0000 Subject: [PATCH 3/6] Improvement for last commit, only do redraw when actually needed (in world shader type) --- source/blender/editors/space_node/space_node.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index a00b1d1d2dc..493fb854585 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -169,6 +169,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) /* note, ED_area_tag_refresh will re-execute compositor */ SpaceNode *snode= sa->spacedata.first; int type= snode->treetype; + short shader_type = snode->shaderfrom; /* preview renders */ switch(wmn->category) { @@ -215,7 +216,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_WORLD: - if(type==NTREE_SHADER) { + if(type==NTREE_SHADER && shader_type==SNODE_SHADER_WORLD) { ED_area_tag_refresh(sa); } break; From 5cf9f8ab908ac4dab9b22e55ec760a8c574b51d3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Jan 2012 20:33:26 +0000 Subject: [PATCH 4/6] fix for memory leak when particles have 0 elements. --- source/blender/blenkernel/intern/particle_system.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 4afe9412786..5bb0ffbb76a 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1126,6 +1126,9 @@ static int distribute_threads_init_data(ParticleThread *threads, Scene *scene, D fprintf(stderr,"Particle distribution error: Nothing to emit from!\n"); if(dm != finaldm) dm->release(dm); + + BLI_kdtree_free(tree); + return 0; } From fb1fba1454765f746df93cffc2ec6e3e2d9ff3bc Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Tue, 24 Jan 2012 20:56:19 +0000 Subject: [PATCH 5/6] Node UI: * Make sure to check on snode_id, raised errors if no world datablock was active. --- release/scripts/startup/bl_ui/space_node.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index f875fab415f..d29dff49132 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -61,7 +61,8 @@ class NODE_HT_header(Header): if snode.shader_type == 'WORLD': layout.template_ID(scene, "world", new="world.new") - layout.prop(snode_id, "use_nodes") + if snode_id: + layout.prop(snode_id, "use_nodes") elif snode.tree_type == 'TEXTURE': layout.prop(snode, "texture_type", text="", expand=True) From 1aadbdedc748c1bc63b1ffa25793858a06c4ba21 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Jan 2012 22:15:25 +0000 Subject: [PATCH 6/6] found a bug by accident. - bugfix for setting string defaults in rna functions (incorrect pointer use and would copy past string length). - Object.dm_info was setting a default when it didnt need to. --- source/blender/makesrna/intern/rna_access.c | 2 +- source/blender/makesrna/intern/rna_object_api.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 4eebfc52920..7d366afd3ca 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -4746,7 +4746,7 @@ ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSE case PROP_STRING: { const char *defvalue= ((StringPropertyRNA*)parm)->defaultvalue; if(defvalue && defvalue[0]) - memcpy(data, &defvalue, size); + BLI_strncpy(data, defvalue, size); break; } case PROP_POINTER: diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 0246e22d928..188ccccbfc4 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -643,7 +643,7 @@ void RNA_api_object(StructRNA *srna) parm= RNA_def_enum(func, "type", mesh_dm_info_items, 0, "", "Modifier settings to apply"); RNA_def_property_flag(parm, PROP_REQUIRED); /* weak!, no way to return dynamic string type */ - parm= RNA_def_string(func, "result", "result", 16384, "result", ""); + parm= RNA_def_string(func, "result", "", 16384, "result", ""); RNA_def_property_flag(parm, PROP_THICK_WRAP); /* needed for string return value */ RNA_def_function_output(func, parm); #endif /* NDEBUG */