From f3cca3e1929a59ea8dbf715645bef4712a530ef5 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 1 Aug 2010 12:57:01 +0000 Subject: [PATCH] 2.5: more G.main changes. --- source/blender/blenkernel/BKE_scene.h | 18 ++++++++--------- source/blender/blenkernel/intern/blender.c | 2 +- source/blender/blenkernel/intern/scene.c | 20 +++++++++---------- source/blender/collada/DocumentImporter.cpp | 12 ++++++----- source/blender/editors/screen/screen_edit.c | 2 +- .../editors/space_view3d/view3d_view.c | 2 +- .../blender/render/intern/source/pipeline.c | 2 +- source/creator/creator.c | 2 +- 8 files changed, 31 insertions(+), 29 deletions(-) diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 878fca81378..96ef8d44cf4 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -31,16 +31,16 @@ #ifndef BKE_SCENE_H #define BKE_SCENE_H -struct bglMats; -struct Scene; -struct Object; -struct Base; -struct Text; struct AviCodecData; +struct Base; +struct bglMats; +struct Main; +struct Object; struct QuicktimeCodecData; struct RenderData; +struct Scene; +struct Text; struct Text; -struct Main; #define SCE_COPY_EMPTY 0 #define SCE_COPY_LINK_OB 1 @@ -57,8 +57,8 @@ void free_scene(struct Scene *sce); struct Scene *add_scene(char *name); struct Base *object_in_scene(struct Object *ob, struct Scene *sce); -void set_scene_bg(struct Scene *sce); -struct Scene *set_scene_name(char *name); +void set_scene_bg(struct Main *bmain, struct Scene *sce); +struct Scene *set_scene_name(struct Main *bmain, char *name); struct Scene *copy_scene(struct Main *bmain, struct Scene *sce, int type); void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce); @@ -78,7 +78,7 @@ void scene_deselect_all(struct Scene *sce); void scene_select_base(struct Scene *sce, struct Base *selbase); /* checks for cycle, returns 1 if it's all OK */ -int scene_check_setscene(struct Scene *sce); +int scene_check_setscene(struct Main *bmain, struct Scene *sce); float BKE_curframe(struct Scene *scene); diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 64d07db024b..1a1f3a724ca 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -313,7 +313,7 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, char *filename) BLI_strncpy(G.main->name, filename, FILE_MAX); /* is guaranteed current file */ /* baseflags, groups, make depsgraph, etc */ - set_scene_bg(CTX_data_scene(C)); + set_scene_bg(G.main, CTX_data_scene(C)); MEM_freeN(bfd); } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 811f8a81b06..48cef7e1bde 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -501,7 +501,7 @@ Base *object_in_scene(Object *ob, Scene *sce) return NULL; } -void set_scene_bg(Scene *scene) +void set_scene_bg(Main *bmain, Scene *scene) { Scene *sce; Base *base; @@ -511,18 +511,18 @@ void set_scene_bg(Scene *scene) int flag; /* check for cyclic sets, for reading old files but also for definite security (py?) */ - scene_check_setscene(scene); + scene_check_setscene(bmain, scene); /* can happen when switching modes in other scenes */ if(scene->obedit && !(scene->obedit->mode & OB_MODE_EDIT)) scene->obedit= NULL; /* deselect objects (for dataselect) */ - for(ob= G.main->object.first; ob; ob= ob->id.next) + for(ob= bmain->object.first; ob; ob= ob->id.next) ob->flag &= ~(SELECT|OB_FROMGROUP); /* group flags again */ - for(group= G.main->group.first; group; group= group->id.next) { + for(group= bmain->group.first; group; group= group->id.next) { go= group->gobject.first; while(go) { if(go->ob) go->ob->flag |= OB_FROMGROUP; @@ -531,12 +531,12 @@ void set_scene_bg(Scene *scene) } /* sort baselist */ - DAG_scene_sort(G.main, scene); + DAG_scene_sort(bmain, scene); /* ensure dags are built for sets */ for(sce= scene->set; sce; sce= sce->set) if(sce->theDag==NULL) - DAG_scene_sort(G.main, sce); + DAG_scene_sort(bmain, sce); /* copy layers and flags from bases to objects */ for(base= scene->base.first; base; base= base->next) { @@ -558,11 +558,11 @@ void set_scene_bg(Scene *scene) } /* called from creator.c */ -Scene *set_scene_name(char *name) +Scene *set_scene_name(Main *bmain, char *name) { Scene *sce= (Scene *)find_id("SC", name); if(sce) { - set_scene_bg(sce); + set_scene_bg(bmain, sce); printf("Scene switch: '%s' in file: '%s'\n", name, G.sce); return sce; } @@ -871,7 +871,7 @@ void scene_select_base(Scene *sce, Base *selbase) } /* checks for cycle, returns 1 if it's all OK */ -int scene_check_setscene(Scene *sce) +int scene_check_setscene(Main *bmain, Scene *sce) { Scene *scene; int a, totscene; @@ -879,7 +879,7 @@ int scene_check_setscene(Scene *sce) if(sce->set==NULL) return 1; totscene= 0; - for(scene= G.main->scene.first; scene; scene= scene->id.next) + for(scene= bmain->scene.first; scene; scene= scene->id.next) totscene++; for(a=0, scene=sce; scene->set; scene=scene->set, a++) { diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp index a415b90ff08..2f1568f7fda 100644 --- a/source/blender/collada/DocumentImporter.cpp +++ b/source/blender/collada/DocumentImporter.cpp @@ -216,6 +216,7 @@ static int set_parent(Object *ob, Object *par, bContext *C, bool is_parent_space return false; Object workob; + Main *bmain = CTX_data_main(C); Scene *sce = CTX_data_scene(C); ob->parent = par; @@ -243,8 +244,8 @@ static int set_parent(Object *ob, Object *par, bContext *C, bool is_parent_space ob->recalc |= OB_RECALC_OB | OB_RECALC_DATA; par->recalc |= OB_RECALC_OB; - DAG_scene_sort(sce); - DAG_ids_flush_update(0); + DAG_scene_sort(bmain, sce); + DAG_ids_flush_update(bmain, 0); WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); return true; @@ -611,6 +612,7 @@ private: void link_armature(bContext *C, Object *ob, std::map& joint_by_uid, TransformReader *tm) { + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); ModifierData *md = ED_object_modifier_add(NULL, scene, ob, NULL, eModifierType_Armature); @@ -630,8 +632,8 @@ private: ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA; - DAG_scene_sort(scene); - DAG_ids_flush_update(0); + DAG_scene_sort(bmain, scene); + DAG_ids_flush_update(bmain, 0); WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); #endif @@ -3132,7 +3134,7 @@ public: where_is_object(scene, job); // after parenting and layer change - DAG_scene_sort(scene); + DAG_scene_sort(CTX_data_main(C), scene); joint_objects[node->getUniqueId()] = job; } diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 78ec4fe3a01..8cee4a24dcc 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1426,7 +1426,7 @@ void ED_screen_set_scene(bContext *C, Scene *scene) } CTX_data_scene_set(C, scene); - set_scene_bg(scene); + set_scene_bg(CTX_data_main(C), scene); ED_update_for_newframe(C, 1); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 4de6a270245..5e00d17cfab 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -1805,7 +1805,7 @@ static int game_engine_exec(bContext *C, wmOperator *op) RestoreState(C); //XXX restore_all_scene_cfra(scene_cfra_store); - set_scene_bg(startscene); + set_scene_bg(CTX_data_main(C), startscene); //XXX scene_update_for_newframe(bmain, scene, scene->lay); ED_area_tag_redraw(CTX_wm_area(C)); diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 0db1bdc9abd..dbb117d3542 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2146,7 +2146,7 @@ static void render_scene(Render *re, Scene *sce, int cfra) resc->lay= sce->lay; /* ensure scene has depsgraph, base flags etc OK */ - set_scene_bg(sce); + set_scene_bg(re->main, sce); /* copy callbacks */ resc->display_draw= re->display_draw; diff --git a/source/creator/creator.c b/source/creator/creator.c index 132c42720f7..415f1064dbb 100644 --- a/source/creator/creator.c +++ b/source/creator/creator.c @@ -734,7 +734,7 @@ static int set_scene(int argc, char **argv, void *data) { if(argc > 1) { bContext *C= data; - Scene *sce= set_scene_name(argv[1]); + Scene *sce= set_scene_name(CTX_data_main(C), argv[1]); if(sce) { CTX_data_scene_set(C, sce); }