Changeset View
Changeset View
Standalone View
Standalone View
source/blender/windowmanager/intern/wm_jobs.c
| Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | struct wmJob { | ||||
| * To prevent cpu overhead, use this one which only gets called when job really starts. | * To prevent cpu overhead, use this one which only gets called when job really starts. | ||||
| * Executed in main thread. | * Executed in main thread. | ||||
| */ | */ | ||||
| void (*initjob)(void *); | void (*initjob)(void *); | ||||
| /** | /** | ||||
| * This performs the actual parallel work. | * This performs the actual parallel work. | ||||
| * Executed in worker thread(s). | * Executed in worker thread(s). | ||||
| */ | */ | ||||
| void (*startjob)(void *, short *stop, short *do_update, float *progress); | wm_jobs_start_callback startjob; | ||||
| /** | /** | ||||
| * Called if thread defines so (see `do_update` flag), and max once per timer step. | * Called if thread defines so (see `do_update` flag), and max once per timer step. | ||||
| * Executed in main thread. | * Executed in main thread. | ||||
| */ | */ | ||||
| void (*update)(void *); | void (*update)(void *); | ||||
| /** | /** | ||||
| * Free callback (typically for customdata). | * Free callback (typically for customdata). | ||||
| * Executed in main thread. | * Executed in main thread. | ||||
| ▲ Show 20 Lines • Show All 275 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| void WM_jobs_delay_start(wmJob *wm_job, double delay_time) | void WM_jobs_delay_start(wmJob *wm_job, double delay_time) | ||||
| { | { | ||||
| wm_job->start_delay_time = delay_time; | wm_job->start_delay_time = delay_time; | ||||
| } | } | ||||
| void WM_jobs_callbacks(wmJob *wm_job, | void WM_jobs_callbacks(wmJob *wm_job, | ||||
| void (*startjob)(void *, short *, short *, float *), | wm_jobs_start_callback startjob, | ||||
| void (*initjob)(void *), | void (*initjob)(void *), | ||||
| void (*update)(void *), | void (*update)(void *), | ||||
| void (*endjob)(void *)) | void (*endjob)(void *)) | ||||
| { | { | ||||
| wm_job->startjob = startjob; | wm_job->startjob = startjob; | ||||
| wm_job->initjob = initjob; | wm_job->initjob = initjob; | ||||
| wm_job->update = update; | wm_job->update = update; | ||||
| wm_job->endjob = endjob; | wm_job->endjob = endjob; | ||||
| ▲ Show 20 Lines • Show All 351 Lines • Show Last 20 Lines | |||||