[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49184] trunk/blender/source/blender: move mask and draw settings into its own struct to be shared between spaces .

Campbell Barton ideasman42 at gmail.com
Tue Jul 24 22:33:55 CEST 2012


Revision: 49184
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49184
Author:   campbellbarton
Date:     2012-07-24 20:33:55 +0000 (Tue, 24 Jul 2012)
Log Message:
-----------
move mask and draw settings into its own struct to be shared between spaces.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mask.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/screen/screen_ops.c
    trunk/blender/source/blender/editors/space_clip/clip_draw.c
    trunk/blender/source/blender/editors/space_clip/clip_editor.c
    trunk/blender/source/blender/editors/space_clip/space_clip.c
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -1484,8 +1484,8 @@
 				if (sl->spacetype == SPACE_CLIP) {
 					SpaceClip *sc = (SpaceClip *) sl;
 
-					if (sc->mask == mask)
-						sc->mask = NULL;
+					if (sc->mask_info.mask == mask)
+						sc->mask_info.mask = NULL;
 				}
 			}
 		}

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -5297,7 +5297,8 @@
 						SpaceImage *sima = (SpaceImage *)sl;
 						
 						sima->image = newlibadr_us(fd, sc->id.lib, sima->image);
-						
+						sima->mask_info.mask = newlibadr_us(fd, sc->id.lib, sima->mask_info.mask);
+
 						/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
 						 * so fingers crossed this works fine!
 						 */
@@ -5383,7 +5384,7 @@
 						SpaceClip *sclip = (SpaceClip *)sl;
 						
 						sclip->clip = newlibadr_us(fd, sc->id.lib, sclip->clip);
-						sclip->mask = newlibadr_us(fd, sc->id.lib, sclip->mask);
+						sclip->mask_info.mask = newlibadr_us(fd, sc->id.lib, sclip->mask_info.mask);
 						
 						sclip->scopes.track_search = NULL;
 						sclip->scopes.track_preview = NULL;
@@ -5672,7 +5673,7 @@
 					SpaceClip *sclip = (SpaceClip *)sl;
 					
 					sclip->clip = restore_pointer_by_name(newmain, (ID *)sclip->clip, 1);
-					sclip->mask = restore_pointer_by_name(newmain, (ID *)sclip->mask, 1);
+					sclip->mask_info.mask = restore_pointer_by_name(newmain, (ID *)sclip->mask_info.mask, 1);
 					
 					sclip->scopes.ok = 0;
 				}

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -1951,8 +1951,8 @@
 	{
 		SpaceClip *sc = CTX_wm_space_clip(C);
 		if (sc) {
-			if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask) {
-				MaskLayer *masklay = BKE_mask_layer_active(sc->mask);
+			if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask_info.mask) {
+				MaskLayer *masklay = BKE_mask_layer_active(sc->mask_info.mask);
 				mask_to_keylist(&ads, masklay, &keys);
 			}
 		}

Modified: trunk/blender/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_draw.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/editors/space_clip/clip_draw.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -198,8 +198,8 @@
 	clip_draw_curfra_label(sc, x, 8.0f);
 
 	/* movie clip animation */
-	if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask) {
-		MaskLayer *masklay = BKE_mask_layer_active(sc->mask);
+	if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask_info.mask) {
+		MaskLayer *masklay = BKE_mask_layer_active(sc->mask_info.mask);
 		if (masklay) {
 			MaskLayerShape *masklay_shape;
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_editor.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_editor.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/editors/space_clip/clip_editor.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -115,7 +115,7 @@
 		if (clip) {
 			SpaceClip *sc = CTX_wm_space_clip(C);
 
-			return sc->mask != NULL;
+			return sc->mask_info.mask != NULL;
 		}
 	}
 
@@ -509,14 +509,14 @@
 
 Mask *ED_space_clip_get_mask(SpaceClip *sc)
 {
-	return sc->mask;
+	return sc->mask_info.mask;
 }
 
 void ED_space_clip_set_mask(bContext *C, SpaceClip *sc, Mask *mask)
 {
-	sc->mask = mask;
+	sc->mask_info.mask = mask;
 
-	if (sc->mask && sc->mask->id.us == 0) {
+	if (sc->mask_info.mask && sc->mask_info.mask->id.us == 0) {
 		sc->clip->id.us = 1;
 	}
 

Modified: trunk/blender/source/blender/editors/space_clip/space_clip.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -766,8 +766,8 @@
 		return TRUE;
 	}
 	else if (CTX_data_equals(member, "edit_mask")) {
-		if (sc->mask)
-			CTX_data_id_pointer_set(result, &sc->mask->id);
+		if (sc->mask_info.mask)
+			CTX_data_id_pointer_set(result, &sc->mask_info.mask->id);
 		return TRUE;
 	}
 
@@ -1120,7 +1120,7 @@
 			int width, height;
 			ED_mask_size(C, &width, &height);
 			ED_mask_draw_region(mask, ar,
-			                    sc->mask_draw_flag, sc->mask_draw_type,
+			                    sc->mask_info.draw_flag, sc->mask_info.draw_type,
 			                    width, height,
 			                    TRUE, TRUE,
 			                    sc->stabmat, C);

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-07-24 20:33:55 UTC (rev 49184)
@@ -513,6 +513,15 @@
 	SEQ_PROXY_RENDER_SIZE_FULL      = 100
 } eSpaceSeq_Proxy_RenderSize;
 
+typedef struct MaskSpaceInfo
+{
+	/* **** mask editing **** */
+	struct Mask *mask;
+	/* draw options */
+	char draw_flag;
+	char draw_type;
+	char pad3[6];
+} MaskSpaceInfo;
 
 /* File Selector ========================================== */
 
@@ -689,6 +698,8 @@
 	char sticky; /* sticky selection type */
 	char dt_uvstretch;
 	char around;
+
+	MaskSpaceInfo mask_info;
 } SpaceImage;
 
 
