[Bf-blender-cvs] [4858f9f] multi_previews_id: FIx merge issues, move preview resolution setting from RNA to BKE, do not clear preview when setting same resolution as current one.

Bastien Montagne noreply at git.blender.org
Thu Dec 15 12:10:37 CET 2016


Commit: 4858f9faab95d080fc595e56f620aa91750e7f5d
Author: Bastien Montagne
Date:   Thu Dec 15 12:09:34 2016 +0100
Branches: multi_previews_id
https://developer.blender.org/rB4858f9faab95d080fc595e56f620aa91750e7f5d

FIx merge issues, move preview resolution setting from RNA to BKE, do not clear preview when setting same resolution as current one.

===================================================================

M	source/blender/blenkernel/BKE_icons.h
M	source/blender/blenkernel/intern/icons.c
M	source/blender/makesrna/intern/rna_ID.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_icons.h b/source/blender/blenkernel/BKE_icons.h
index c81dfbd..d312b4b 100644
--- a/source/blender/blenkernel/BKE_icons.h
+++ b/source/blender/blenkernel/BKE_icons.h
@@ -101,6 +101,8 @@ struct PreviewImage *BKE_previewimg_copy(struct PreviewImage *prv);
 
 size_t BKE_previewimg_get_rect_size(struct PreviewImage *prv, const int size);
 
+void BKE_previewimg_resolution_set(struct PreviewImage *prv, const int size, const int width, const int height);
+
 void BKE_previewimg_num_frames_set(struct PreviewImage *prv, const short num_frames);
 void BKE_previewimg_frame_delete(struct PreviewImage *prv, const short frame_idx);
 
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index 838a732..26a3034 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -239,6 +239,25 @@ size_t BKE_previewimg_get_rect_size(struct PreviewImage *prv, const int size)
 	}
 }
 
+void BKE_previewimg_resolution_set(PreviewImage *prv, const int size, const int width, const int height)
+{
+	if (width == prv->w[size] && height == prv->h[size]) {
+		/* Same size, do nothing. */
+		return;
+	}
+
+	BKE_previewimg_clear_single(prv, size);
+
+	if (width && height) {
+		prv->w[size] = width;
+		prv->h[size] = height;
+
+		prv->rect[size] = MEM_callocN(BKE_previewimg_get_rect_size(prv, size), __func__);
+	}
+
+	prv->flag[size] |= (PRV_CHANGED | PRV_USER_EDITED);
+}
+
 void BKE_previewimg_num_frames_set(struct PreviewImage *prv, const short num_frames)
 {
 	BLI_assert(prv != NULL);
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index fcb8d6d..9bc8dbe 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -511,16 +511,7 @@ static void rna_ImagePreview_size_set(PointerRNA *ptr, const int *values, enum e
 		BLI_assert(prv_img == BKE_previewimg_id_ensure(id));
 	}
 
-	BKE_previewimg_clear_single(prv_img, size);
-
-	if (values[0] && values[1]) {
-		prv_img->w[size] = values[0];
-		prv_img->h[size] = values[1];
-
-		prv_img->rect[size] = MEM_callocN(BKE_previewimg_get_rect_size(prv_img, size), __func__);
-	}
-
-	prv_img->flag[size] |= (PRV_CHANGED | PRV_USER_EDITED);
+	BKE_previewimg_resolution_set(prv_img, size, values[0], values[1]);
 }
 
 
@@ -1174,7 +1165,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to get", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_INT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, 0);
 	RNA_def_property_ui_text(parm, "", "Array of integers, one per pixel (RGBA concatenated values)");
 	RNA_def_function_output(func, parm);
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
@@ -1187,7 +1178,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_INT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC | PROP_REQUIRED);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED);
 	RNA_def_property_ui_text(parm, "", "Array of integers, one per pixel (RGBA concatenated values)");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
 	RNA_def_property_ui_text(parm, "", "Meta-data integer associated to the preview frame");
@@ -1198,7 +1189,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to get", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, 0);
 	RNA_def_property_ui_text(parm, "", "Array of floats, one per pixel component (RGBA values)");
 	RNA_def_function_output(func, parm);
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
@@ -1211,7 +1202,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC | PROP_REQUIRED);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED);
 	RNA_def_property_ui_text(parm, "", "Array of floats, one per pixel component (RGBA values)");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
 	RNA_def_property_ui_text(parm, "", "Meta-data integer associated to the preview frame");
@@ -1221,7 +1212,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_function_ui_description(func, "Set a frame data and meta-data for this preview");
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "image", PROP_POINTER, PROP_NONE);
-	RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+	RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 	RNA_def_property_struct_type(parm, "Image");
 	RNA_def_property_ui_text(parm, "", "Image whose pixels to copy and use for this preview");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
@@ -1233,7 +1224,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to get", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_INT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, 0);
 	RNA_def_property_ui_text(parm, "", "Array of integers, one per pixel (RGBA concatenated values)");
 	RNA_def_function_output(func, parm);
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
@@ -1246,7 +1237,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_INT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC | PROP_REQUIRED);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED);
 	RNA_def_property_ui_text(parm, "", "Array of integers, one per pixel (RGBA concatenated values)");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
 	RNA_def_property_ui_text(parm, "", "Meta-data integer associated to the icon frame");
@@ -1257,7 +1248,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to get", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, 0);
 	RNA_def_property_ui_text(parm, "", "Array of floats, one per pixel component (RGBA values)");
 	RNA_def_function_output(func, parm);
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
@@ -1270,7 +1261,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "data", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_array(parm, 1);
-	RNA_def_property_flag(parm, PROP_DYNAMIC | PROP_REQUIRED);
+	RNA_def_parameter_flags(parm, PROP_DYNAMIC, PARM_REQUIRED);
 	RNA_def_property_ui_text(parm, "", "Array of floats, one per pixel component (RGBA values)");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);
 	RNA_def_property_ui_text(parm, "", "Meta-data integer associated to the icon frame");
@@ -1280,7 +1271,7 @@ static void rna_def_image_preview(BlenderRNA *brna)
 	RNA_def_function_ui_description(func, "Set a frame data and meta-data for this icon");
 	RNA_def_int(func, "index", 0, 0, USHRT_MAX, "", "Index of frame to set", 0, USHRT_MAX);
 	parm = RNA_def_property(func, "image", PROP_POINTER, PROP_NONE);
-	RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+	RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 	RNA_def_property_struct_type(parm, "Image");
 	RNA_def_property_ui_text(parm, "", "Image whose pixels to copy and use for this preview");
 	parm = RNA_def_property(func, "meta", PROP_INT, PROP_NONE);




More information about the Bf-blender-cvs mailing list