[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52631] trunk/blender/source/blender: Fix #33330: Proxies are not built in Sequencer if preview is visible
Sergey Sharybin
sergey.vfx at gmail.com
Wed Nov 28 10:36:26 CET 2012
Revision: 52631
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52631
Author: nazgul
Date: 2012-11-28 09:36:23 +0000 (Wed, 28 Nov 2012)
Log Message:
-----------
Fix #33330: Proxies are not built in Sequencer if preview is visible
Was own regression when was solving conflict between sequencer preview
and compositor jobs. Made it so now only compositor jobs are being
killed from sequencer preview.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/windowmanager/WM_api.h
trunk/blender/source/blender/windowmanager/intern/wm_jobs.c
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2012-11-28 09:10:27 UTC (rev 52630)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c 2012-11-28 09:36:23 UTC (rev 52631)
@@ -926,7 +926,7 @@
/* stop all running jobs, except screen one. currently previews frustrate Render
* needed to make so sequencer's rendering doesn't conflict with compositor
*/
- WM_jobs_kill_all_except(CTX_wm_manager(C), CTX_wm_screen(C));
+ WM_jobs_kill_type(CTX_wm_manager(C), WM_JOB_TYPE_COMPOSITE);
}
render_size = sseq->render_size;
Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h 2012-11-28 09:10:27 UTC (rev 52630)
+++ trunk/blender/source/blender/windowmanager/WM_api.h 2012-11-28 09:36:23 UTC (rev 52631)
@@ -360,8 +360,9 @@
void WM_jobs_stop(struct wmWindowManager *wm, void *owner, void *startjob);
void WM_jobs_kill(struct wmWindowManager *wm, void *owner, void (*)(void *, short int *, short int *, float *));
void WM_jobs_kill_all(struct wmWindowManager *wm);
- void WM_jobs_kill_all_except(struct wmWindowManager *wm, void *owner);
-
+void WM_jobs_kill_all_except(struct wmWindowManager *wm, void *owner);
+void WM_jobs_kill_type(struct wmWindowManager *wm, int job_type);
+
int WM_jobs_has_running(struct wmWindowManager *wm);
/* clipboard */
Modified: trunk/blender/source/blender/windowmanager/intern/wm_jobs.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_jobs.c 2012-11-28 09:10:27 UTC (rev 52630)
+++ trunk/blender/source/blender/windowmanager/intern/wm_jobs.c 2012-11-28 09:36:23 UTC (rev 52631)
@@ -416,6 +416,18 @@
}
+void WM_jobs_kill_type(struct wmWindowManager *wm, int job_type)
+{
+ wmJob *wm_job, *next_job;
+
+ for (wm_job = wm->jobs.first; wm_job; wm_job = next_job) {
+ next_job = wm_job->next;
+
+ if (wm_job->job_type == job_type)
+ wm_jobs_kill_job(wm, wm_job);
+ }
+}
+
/* signal job(s) from this owner or callback to stop, timer is required to get handled */
void WM_jobs_stop(wmWindowManager *wm, void *owner, void *startjob)
{
More information about the Bf-blender-cvs
mailing list