Commit: 2a2bf3c1ab1f9f844a66d1f5f69232d64e16d678
Author: Campbell Barton
Date:   Thu Mar 19 14:33:05 2015 +1100
Branches: master
https://developer.blender.org/rB2a2bf3c1ab1f9f844a66d1f5f69232d64e16d678

Freestyle: pass Main struct to new/copy

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

M       source/blender/blenkernel/BKE_freestyle.h
M       source/blender/blenkernel/BKE_linestyle.h
M       source/blender/blenkernel/intern/freestyle.c
M       source/blender/blenkernel/intern/library.c
M       source/blender/blenkernel/intern/linestyle.c
M       source/blender/editors/render/render_shading.c
M       source/blender/makesrna/intern/rna_main_api.c
M       source/blender/makesrna/intern/rna_scene.c

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

diff --git a/source/blender/blenkernel/BKE_freestyle.h 
b/source/blender/blenkernel/BKE_freestyle.h
index bb909e4..e105946 100644
--- a/source/blender/blenkernel/BKE_freestyle.h
+++ b/source/blender/blenkernel/BKE_freestyle.h
@@ -41,6 +41,7 @@ extern "C" {
 struct FreestyleConfig;
 struct FreestyleLineSet;
 struct FreestyleModuleConfig;
+struct Main;
 
 /* RNA aliases */
 typedef struct FreestyleSettings FreestyleSettings;
@@ -58,7 +59,7 @@ bool BKE_freestyle_module_move_up(FreestyleConfig *config, 
FreestyleModuleConfig
 bool BKE_freestyle_module_move_down(FreestyleConfig *config, 
FreestyleModuleConfig *module_conf);
 
 /* FreestyleConfig.linesets */
-FreestyleLineSet *BKE_freestyle_lineset_add(FreestyleConfig *config, const 
char *name);
+FreestyleLineSet *BKE_freestyle_lineset_add(struct Main *bmain, 
FreestyleConfig *config, const char *name);
 bool BKE_freestyle_lineset_delete(FreestyleConfig *config, FreestyleLineSet 
*lineset);
 FreestyleLineSet *BKE_freestyle_lineset_get_active(FreestyleConfig *config);
 short BKE_freestyle_lineset_get_active_index(FreestyleConfig *config);
diff --git a/source/blender/blenkernel/BKE_linestyle.h 
b/source/blender/blenkernel/BKE_linestyle.h
index ae10ba4..e77b4f5 100644
--- a/source/blender/blenkernel/BKE_linestyle.h
+++ b/source/blender/blenkernel/BKE_linestyle.h
@@ -49,9 +49,9 @@ struct Object;
 struct ColorBand;
 struct bContext;
 
-FreestyleLineStyle *BKE_linestyle_new(const char *name, struct Main *main);
+FreestyleLineStyle *BKE_linestyle_new(struct Main *bmain, const char *name);
 void                BKE_linestyle_free(FreestyleLineStyle *linestyle);
-FreestyleLineStyle *BKE_linestyle_copy(FreestyleLineStyle *linestyle);
+FreestyleLineStyle *BKE_linestyle_copy(struct Main *bmain, FreestyleLineStyle 
*linestyle);
 
 FreestyleLineStyle *BKE_linestyle_active_from_scene(struct Scene *scene);
 
diff --git a/source/blender/blenkernel/intern/freestyle.c 
b/source/blender/blenkernel/intern/freestyle.c
index cc9ad63..f6c4263 100644
--- a/source/blender/blenkernel/intern/freestyle.c
+++ b/source/blender/blenkernel/intern/freestyle.c
@@ -179,7 +179,7 @@ static FreestyleLineSet *alloc_lineset(void)
        return (FreestyleLineSet *)MEM_callocN(sizeof(FreestyleLineSet), 
"Freestyle line set");
 }
 
-FreestyleLineSet *BKE_freestyle_lineset_add(FreestyleConfig *config, const 
char *name)
+FreestyleLineSet *BKE_freestyle_lineset_add(struct Main *bmain, 
FreestyleConfig *config, const char *name)
 {
        int lineset_index = BLI_listbase_count(&config->linesets);
 
@@ -187,7 +187,7 @@ FreestyleLineSet *BKE_freestyle_lineset_add(FreestyleConfig 
*config, const char
        BLI_addtail(&config->linesets, (void *)lineset);
        BKE_freestyle_lineset_set_active_index(config, lineset_index);
 
-       lineset->linestyle = BKE_linestyle_new("LineStyle", NULL);
+       lineset->linestyle = BKE_linestyle_new(bmain, "LineStyle");
        lineset->flags |= FREESTYLE_LINESET_ENABLED;
        lineset->selection = FREESTYLE_SEL_VISIBILITY | 
FREESTYLE_SEL_EDGE_TYPES | FREESTYLE_SEL_IMAGE_BORDER;
        lineset->qi = FREESTYLE_QI_VISIBLE;
diff --git a/source/blender/blenkernel/intern/library.c 
b/source/blender/blenkernel/intern/library.c
index c602067..9cda4d9 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -384,7 +384,7 @@ bool id_copy(ID *id, ID **newid, bool test)
                        if (!test) *newid = (ID *)BKE_mask_copy((Mask *)id);
                        return true;
                case ID_LS:
-                       if (!test) *newid = (ID 
*)BKE_linestyle_copy((FreestyleLineStyle *)id);
+                       if (!test) *newid = (ID *)BKE_linestyle_copy(G.main, 
(FreestyleLineStyle *)id);
                        return true;
        }
        
diff --git a/source/blender/blenkernel/intern/linestyle.c 
b/source/blender/blenkernel/intern/linestyle.c
index b97bf0e..28b7ced 100644
--- a/source/blender/blenkernel/intern/linestyle.c
+++ b/source/blender/blenkernel/intern/linestyle.c
@@ -107,14 +107,11 @@ static void default_linestyle_settings(FreestyleLineStyle 
*linestyle)
        linestyle->caps = LS_CAPS_BUTT;
 }
 
-FreestyleLineStyle *BKE_linestyle_new(const char *name, struct Main *main)
+FreestyleLineStyle *BKE_linestyle_new(struct Main *bmain, const char *name)
 {
        FreestyleLineStyle *linestyle;
 
-       if (!main)
-               main = G.main;
-
-       linestyle = (FreestyleLineStyle *)BKE_libblock_alloc(main, ID_LS, name);
+       linestyle = (FreestyleLineStyle *)BKE_libblock_alloc(bmain, ID_LS, 
name);
 
        default_linestyle_settings(linestyle);
 
@@ -149,13 +146,13 @@ void BKE_linestyle_free(FreestyleLineStyle *linestyle)
                BKE_linestyle_geometry_modifier_remove(linestyle, m);
 }
 
-FreestyleLineStyle *BKE_linestyle_copy(FreestyleLineStyle *linestyle)
+FreestyleLineStyle *BKE_linestyle_copy(struct Main *bmain, FreestyleLineStyle 
*linestyle)
 {
        FreestyleLineStyle *new_linestyle;
        LineStyleModifier *m;
        int a;
 
-       new_linestyle = BKE_linestyle_new(linestyle->id.name + 2, NULL);
+       new_linestyle = BKE_linestyle_new(bmain, linestyle->id.name + 2);
        BKE_linestyle_free(new_linestyle);
 
        for (a = 0; a < MAX_MTEX; a++) {
diff --git a/source/blender/editors/render/render_shading.c 
b/source/blender/editors/render/render_shading.c
index ff90f48..75b8b8c 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -731,10 +731,11 @@ void SCENE_OT_freestyle_module_move(wmOperatorType *ot)
 
 static int freestyle_lineset_add_exec(bContext *C, wmOperator *UNUSED(op))
 {
+       Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
        SceneRenderLayer *srl = BLI_findlink(&scene->r.layers, scene->r.actlay);
 
-       BKE_freestyle_lineset_add(&srl->freestyleConfig, NULL);
+       BKE_freestyle_lineset_add(bmain, &srl->freestyleConfig, NULL);
 
        DAG_id_tag_update(&scene->id, 0);
        WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS, scene);
@@ -893,6 +894,7 @@ void SCENE_OT_freestyle_lineset_move(wmOperatorType *ot)
 
 static int freestyle_linestyle_new_exec(bContext *C, wmOperator *op)
 {
+       Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
        SceneRenderLayer *srl = BLI_findlink(&scene->r.layers, scene->r.actlay);
        FreestyleLineSet *lineset = 
BKE_freestyle_lineset_get_active(&srl->freestyleConfig);
@@ -903,10 +905,10 @@ static int freestyle_linestyle_new_exec(bContext *C, 
wmOperator *op)
        }
        if (lineset->linestyle) {
                lineset->linestyle->id.us--;
-               lineset->linestyle = BKE_linestyle_copy(lineset->linestyle);
+               lineset->linestyle = BKE_linestyle_copy(bmain, 
lineset->linestyle);
        }
        else {
-               lineset->linestyle = BKE_linestyle_new("LineStyle", NULL);
+               lineset->linestyle = BKE_linestyle_new(bmain, "LineStyle");
        }
        DAG_id_tag_update(&lineset->linestyle->id, 0);
        WM_event_add_notifier(C, NC_LINESTYLE, lineset->linestyle);
diff --git a/source/blender/makesrna/intern/rna_main_api.c 
b/source/blender/makesrna/intern/rna_main_api.c
index ed8b85f..ed28b0b1 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -705,7 +705,7 @@ static void rna_Main_grease_pencil_remove(Main *bmain, 
ReportList *reports, Poin
 
 static FreestyleLineStyle *rna_Main_linestyles_new(Main *bmain, const char 
*name)
 {
-       FreestyleLineStyle *linestyle = BKE_linestyle_new(name, bmain);
+       FreestyleLineStyle *linestyle = BKE_linestyle_new(bmain, name);
        id_us_min(&linestyle->id);
        return linestyle;
 }
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index 3e7ffcd..629fbbf 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1636,10 +1636,10 @@ static void 
rna_FreestyleLineSet_linestyle_set(PointerRNA *ptr, PointerRNA value
        lineset->linestyle->id.us++;
 }
 
-static FreestyleLineSet *rna_FreestyleSettings_lineset_add(ID *id, 
FreestyleSettings *config, const char *name)
+static FreestyleLineSet *rna_FreestyleSettings_lineset_add(ID *id, 
FreestyleSettings *config, Main *bmain, const char *name)
 {
        Scene *scene = (Scene *)id;
-       FreestyleLineSet *lineset = BKE_freestyle_lineset_add((FreestyleConfig 
*)config, name);
+       FreestyleLineSet *lineset = BKE_freestyle_lineset_add(bmain, 
(FreestyleConfig *)config, name);
 
        DAG_id_tag_update(&scene->id, 0);
        WM_main_add_notifier(NC_SCENE | ND_RENDER_OPTIONS, NULL);
@@ -2841,7 +2841,7 @@ static void rna_def_freestyle_linesets(BlenderRNA *brna, 
PropertyRNA *cprop)
 
        func = RNA_def_function(srna, "new", 
"rna_FreestyleSettings_lineset_add");
        RNA_def_function_ui_description(func, "Add a line set to scene render 
layer Freestyle settings");
-       RNA_def_function_flag(func, FUNC_USE_SELF_ID);
+       RNA_def_function_flag(func, FUNC_USE_MAIN | FUNC_USE_SELF_ID);
        parm = RNA_def_string(func, "name", "LineSet", 0, "", "New name for the 
line set (not unique)");
        RNA_def_property_flag(parm, PROP_REQUIRED);
        parm = RNA_def_pointer(func, "lineset", "FreestyleLineSet", "", "Newly 
created line set");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to