@@ -1012,12 +1023,7 @@
 
 	int around, pad4;             /* pivot point for transforms */
 
-	/* **** mask editing **** */
-	struct Mask *mask;
-	/* draw options */
-	char mask_draw_flag;
-	char mask_draw_type;
-	char pad3[6];
+	MaskSpaceInfo mask_info;
 } SpaceClip;
 
 /* SpaceClip->flag */

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-07-24 20:05:00 UTC (rev 49183)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-07-24 20:33:55 UTC (rev 49184)
@@ -1103,6 +1103,31 @@
 	RNA_def_property_ui_text(prop, "Type", "Space data type");
 }
 
+/* for all spaces that use a mask */
+void mask_space_info(StructRNA *srna, int noteflag, const char *mask_set_func)
+{
+	PropertyRNA *prop;
+
+	prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "mask_info.mask");
+	RNA_def_property_flag(prop, PROP_EDITABLE);
+	RNA_def_property_ui_text(prop, "Mask", "Mask displayed and edited in this space");
+	RNA_def_property_pointer_funcs(prop, NULL, mask_set_func, NULL, NULL);
+	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
+
+	/* mask drawing */
+	prop = RNA_def_property(srna, "mask_draw_type", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "mask_info.draw_type");
+	RNA_def_property_enum_items(prop, dt_uv_items);
+	RNA_def_property_ui_text(prop, "Edge Draw Type", "Draw type for mask splines");
+	RNA_def_property_update(prop, noteflag, NULL);
+
+	prop = RNA_def_property(srna, "show_mask_smooth", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "mask_info.draw_flag", MASK_DRAWFLAG_SMOOTH);
+	RNA_def_property_ui_text(prop, "Draw Smooth Splines", "");
+	RNA_def_property_update(prop, noteflag, NULL);
+}
+
 static void rna_def_space_image_uv(BlenderRNA *brna)
 {
 	StructRNA *srna;
@@ -1220,6 +1245,9 @@
 	RNA_def_property_enum_items(prop, pivot_items);
 	RNA_def_property_ui_text(prop, "Pivot", "Rotation/Scaling Pivot");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
+
+	/* mask */
+	mask_space_info(srna, NC_SPACE | ND_SPACE_IMAGE, NULL);
 }
 
 static void rna_def_space_outliner(BlenderRNA *brna)
@@ -3064,25 +3092,8 @@
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
 
 	/* mask */
-	prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
-	RNA_def_property_flag(prop, PROP_EDITABLE);
-	RNA_def_property_ui_text(prop, "Mask", "Mask displayed and edited in this space");
-	RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceClipEditor_mask_set", NULL, NULL);
-	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
+	mask_space_info(srna, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_mask_set");
 
-	/* mask drawing */
-	prop = RNA_def_property(srna, "mask_draw_type", PROP_ENUM, PROP_NONE);
-	RNA_def_property_enum_sdna(prop, NULL, "mask_draw_type");
-	RNA_def_property_enum_items(prop, dt_uv_items);
-	RNA_def_property_ui_text(prop, "Edge Draw Type", "Draw type for mask splines");
-	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
-
-	prop = RNA_def_property(srna, "show_mask_smooth", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "mask_draw_flag", MASK_DRAWFLAG_SMOOTH);
-	RNA_def_property_ui_text(prop, "Draw Smooth Splines", "");
-	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
-
-
 	/* mode */
 	prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "mode");




More information about the Bf-blender-cvs mailing list