diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-29 17:00:43 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-06-29 17:01:28 +0300 |
commit | f566212aa23750ff6d74f450a699182954a2c6b8 (patch) | |
tree | 53c5ee5dc05a45eaf33b66dcbba97e95bbd830a9 /source/blender/editors/render/render_preview.c | |
parent | 1044a3b657a469c82559d249103e361e5a34dfed (diff) |
Fix T66230: delay in the material preview panel after recent changes
Diffstat (limited to 'source/blender/editors/render/render_preview.c')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 35130988aba..c6b1acfbd94 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -1208,19 +1208,13 @@ static void icon_preview_startjob_all_sizes(void *customdata, IconPreview *ip = (IconPreview *)customdata; IconPreviewSize *cur_size; - /* Wait 2s to start rendering icon previews, to not bog down user interaction. - * Particularly important for heavy scenes and Eevee using OpenGL that blocks - * the user interface drawing. */ - for (int i = 0; i < 20; i++) { - PIL_sleep_ms(100); - if (*stop) { - return; - } - } - for (cur_size = ip->sizes.first; cur_size; cur_size = cur_size->next) { PreviewImage *prv = ip->owner; + if (*stop) { + break; + } + if (prv->tag & PRV_TAG_DEFFERED_DELETE) { /* Non-thread-protected reading is not an issue here. */ continue; @@ -1265,10 +1259,6 @@ static void icon_preview_startjob_all_sizes(void *customdata, common_preview_startjob(sp, stop, do_update, progress); shader_preview_free(sp); - - if (*stop) { - break; - } } } @@ -1395,7 +1385,10 @@ void ED_preview_icon_job( /* setup job */ WM_jobs_customdata_set(wm_job, ip, icon_preview_free); - WM_jobs_timer(wm_job, 0.1, NC_WINDOW, NC_WINDOW); + /* Wait 2s to start rendering icon previews, to not bog down user interaction. + * Particularly important for heavy scenes and Eevee using OpenGL that blocks + * the user interface drawing. */ + WM_jobs_timer(wm_job, 2.0, NC_WINDOW, NC_WINDOW); WM_jobs_callbacks(wm_job, icon_preview_startjob_all_sizes, NULL, NULL, icon_preview_endjob); WM_jobs_start(CTX_wm_manager(C), wm_job); |