示例#1
0
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!");
		}
	}
}
示例#2
0
/* 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);
	}
}
示例#3
0
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);
}
示例#4
0
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;
}
示例#5
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);
	
}