[Bf-blender-cvs] [0d24c6f] master: Move 2.6x versioning code to own file

Sergey Sharybin noreply at git.blender.org
Fri Nov 29 18:16:17 CET 2013


Commit: 0d24c6f0d034d277feeff2650a8165294a259691
Author: Sergey Sharybin
Date:   Fri Nov 29 23:16:13 2013 +0600
http://developer.blender.org/rB0d24c6f0d034d277feeff2650a8165294a259691

Move 2.6x versioning code to own file

Summary:
Makes readfile.c more clear and easier to navigate in.
We would need to do such a move when we'll do 2.70 bump
anyway. So better be prepared.

In fact, as soon 2.70 bumo is done i would think we'd
better create versioning_270 file and do version code
there. Otherwise readfile.c will grow up dramatically
again.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D60

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

M	source/blender/blenloader/CMakeLists.txt
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/readfile.h
A	source/blender/blenloader/intern/versioning_260.c

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

diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt
index 24b8df7..ba87a43 100644
--- a/source/blender/blenloader/CMakeLists.txt
+++ b/source/blender/blenloader/CMakeLists.txt
@@ -46,6 +46,7 @@ set(SRC
 	intern/runtime.c
 	intern/undofile.c
 	intern/versioning_250.c
+	intern/versioning_260.c
 	intern/versioning_defaults.c
 	intern/versioning_legacy.c
 	intern/writefile.c
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 1773538..d0eb0ed 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -252,8 +252,7 @@ static void convert_tface_mt(FileData *fd, Main *main);
  * we could alternatively have a versions of a report function which forces printing - campbell
  */
 
-static void BKE_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...) ATTR_PRINTF_FORMAT(3, 4);
-static void BKE_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...)
+void blo_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...)
 {
 	char fixed_buf[1024]; /* should be long enough */
 	
@@ -3026,7 +3025,7 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
 
 /* ************ READ keys ***************** */
 
-static void do_versions_key_uidgen(Key *key)
+void blo_do_versions_key_uidgen(Key *key)
 {
 	KeyBlock *block;
 
@@ -3043,7 +3042,7 @@ static void lib_link_key(FileData *fd, Main *main)
 	for (key = main->key.first; key; key = key->id.next) {
 		/*check if we need to generate unique ids for the shapekeys*/
 		if (!key->uidgen) {
-			do_versions_key_uidgen(key);
+			blo_do_versions_key_uidgen(key);
 		}
 		
 		if (key->id.flag & LIB_NEED_LINK) {
@@ -5130,7 +5129,7 @@ static void lib_link_scene(FileData *fd, Main *main)
 				base->object = newlibadr_us(fd, sce->id.lib, base->object);
 				
 				if (base->object == NULL) {
-					BKE_reportf_wrap(fd->reports, RPT_WARNING, TIP_("LIB ERROR: object lost from scene: '%s'"),
+					blo_reportf_wrap(fd->reports, RPT_WARNING, TIP_("LIB ERROR: object lost from scene: '%s'"),
 					                 sce->id.name + 2);
 					BLI_remlink(&sce->base, base);
 					if (base == sce->basact) sce->basact = NULL;
@@ -6523,7 +6522,7 @@ static void direct_link_library(FileData *fd, Library *lib, Main *main)
 	for (newmain = fd->mainlist->first; newmain; newmain = newmain->next) {
 		if (newmain->curlib) {
 			if (BLI_path_cmp(newmain->curlib->filepath, lib->filepath) == 0) {
-				BKE_reportf_wrap(fd->reports, RPT_WARNING,
+				blo_reportf_wrap(fd->reports, RPT_WARNING,
 				                 TIP_("Library '%s', '%s' had multiple instances, save and reload!"),
 				                 lib->name, lib->filepath);
 				
@@ -7370,552 +7369,6 @@ static void convert_tface_mt(FileData *fd, Main *main)
 	}
 }
 
-static void do_versions_nodetree_image_default_alpha_output(bNodeTree *ntree)
-{
-	bNode *node;
-	bNodeSocket *sock;
-	
-	for (node = ntree->nodes.first; node; node = node->next) {
-		if (ELEM(node->type, CMP_NODE_IMAGE, CMP_NODE_R_LAYERS)) {
-			/* default Image output value should have 0 alpha */
-			sock = node->outputs.first;
-			((bNodeSocketValueRGBA *)(sock->default_value))->value[3] = 0.0f;
-		}
-	}
-}
-
-static void do_versions_nodetree_convert_angle(bNodeTree *ntree)
-{
-	bNode *node;
-	for (node=ntree->nodes.first; node; node=node->next) {
-		if (node->type == CMP_NODE_ROTATE) {
-			/* Convert degrees to radians. */
-			bNodeSocket *sock = ((bNodeSocket*)node->inputs.first)->next;
-			((bNodeSocketValueFloat*)sock->default_value)->value = DEG2RADF(((bNodeSocketValueFloat*)sock->default_value)->value);
-		}
-		else if (node->type == CMP_NODE_DBLUR) {
-			/* Convert degrees to radians. */
-			NodeDBlurData *ndbd= node->storage;
-			ndbd->angle = DEG2RADF(ndbd->angle);
-			ndbd->spin = DEG2RADF(ndbd->spin);
-		}
-		else if (node->type == CMP_NODE_DEFOCUS) {
-			/* Convert degrees to radians. */
-			NodeDefocus *nqd = node->storage;
-			/* XXX DNA char to float conversion seems to map the char value into the [0.0f, 1.0f] range... */
-			nqd->rotation = DEG2RADF(nqd->rotation * 255.0f);
-		}
-		else if (node->type == CMP_NODE_CHROMA_MATTE) {
-			/* Convert degrees to radians. */
-			NodeChroma *ndc = node->storage;
-			ndc->t1 = DEG2RADF(ndc->t1);
-			ndc->t2 = DEG2RADF(ndc->t2);
-		}
-		else if (node->type == CMP_NODE_GLARE) {
-			/* Convert degrees to radians. */
-			NodeGlare *ndg = node->storage;
-			/* XXX DNA char to float conversion seems to map the char value into the [0.0f, 1.0f] range... */
-			ndg->angle_ofs = DEG2RADF(ndg->angle_ofs * 255.0f);
-		}
-		/* XXX TexMapping struct is used by other nodes too (at least node_composite_mapValue),
-		 *     but not the rot part...
-		 */
-		else if (node->type == SH_NODE_MAPPING) {
-			/* Convert degrees to radians. */
-			TexMapping *tmap = node->storage;
-			tmap->rot[0] = DEG2RADF(tmap->rot[0]);
-			tmap->rot[1] = DEG2RADF(tmap->rot[1]);
-			tmap->rot[2] = DEG2RADF(tmap->rot[2]);
-		}
-	}
-}
-
-static void do_versions_image_settings_2_60(Scene *sce)
-{
-	/* note: rd->subimtype is moved into individual settings now and no longer
-	 * exists */
-	RenderData *rd = &sce->r;
-	ImageFormatData *imf = &sce->r.im_format;
-
-	/* we know no data loss happens here, the old values were in char range */
-	imf->imtype =   (char)rd->imtype;
-	imf->planes =   (char)rd->planes;
-	imf->compress = (char)rd->quality;
-	imf->quality =  (char)rd->quality;
-
-	/* default, was stored in multiple places, may override later */
-	imf->depth = R_IMF_CHAN_DEPTH_8;
-
-	/* openexr */
-	imf->exr_codec = rd->quality & 7; /* strange but true! 0-4 are valid values, OPENEXR_COMPRESS */
-
-	switch (imf->imtype) {
-	case R_IMF_IMTYPE_OPENEXR:
-		imf->depth =  (rd->subimtype & R_OPENEXR_HALF) ? R_IMF_CHAN_DEPTH_16 : R_IMF_CHAN_DEPTH_32;
-		if (rd->subimtype & R_PREVIEW_JPG) {
-			imf->flag |= R_IMF_FLAG_PREVIEW_JPG;
-		}
-		if (rd->subimtype & R_OPENEXR_ZBUF) {
-			imf->flag |= R_IMF_FLAG_ZBUF;
-		}
-		break;
-	case R_IMF_IMTYPE_TIFF:
-		if (rd->subimtype & R_TIFF_16BIT) {
-			imf->depth= R_IMF_CHAN_DEPTH_16;
-		}
-		break;
-	case R_IMF_IMTYPE_JP2:
-		if (rd->subimtype & R_JPEG2K_16BIT) {
-			imf->depth= R_IMF_CHAN_DEPTH_16;
-		}
-		else if (rd->subimtype & R_JPEG2K_12BIT) {
-			imf->depth= R_IMF_CHAN_DEPTH_12;
-		}
-
-		if (rd->subimtype & R_JPEG2K_YCC) {
-			imf->jp2_flag |= R_IMF_JP2_FLAG_YCC;
-		}
-		if (rd->subimtype & R_JPEG2K_CINE_PRESET) {
-			imf->jp2_flag |= R_IMF_JP2_FLAG_CINE_PRESET;
-		}
-		if (rd->subimtype & R_JPEG2K_CINE_48FPS) {
-			imf->jp2_flag |= R_IMF_JP2_FLAG_CINE_48;
-		}
-		break;
-	case R_IMF_IMTYPE_CINEON:
-	case R_IMF_IMTYPE_DPX:
-		if (rd->subimtype & R_CINEON_LOG) {
-			imf->cineon_flag |= R_IMF_CINEON_FLAG_LOG;
-		}
-		break;
-	}
-
-}
-
-/* socket use flags were only temporary before */
-static void do_versions_nodetree_socket_use_flags_2_62(bNodeTree *ntree)
-{
-	bNode *node;
-	bNodeSocket *sock;
-	bNodeLink *link;
-	
-	for (node = ntree->nodes.first; node; node = node->next) {
-		for (sock = node->inputs.first; sock; sock = sock->next)
-			sock->flag &= ~SOCK_IN_USE;
-		for (sock = node->outputs.first; sock; sock = sock->next)
-			sock->flag &= ~SOCK_IN_USE;
-	}
-	for (sock = ntree->inputs.first; sock; sock = sock->next)
-		sock->flag &= ~SOCK_IN_USE;
-	for (sock = ntree->outputs.first; sock; sock = sock->next)
-		sock->flag &= ~SOCK_IN_USE;
-	
-	for (link = ntree->links.first; link; link = link->next) {
-		link->fromsock->flag |= SOCK_IN_USE;
-		link->tosock->flag |= SOCK_IN_USE;
-	}
-}
-
-static void do_versions_nodetree_multi_file_output_format_2_62_1(Scene *sce, bNodeTree *ntree)
-{
-	bNode *node;
-	
-	for (node = ntree->nodes.first; node; node = node->next) {
-		if (node->type == CMP_NODE_OUTPUT_FILE) {
-			/* previous CMP_NODE_OUTPUT_FILE nodes get converted to multi-file outputs */
-			NodeImageFile *old_data = node->storage;
-			NodeImageMultiFile *nimf= MEM_callocN(sizeof(NodeImageMultiFile), "node image multi file");
-			bNodeSocket *old_image = BLI_findlink(&node->inputs, 0);
-			bNodeSocket *old_z = BLI_findlink(&node->inputs, 1);
-			bNodeSocket *sock;
-			char filename[FILE_MAXFILE];
-			
-			/* ugly, need to remove the old inputs list to avoid bad pointer checks when adding new sockets.
-			 * sock->storage is expected to contain path info in ntreeCompositOutputFileAddSocket.
-			 */
-			node->inputs.first = node->inputs.last = NULL;
-			
-			node->storage = nimf;
-			
-			/* looks like storage data can be messed up somehow, stupid check here */
-			if (old_data) {
-				char basepath[FILE_MAXDIR];
-
-				/* split off filename from the old path, to be used as socket sub-path */
-				BLI_split_dirfile(old_data->name, basepath, filename, sizeof(basepath), sizeof(filename));
-				
-				BLI_strncpy(nimf->base_path, basepath, sizeof(nimf->base_path));
-				nimf->format = old_data->im_format;
-			}
-			else {
-				BLI_strncpy(filename, old_image->name, sizeof(filename));
-			}
-			
-			/* if z buffer is saved, change the image type to multilayer exr.
-			 * XXX this is slightly messy, Z buffer was ignored before for anything but EXR and IRIS ...
-			 * i'm just assuming here that IRIZ means IRIS with z buffer ...
-			 */
-			if (old_data && ELEM(old_data->im_format.imtype, R_IMF_IMTYPE_IRIZ, R_IMF_IMTYPE_OPENEXR)) {
-				char sockpath[FILE_MAX];
-				
-				nimf->format.imtype = R_IMF_IMTYPE_MULTILAYER;
-				
-				BLI_snprintf(sockpath, sizeof(sockpath), "%s_Image", filename);
-				sock = ntreeCompositOutputFileAddSocket(ntree, node, sockpath, &nimf->format);
-				/* XXX later do_versions copies path from socket name, need to set this explicitely */
-				BLI_strncpy(sock->name, sockpath, sizeof(sock->name));
-				if (old_image->link) {
-					old_image->link->tosock = sock;
-					sock->link = old_image->link;
-				}
-				
-				BLI_snprintf(sockpath, sizeof(sockpath), "%s_Z", filename);
-				sock = ntreeCompositOutputFileAddSocket(ntree, node, sockpath, &nimf->format);
-				/* XXX later do_versions copies path from socket name, need to set this explicitely */
-				BLI_strncpy(sock->name, sockpath, sizeof(sock->name));
-				if (old_z->link) {
-					old_z->link->tosock = sock;
-

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list