Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-07-01 16:23:42 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-07-01 16:36:02 +0300
commit2698544db2a19436155191608e4ef13c001b8209 (patch)
tree2d369a6ac5610fef85f2cabe94029b3699913acb /source/blender/editors/render/render_internal.c
parent3c6260d42de007c223c4bdb1bc8ed5431f2f2963 (diff)
Fix T66262: slow preview icon loading
Diffstat (limited to 'source/blender/editors/render/render_internal.c')
-rw-r--r--source/blender/editors/render/render_internal.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 352593a15ad..9ac93f07300 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -914,7 +914,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
wmJob *wm_job;
RenderJob *rj;
Image *ima;
- int jobflag;
const bool is_animation = RNA_boolean_get(op->ptr, "animation");
const bool is_write_still = RNA_boolean_get(op->ptr, "write_still");
const bool use_viewport = RNA_boolean_get(op->ptr, "use_viewport");
@@ -973,12 +972,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
/* ensure at least 1 area shows result */
sa = render_view_open(C, event->x, event->y, op->reports);
- jobflag = WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS;
-
- if (RNA_struct_property_is_set(op->ptr, "layer")) {
- jobflag |= WM_JOB_SUSPEND;
- }
-
/* job custom data */
rj = MEM_callocN(sizeof(RenderJob), "render job");
rj->main = bmain;
@@ -1038,12 +1031,20 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
name = "Render";
}
- wm_job = WM_jobs_get(
- CTX_wm_manager(C), CTX_wm_window(C), scene, name, jobflag, WM_JOB_TYPE_RENDER);
+ wm_job = WM_jobs_get(CTX_wm_manager(C),
+ CTX_wm_window(C),
+ scene,
+ name,
+ WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS,
+ WM_JOB_TYPE_RENDER);
WM_jobs_customdata_set(wm_job, rj, render_freejob);
WM_jobs_timer(wm_job, 0.2, NC_SCENE | ND_RENDER_RESULT, 0);
WM_jobs_callbacks(wm_job, render_startjob, NULL, NULL, render_endjob);
+ if (RNA_struct_property_is_set(op->ptr, "layer")) {
+ WM_jobs_delay_start(wm_job, 0.2);
+ }
+
/* get a render result image, and make sure it is empty */
ima = BKE_image_verify_viewer(bmain, IMA_TYPE_R_RESULT, "Render Result");
BKE_image_signal(rj->main, ima, NULL, IMA_SIGNAL_FREE);