Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_bake.c
| Show First 20 Lines • Show All 696 Lines • ▼ Show 20 Lines | static void bake_startjob(void *bkv, short *stop, short *do_update, float *progress) | ||||
| bkr->stop = stop; | bkr->stop = stop; | ||||
| bkr->do_update = do_update; | bkr->do_update = do_update; | ||||
| bkr->progress = progress; | bkr->progress = progress; | ||||
| RE_test_break_cb(bkr->re, NULL, thread_break); | RE_test_break_cb(bkr->re, NULL, thread_break); | ||||
| G.is_break = false; /* BKE_blender_test_break uses this global */ | G.is_break = false; /* BKE_blender_test_break uses this global */ | ||||
| RE_Database_Baking(bkr->re, bmain, scene, scene->lay, scene->r.bake_mode, bkr->actob); | RE_Database_Baking(bkr->re, bmain, scene, scene->r.bake_mode, bkr->actob); | ||||
| /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ | /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ | ||||
| bkr->result = RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); | bkr->result = RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); | ||||
| } | } | ||||
| static void bake_update(void *bkv) | static void bake_update(void *bkv) | ||||
| { | { | ||||
| BakeRender *bkr = bkv; | BakeRender *bkr = bkv; | ||||
| ▲ Show 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | else { | ||||
| BakeRender bkr = {NULL}; | BakeRender bkr = {NULL}; | ||||
| init_bake_internal(&bkr, C); | init_bake_internal(&bkr, C); | ||||
| bkr.reports = op->reports; | bkr.reports = op->reports; | ||||
| RE_test_break_cb(bkr.re, NULL, thread_break); | RE_test_break_cb(bkr.re, NULL, thread_break); | ||||
| G.is_break = false; /* BKE_blender_test_break uses this global */ | G.is_break = false; /* BKE_blender_test_break uses this global */ | ||||
| RE_Database_Baking(bkr.re, bmain, 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->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL); | ||||
| /* baking itself is threaded, cannot use test_break in threads */ | /* baking itself is threaded, cannot use test_break in threads */ | ||||
| BLI_init_threads(&threads, do_bake_render, 1); | BLI_init_threads(&threads, do_bake_render, 1); | ||||
| bkr.ready = 0; | bkr.ready = 0; | ||||
| BLI_insert_thread(&threads, &bkr); | BLI_insert_thread(&threads, &bkr); | ||||
| while (bkr.ready == 0) { | while (bkr.ready == 0) { | ||||
| PIL_sleep_ms(50); | PIL_sleep_ms(50); | ||||
| Show All 38 Lines | |||||