diff options
Diffstat (limited to 'source/blender/editors/object/object_bake.c')
-rw-r--r-- | source/blender/editors/object/object_bake.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 9837fec2b1e..66a87d956f3 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -588,14 +588,15 @@ static int test_bake_internal(bContext *C, ReportList *reports) static void init_bake_internal(BakeRender *bkr, bContext *C) { + Main *bmain = CTX_data_main(C); Scene *scene = CTX_data_scene(C); bScreen *sc = CTX_wm_screen(C); /* get editmode results */ - ED_object_editmode_load(CTX_data_edit_object(C)); + ED_object_editmode_load(bmain, CTX_data_edit_object(C)); bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */ - bkr->main = CTX_data_main(C); + bkr->main = bmain; bkr->scene = scene; bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; bkr->re = RE_NewRender("_Bake View_"); @@ -628,7 +629,7 @@ static void finish_bake_internal(BakeRender *bkr) /* force OpenGL reload and mipmap recalc */ if ((bkr->scene->r.bake_flag & R_BAKE_VCOL) == 0) { - for (ima = G.main->image.first; ima; ima = ima->id.next) { + for (ima = bkr->main->image.first; ima; ima = ima->id.next) { ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL); /* some of the images could have been changed during bake, @@ -669,7 +670,7 @@ static void finish_bake_internal(BakeRender *bkr) /* update all tagged meshes */ Mesh *me; BLI_assert(BLI_thread_is_main()); - for (me = G.main->mesh.first; me; me = me->id.next) { + for (me = bkr->main->mesh.first; me; me = me->id.next) { if (me->id.tag & LIB_TAG_DOIT) { DAG_id_tag_update(&me->id, OB_RECALC_DATA); BKE_mesh_tessface_clear(me); |