static void dpaint_bake_endjob(void *customdata) { DynamicPaintBakeJob *job = customdata; DynamicPaintCanvasSettings *canvas = job->canvas; canvas->flags &= ~MOD_DPAINT_BAKING; dynamicPaint_freeSurfaceData(job->surface); G.is_rendering = false; BKE_spacedata_draw_locks(false); WM_set_locked_interface(G.main->wm.first, false); /* Bake was successful: * Report for ended bake and how long it took */ if (job->success) { /* Show bake info */ WM_reportf(RPT_INFO, "DynamicPaint: Bake complete! (%.2f)", PIL_check_seconds_timer() - job->start); } else { if (strlen(canvas->error)) { /* If an error occurred */ WM_reportf(RPT_ERROR, "DynamicPaint: Bake failed: %s", canvas->error); } else { /* User canceled the bake */ WM_report(RPT_WARNING, "Baking canceled!"); } } }
/* maybe need a way to get job send notifer? */ static void render_drawlock(void *rjv, int lock) { RenderJob *rj = rjv; /* If interface is locked, renderer callback shall do nothing. */ if (!rj->interface_locked) { BKE_spacedata_draw_locks(lock); } }
static void ptcache_job_endjob(void *customdata) { PointCacheJob *job = customdata; Scene *scene = job->baker->scene; G.is_rendering = false; BKE_spacedata_draw_locks(false); WM_set_locked_interface(G.main->wm.first, false); WM_main_add_notifier(NC_SCENE | ND_FRAME, scene); WM_main_add_notifier(NC_OBJECT | ND_POINTCACHE, job->baker->pid.ob); }
static void ptcache_job_startjob(void *customdata, short *stop, short *do_update, float *progress) { PointCacheJob *job = customdata; job->stop = stop; job->do_update = do_update; job->progress = progress; G.is_break = false; /* XXX annoying hack: needed to prevent data corruption when changing * scene frame in separate threads */ G.is_rendering = true; BKE_spacedata_draw_locks(true); BKE_ptcache_bake(job->baker); *do_update = true; *stop = 0; }
static void dpaint_bake_startjob(void *customdata, short *stop, short *do_update, float *progress) { DynamicPaintBakeJob *job = customdata; job->stop = stop; job->do_update = do_update; job->progress = progress; job->start = PIL_check_seconds_timer(); job->success = 1; G.is_break = false; /* reset BKE_blender_test_break*/ /* XXX annoying hack: needed to prevent data corruption when changing * scene frame in separate threads */ G.is_rendering = true; BKE_spacedata_draw_locks(true); dynamicPaint_bakeImageSequence(job); *do_update = true; *stop = 0; }
/* maybe need a way to get job send notifer? */ static void render_drawlock(void *UNUSED(rjv), int lock) { BKE_spacedata_draw_locks(lock); }