[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54640] trunk/blender/source/blender: Force movie clips always use default alpha mode, before this straight

Sergey Sharybin sergey.vfx at gmail.com
Mon Feb 18 20:34:15 CET 2013


Revision: 54640
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54640
Author:   nazgul
Date:     2013-02-18 19:34:14 +0000 (Mon, 18 Feb 2013)
Log Message:
-----------
Force movie clips always use default alpha mode, before this straight
alpha was used for them which doesn't work for cleaned footage stored
in EXR file format.

Perhaps we need to support configurable alpha mode for clips, but
that's for later (maybe even after release),

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/movieclip.c
    trunk/blender/source/blender/imbuf/intern/readimage.c

Modified: trunk/blender/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/movieclip.c	2013-02-18 17:51:07 UTC (rev 54639)
+++ trunk/blender/source/blender/blenkernel/intern/movieclip.c	2013-02-18 19:34:14 UTC (rev 54640)
@@ -216,7 +216,7 @@
 		colorspace = clip->colorspace_settings.name;
 	}
 
-	loadflag = IB_rect | IB_multilayer;
+	loadflag = IB_rect | IB_multilayer | IB_alphamode_detect;
 
 	/* read ibuf */
 	ibuf = IMB_loadiffname(name, loadflag, colorspace);

Modified: trunk/blender/source/blender/imbuf/intern/readimage.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/readimage.c	2013-02-18 17:51:07 UTC (rev 54639)
+++ trunk/blender/source/blender/imbuf/intern/readimage.c	2013-02-18 19:34:14 UTC (rev 54640)
@@ -75,6 +75,8 @@
 		if (type->load) {
 			ibuf = type->load(mem, size, flags, effective_colorspace);
 			if (ibuf) {
+				int alpha_flags;
+
 				if (colorspace) {
 					if (ibuf->rect) {
 						/* byte buffer is never internally converted to some standard space,
@@ -86,11 +88,16 @@
 					BLI_strncpy(colorspace, effective_colorspace, IM_MAX_SPACE);
 				}
 
+				if (flags & IB_alphamode_detect)
+					alpha_flags = ibuf->flags & IB_alphamode_premul;
+				else
+					alpha_flags = flags & IB_alphamode_premul;
+
 				if (flags & IB_ignore_alpha) {
 					IMB_rectfill_alpha(ibuf, 1.0f);
 				}
 				else {
-					if (flags & IB_alphamode_premul) {
+					if (alpha_flags & IB_alphamode_premul) {
 						if (ibuf->rect) {
 							IMB_unpremultiply_alpha(ibuf);
 						}




More information about the Bf-blender-cvs mailing list