示例#1
0
static void fluidbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
{
	FluidBakeJob *fb= (FluidBakeJob *)customdata;
	
	fb->stop= stop;
	fb->do_update = do_update;
	fb->progress = progress;
	
	G.is_break = false;  /* XXX shared with render - replace with job 'stop' switch */
	
	elbeemSimulate();
	*do_update = true;
	*stop = 0;
}
示例#2
0
// run simulation in seperate thread
static void *fluidsimSimulateThread(void *unused) { // *ptr) {
	//char* fnameCfgPath = (char*)(ptr);
	int ret=0;
	
	ret = elbeemSimulate();
	BLI_lock_thread(LOCK_CUSTOM1);
	if(globalBakeState==0) {
		if(ret==0) {
			// if no error, set to normal exit
			globalBakeState = 1;
		} else {
			// simulation failed, display error
			globalBakeState = -2;
		}
	}
	BLI_unlock_thread(LOCK_CUSTOM1);
	return NULL;
}