[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16980] trunk/blender/source/blender: Bugfix #17784

Ton Roosendaal ton at blender.org
Wed Oct 8 20:35:42 CEST 2008


Revision: 16980
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16980
Author:   ton
Date:     2008-10-08 20:35:41 +0200 (Wed, 08 Oct 2008)

Log Message:
-----------
Bugfix #17784

Playanim now works for:

- tiff, cineon, dpx, hdr, exr

Only multilayer not, that's too much for a bugfix. Multilayer is a totally
different image format, handled separately.

ALso removed redundant printing for dpx/cineon.
And fixed crash in cineon when G.scene doesnt exist. Bad bad, should
not be there!

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/multires.c
    trunk/blender/source/blender/imbuf/intern/cineon/cineon_dpx.c
    trunk/blender/source/blender/imbuf/intern/cineon/cineonlib.c
    trunk/blender/source/blender/imbuf/intern/cineon/dpxlib.c
    trunk/blender/source/blender/src/playanim.c

Modified: trunk/blender/source/blender/blenkernel/intern/multires.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/multires.c	2008-10-08 18:15:19 UTC (rev 16979)
+++ trunk/blender/source/blender/blenkernel/intern/multires.c	2008-10-08 18:35:41 UTC (rev 16980)
@@ -642,6 +642,10 @@
 	MultiApplyData data;
 	int i, j;
 
+	/* XXX added this to prevent crash, but if it works? (ton) */
+	if(me->mr->verts==NULL)
+		return;
+	
 	/* Prepare deltas */
 	pr_deltas= MEM_callocN(sizeof(vec3f)*last_lvl->totvert, "multires deltas 1");
 	cr_deltas= MEM_callocN(sizeof(vec3f)*last_lvl->totvert, "multires deltas 2");

Modified: trunk/blender/source/blender/imbuf/intern/cineon/cineon_dpx.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/cineon/cineon_dpx.c	2008-10-08 18:15:19 UTC (rev 16979)
+++ trunk/blender/source/blender/imbuf/intern/cineon/cineon_dpx.c	2008-10-08 18:35:41 UTC (rev 16980)
@@ -48,10 +48,10 @@
 
 static void cineon_conversion_parameters(LogImageByteConversionParameters *params)
 {
-	params->blackPoint = G.scene->r.cineonblack;
-	params->whitePoint = G.scene->r.cineonwhite;
-	params->gamma = G.scene->r.cineongamma;
-	params->doLogarithm = G.scene->r.subimtype & R_CINEON_LOG;
+	params->blackPoint = G.scene?G.scene->r.cineonblack:95;
+	params->whitePoint = G.scene?G.scene->r.cineonwhite:685;
+	params->gamma = G.scene?G.scene->r.cineongamma:1.7f;
+	params->doLogarithm = G.scene?G.scene->r.subimtype & R_CINEON_LOG:0;
 }
 
 static struct ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size, int flags)

Modified: trunk/blender/source/blender/imbuf/intern/cineon/cineonlib.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/cineon/cineonlib.c	2008-10-08 18:15:19 UTC (rev 16979)
+++ trunk/blender/source/blender/imbuf/intern/cineon/cineonlib.c	2008-10-08 18:35:41 UTC (rev 16980)
@@ -617,7 +617,7 @@
 	
 	cineon->file = 0;
 	cineon->reading = 1;
-	verbose = 1;
+	verbose = 0;
 	if (size < sizeof(CineonGenericHeader)) {
 		if (verbose) d_printf("Not enough data for header!\n");
 		cineonClose(cineon);

Modified: trunk/blender/source/blender/imbuf/intern/cineon/dpxlib.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/cineon/dpxlib.c	2008-10-08 18:15:19 UTC (rev 16979)
+++ trunk/blender/source/blender/imbuf/intern/cineon/dpxlib.c	2008-10-08 18:35:41 UTC (rev 16980)
@@ -199,7 +199,7 @@
 #endif
 }
 
-static int verbose = 1;
+static int verbose = 0;
 void
 dpxSetVerbose(int verbosity) {
 	verbose = verbosity;

Modified: trunk/blender/source/blender/src/playanim.c
===================================================================
--- trunk/blender/source/blender/src/playanim.c	2008-10-08 18:15:19 UTC (rev 16979)
+++ trunk/blender/source/blender/src/playanim.c	2008-10-08 18:35:41 UTC (rev 16980)
@@ -191,6 +191,12 @@
 		printf("no ibuf !\n");
 		return;
 	}
+	if (ibuf->rect==NULL && ibuf->rect_float) {
+		IMB_rect_from_float(ibuf);
+		imb_freerectfloatImBuf(ibuf);
+	}
+	if (ibuf->rect==NULL)
+		break;
 
 	glRasterPos2f(0.0f, 0.0f);
 





More information about the Bf-blender-cvs mailing list