diff options
author | Matt Ebb <matt@mke3.net> | 2010-01-05 04:59:37 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-01-05 04:59:37 +0300 |
commit | 0b4627c5d66e7676ade8861086c04e37ab058f67 (patch) | |
tree | 6738eea911b0e792d444d98329e5285eedd5396a /source/blender/editors/render | |
parent | 665011e4103d10c205aaf459ca168a20c2410448 (diff) |
More specific notifiers for preview render jobs
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 74e1cca5579..1e0393479b0 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1094,6 +1094,20 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat } } +static int preview_notifier_id(ShaderPreview *sp) +{ + switch (GS(sp->id)) { + case ID_MA: + return NC_MATERIAL; + case ID_TE: + return NC_TEXTURE; + case ID_WO: + return NC_WORLD; + case ID_LA: + return NC_LAMP; + } +} + /* use same function for icon & shader, so the job manager does not run two of them at the same time. */ @@ -1128,7 +1142,7 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); + WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL); WM_jobs_start(CTX_wm_manager(C), steve); @@ -1154,7 +1168,7 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M /* setup job */ WM_jobs_customdata(steve, sp, shader_preview_free); - WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL); + WM_jobs_timer(steve, 0.1, preview_notifier_id(sp), preview_notifier_id(sp)); WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob); WM_jobs_start(CTX_wm_manager(C), steve); |