[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