[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52629] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: Fix #33295: Shifted movie strip when rendering < 100% resolution for strip with complex transform

Sergey Sharybin sergey.vfx at gmail.com
Wed Nov 28 10:01:01 CET 2012


Revision: 52629
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52629
Author:   nazgul
Date:     2012-11-28 09:01:00 +0000 (Wed, 28 Nov 2012)
Log Message:
-----------
Fix #33295: Shifted movie strip when rendering <100% resolution for strip with complex transform

That was kind of a regression since fix for #32091: Crop and offset coordinates changes proxy
render settings on image strips, which is now fixed in other way.

Namely Offset/Crop values are filling in 100% scene resolution values, but getting scaled to
proxy / scene percentage values.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2012-11-28 06:43:04 UTC (rev 52628)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2012-11-28 09:01:00 UTC (rev 52629)
@@ -1835,6 +1835,8 @@
 		StripCrop c = {0};
 		StripTransform t = {0};
 		int sx, sy, dx, dy;
+		double xscale = 1.0;
+		double yscale = 1.0;
 
 		if (is_proxy_image) {
 			double f = seq_rendersize_to_scale_factor(context.preview_render_size);
@@ -1851,6 +1853,17 @@
 			t = *seq->strip->transform;
 		}
 
+		xscale = context.scene->r.xsch ? ((float) context.rectx / (float) context.scene->r.xsch) : 1.0;
+		yscale = context.scene->r.ysch ? ((float) context.recty / (float) context.scene->r.ysch) : 1.0;
+
+		xscale /= (float) context.rectx / ibuf->x;
+		yscale /= (float) context.recty / ibuf->y;
+
+		c.left *= xscale; c.right *= xscale;
+		c.top *= yscale; c.bottom *= yscale;
+
+		t.xofs *= xscale; t.yofs *= yscale;
+
 		sx = ibuf->x - c.left - c.right;
 		sy = ibuf->y - c.top - c.bottom;
 		dx = sx;




More information about the Bf-blender-cvs mailing list