[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50568] trunk/blender/source/blender/ editors: fix for drawing non 1:1 aspect masks, transform and selection still need support.

Campbell Barton ideasman42 at gmail.com
Thu Sep 13 04:28:52 CEST 2012


Revision: 50568
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50568
Author:   campbellbarton
Date:     2012-09-13 02:28:48 +0000 (Thu, 13 Sep 2012)
Log Message:
-----------
fix for drawing non 1:1 aspect masks, transform and selection still need support.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_mask.h
    trunk/blender/source/blender/editors/mask/mask_draw.c
    trunk/blender/source/blender/editors/space_clip/space_clip.c
    trunk/blender/source/blender/editors/space_image/space_image.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c

Modified: trunk/blender/source/blender/editors/include/ED_mask.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mask.h	2012-09-13 01:58:48 UTC (rev 50567)
+++ trunk/blender/source/blender/editors/include/ED_mask.h	2012-09-13 02:28:48 UTC (rev 50568)
@@ -56,7 +56,8 @@
 void ED_mask_draw(const bContext *C, const char draw_flag, const char draw_type);
 void ED_mask_draw_region(struct Mask *mask, struct ARegion *ar,
                          const char draw_flag, const char draw_type,
-                         int width, int height,
+                         const int width_i, const int height_i,
+                         const float aspx, const float aspy,
                          const short do_scale_applied, const short do_post_draw,
                          float stabmat[4][4],
                          const bContext *C);

Modified: trunk/blender/source/blender/editors/mask/mask_draw.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_draw.c	2012-09-13 01:58:48 UTC (rev 50567)
+++ trunk/blender/source/blender/editors/mask/mask_draw.c	2012-09-13 02:28:48 UTC (rev 50568)
@@ -496,7 +496,8 @@
  * width, height are to match the values from ED_mask_get_size() */
 void ED_mask_draw_region(Mask *mask, ARegion *ar,
                          const char draw_flag, const char draw_type,
-                         int width, int height,
+                         const int width_i, const int height_i,  /* convert directly into aspect corrected vars */
+                         const float aspx, const float aspy,
                          const short do_scale_applied, const short do_post_draw,
                          float stabmat[4][4], /* optional - only used by clip */
                          const bContext *C    /* optional - only used when do_post_draw is set */
@@ -504,6 +505,9 @@
 {
 	struct View2D *v2d = &ar->v2d;
 
+	/* aspect always scales vertically in movie and image spaces */
+	const float width = width_i, height = (float)height_i * (aspy / aspx);
+
 	int x, y;
 	/* int w, h; */
 	float zoomx, zoomy;

Modified: trunk/blender/source/blender/editors/space_clip/space_clip.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-09-13 01:58:48 UTC (rev 50567)
+++ trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-09-13 02:28:48 UTC (rev 50568)
@@ -1131,10 +1131,13 @@
 		if (mask) {
 			ScrArea *sa = CTX_wm_area(C);
 			int width, height;
+			float aspx, aspy;
 			ED_mask_get_size(sa, &width, &height);
+			ED_space_clip_get_aspect(sc, &aspx, &aspy);
 			ED_mask_draw_region(mask, ar,
 			                    sc->mask_info.draw_flag, sc->mask_info.draw_type,
 			                    width, height,
+			                    aspx, aspy,
 			                    TRUE, TRUE,
 			                    sc->stabmat, C);
 		}

Modified: trunk/blender/source/blender/editors/space_image/space_image.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/space_image.c	2012-09-13 01:58:48 UTC (rev 50567)
+++ trunk/blender/source/blender/editors/space_image/space_image.c	2012-09-13 02:28:48 UTC (rev 50568)
@@ -682,10 +682,13 @@
 
 	if (mask) {
 		int width, height;
+		float aspx, aspy;
 		ED_space_image_get_size(sima, &width, &height);
+		ED_space_image_get_aspect(sima, &aspx, &aspy);
 		ED_mask_draw_region(mask, ar,
 		                    sima->mask_info.draw_flag, sima->mask_info.draw_type,
 		                    width, height,
+		                    aspx, aspy,
 		                    TRUE, FALSE,
 		                    NULL, C);
 

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c	2012-09-13 01:58:48 UTC (rev 50567)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c	2012-09-13 02:28:48 UTC (rev 50568)
@@ -1049,6 +1049,7 @@
 
 		if (mask) {
 			int width, height;
+			float aspx = 1.0f, aspy = 1.0f;
 			// ED_mask_get_size(C, &width, &height);
 
 			//Scene *scene = CTX_data_scene(C);
@@ -1058,6 +1059,7 @@
 			ED_mask_draw_region(mask, ar,
 			                    0, 0,  /* TODO */
 			                    width, height,
+			                    aspx, aspy,
 			                    FALSE, TRUE,
 			                    NULL, C);
 		}




More information about the Bf-blender-cvs mailing list