[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38551] trunk/blender/source/blender: fix/ workaround [#28040] float images reduced to 256 levels per channel upon save

Campbell Barton ideasman42 at gmail.com
Thu Jul 21 02:41:01 CEST 2011


Revision: 38551
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38551
Author:   campbellbarton
Date:     2011-07-21 00:41:00 +0000 (Thu, 21 Jul 2011)
Log Message:
-----------
fix/workaround [#28040] float images reduced to 256 levels per channel upon save

Generated images would not be re-generated with a float buffer on load, even when selected on creation.
Now save the float buffer setting as a generated image flag.

This means you can enable before baking to enable baking to a float buffer.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/editors/space_image/image_buttons.c
    trunk/blender/source/blender/makesdna/DNA_image_types.h
    trunk/blender/source/blender/makesrna/intern/rna_image.c

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2011-07-21 00:07:07 UTC (rev 38550)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2011-07-21 00:41:00 UTC (rev 38551)
@@ -432,6 +432,7 @@
 		ima->gen_x= width;
 		ima->gen_y= height;
 		ima->gen_type= uvtestgrid;
+		ima->gen_flag |= (floatbuf ? IMA_GEN_FLOAT : 0);
 		
 		ibuf= add_ibuf_size(width, height, name, depth, floatbuf, uvtestgrid, color);
 		image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
@@ -2172,7 +2173,7 @@
 				/* UV testgrid or black or solid etc */
 				if(ima->gen_x==0) ima->gen_x= 1024;
 				if(ima->gen_y==0) ima->gen_y= 1024;
-				ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, 0, ima->gen_type, color);
+				ibuf= add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, (ima->gen_flag & IMA_GEN_FLOAT) != 0, ima->gen_type, color);
 				image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
 				ima->ok= IMA_OK_LOADED;
 			}

Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_buttons.c	2011-07-21 00:07:07 UTC (rev 38550)
+++ trunk/blender/source/blender/editors/space_image/image_buttons.c	2011-07-21 00:41:00 UTC (rev 38551)
@@ -804,6 +804,7 @@
 				col= uiLayoutColumn(split, 1);
 				uiItemR(col, &imaptr, "generated_width", 0, "X", ICON_NONE);
 				uiItemR(col, &imaptr, "generated_height", 0, "Y", ICON_NONE);
+				uiItemR(col, &imaptr, "use_generated_float", 0, NULL, ICON_NONE);
 
 				uiItemR(split, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
 			}

Modified: trunk/blender/source/blender/makesdna/DNA_image_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_image_types.h	2011-07-21 00:07:07 UTC (rev 38550)
+++ trunk/blender/source/blender/makesdna/DNA_image_types.h	2011-07-21 00:41:00 UTC (rev 38551)
@@ -102,7 +102,8 @@
 	short animspeed;
 	
 	/* for generated images */
-	short gen_x, gen_y, gen_type;
+	short gen_x, gen_y;
+	char gen_type, gen_flag;
 	
 	/* display aspect - for UV editing images resized for faster openGL display */
 	float aspx, aspy;
@@ -136,5 +137,8 @@
 #define IMA_MAX_RENDER_TEXT		512
 #define IMA_MAX_RENDER_SLOT		8
 
+/* gen_flag */
+#define IMA_GEN_FLOAT		1
+
 #endif
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_image.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_image.c	2011-07-21 00:07:07 UTC (rev 38550)
+++ trunk/blender/source/blender/makesrna/intern/rna_image.c	2011-07-21 00:41:00 UTC (rev 38551)
@@ -502,6 +502,11 @@
 	RNA_def_property_ui_text(prop, "Generated Height", "Generated image height");
 	RNA_def_property_update(prop, NC_IMAGE|ND_DISPLAY, "rna_Image_generated_update");
 
+	prop= RNA_def_property(srna, "use_generated_float", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "gen_flag", IMA_GEN_FLOAT);
+	RNA_def_property_ui_text(prop, "Float Buffer", "Generate floating point buffer");
+	RNA_def_property_update(prop, NC_IMAGE|ND_DISPLAY, "rna_Image_generated_update");
+
 	/* realtime properties */
 	prop= RNA_def_property(srna, "mapping", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");




More information about the Bf-blender-cvs mailing list