From 9b006d6d00c72de51b97e1b2c96b2df09db6b72b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 1 Aug 2010 20:36:24 +0000 Subject: Fix preview render crash after recent G.main changes. --- source/blender/editors/object/object_bake.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/object/object_bake.c') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 9f9d41147b6..6261c33a6f7 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -94,6 +94,7 @@ static ScrArea *biggest_image_area(bScreen *screen) typedef struct BakeRender { Render *re; + Main *main; Scene *scene; struct Object *actob; int tot, ready; @@ -139,6 +140,7 @@ static void init_bake_internal(BakeRender *bkr, bContext *C) Scene *scene= CTX_data_scene(C); bkr->sa= biggest_image_area(CTX_wm_screen(C)); /* can be NULL */ + bkr->main= CTX_data_main(C); bkr->scene= scene; bkr->actob= (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; bkr->re= RE_NewRender("_Bake View_"); @@ -196,6 +198,7 @@ static void bake_startjob(void *bkv, short *stop, short *do_update, float *progr { BakeRender *bkr= bkv; Scene *scene= bkr->scene; + Main *bmain= bkr->main; bkr->stop= stop; bkr->do_update= do_update; @@ -204,7 +207,7 @@ static void bake_startjob(void *bkv, short *stop, short *do_update, float *progr RE_test_break_cb(bkr->re, NULL, thread_break); G.afbreek= 0; /* blender_test_break uses this global */ - RE_Database_Baking(bkr->re, scene, scene->lay, scene->r.bake_mode, bkr->actob); + RE_Database_Baking(bkr->re, bmain, scene, scene->lay, scene->r.bake_mode, bkr->actob); /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ bkr->tot= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); @@ -284,6 +287,7 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *_eve static int bake_image_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); @@ -302,7 +306,7 @@ static int bake_image_exec(bContext *C, wmOperator *op) RE_test_break_cb(bkr.re, NULL, thread_break); G.afbreek= 0; /* blender_test_break uses this global */ - RE_Database_Baking(bkr.re, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); + RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); /* baking itself is threaded, cannot use test_break in threads */ BLI_init_threads(&threads, do_bake_render, 1); -- cgit v1.2.3