[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12583] trunk/blender/source/blender: * New feature on compo scale node: "Scene Size %"

Matt Ebb matt at mke3.net
Wed Nov 14 00:53:58 CET 2007


Revision: 12583
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12583
Author:   broken
Date:     2007-11-14 00:53:58 +0100 (Wed, 14 Nov 2007)

Log Message:
-----------
* New feature on compo scale node: "Scene Size %"

This option sets the relative scaling factor to the amount set in the 
scene "100%/75%/50%/25%" buttons. It's useful when you've got a fixed 
background image, and want to do preview renders at a lesser 
percentage, so you don't have to go and change the scale node each 
time you change the %.

Also removed unnecessary use of a global from texture node.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/texture.c
    trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
    trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
    trunk/blender/source/blender/src/drawnode.c

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2007-11-13 22:03:42 UTC (rev 12582)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2007-11-13 23:53:58 UTC (rev 12583)
@@ -325,8 +325,9 @@
 #define CMP_FILT_SHADOW		6
 
 /* scale node type, in custom1 */
-#define CMP_SCALE_RELATIVE	0
-#define CMP_SCALE_ABSOLUTE	1
+#define CMP_SCALE_RELATIVE		0
+#define CMP_SCALE_ABSOLUTE		1
+#define CMP_SCALE_SCENEPERCENT	2
 
 
 /* the type definitions array */

Modified: trunk/blender/source/blender/blenkernel/intern/texture.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/texture.c	2007-11-13 22:03:42 UTC (rev 12582)
+++ trunk/blender/source/blender/blenkernel/intern/texture.c	2007-11-13 23:53:58 UTC (rev 12583)
@@ -411,7 +411,7 @@
 
 	tex->stype= 0;
 	tex->flag= TEX_CHECKER_ODD;
-	tex->imaflag= TEX_INTERPOL+TEX_MIPMAP;
+	tex->imaflag= TEX_INTERPOL+TEX_MIPMAP+TEX_USEALPHA;
 	tex->extend= TEX_REPEAT;
 	tex->cropxmin= tex->cropymin= 0.0;
 	tex->cropxmax= tex->cropymax= 1.0;
@@ -425,7 +425,8 @@
 	tex->turbul= 5.0;
 	tex->nabla= 0.025;	// also in do_versions
 	tex->bright= 1.0;
-	tex->contrast= tex->filtersize= 1.0;
+	tex->contrast= 1.0;
+	tex->filtersize= 1.0;
 	tex->rfac= 1.0;
 	tex->gfac= 1.0;
 	tex->bfac= 1.0;

Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_scale.c	2007-11-13 22:03:42 UTC (rev 12582)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_scale.c	2007-11-13 23:53:58 UTC (rev 12583)
@@ -52,6 +52,7 @@
 		return;
 	
 	if(in[0]->data) {
+		RenderData *rd= data;
 		CompBuf *stackbuf, *cbuf= typecheck_compbuf(in[0]->data, CB_RGBA);
 		ImBuf *ibuf;
 		int newx, newy;
@@ -60,7 +61,10 @@
 			newx= MAX2((int)(in[1]->vec[0]*cbuf->x), 1);
 			newy= MAX2((int)(in[2]->vec[0]*cbuf->y), 1);
 		}
-		else {	/* CMP_SCALE_ABSOLUTE */
+		else if(node->custom1==CMP_SCALE_SCENEPERCENT) {
+			newx = cbuf->x * (rd->size / 100.0f);
+			newy = cbuf->y * (rd->size / 100.0f);
+		} else {	/* CMP_SCALE_ABSOLUTE */
 			newx= (int)in[1]->vec[0];
 			newy= (int)in[2]->vec[0];
 		}

Modified: trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c	2007-11-13 22:03:42 UTC (rev 12582)
+++ trunk/blender/source/blender/nodes/intern/CMP_nodes/CMP_texture.c	2007-11-13 23:53:58 UTC (rev 12583)
@@ -89,6 +89,7 @@
 	/* outputs: value, color, normal */
 	
 	if(node->id) {
+		RenderData *rd= data;
 		RenderResult *rr= RE_GetResult(RE_GetRender(G.scene->id.name)); /* G.scene is WEAK! */
 		short sizex, sizey;
 		
@@ -99,8 +100,8 @@
 			sizex = rr->rectx;
 			sizey = rr->recty;
 		} else {
-			sizex = G.scene->r.xsch;
-			sizey = G.scene->r.ysch;
+			sizex = rd->xsch;
+			sizey = rd->ysch;
 		}
 		
 		prevbuf->rect_procedural= texture_procedural;

Modified: trunk/blender/source/blender/src/drawnode.c
===================================================================
--- trunk/blender/source/blender/src/drawnode.c	2007-11-13 22:03:42 UTC (rev 12582)
+++ trunk/blender/source/blender/src/drawnode.c	2007-11-13 23:53:58 UTC (rev 12583)
@@ -1726,7 +1726,7 @@
 
 	/* check the 2 inputs, and set them to reasonable values */
 	for(nsock= node->inputs.first; nsock; nsock= nsock->next) {
-		if(node->custom1==CMP_SCALE_RELATIVE)
+		if(ELEM(node->custom1, CMP_SCALE_RELATIVE, CMP_SCALE_SCENEPERCENT))
 			nsock->ns.vec[0]= 1.0;
 		else {
 			if(nsock->next==NULL)
@@ -1740,9 +1740,9 @@
 static int node_composit_buts_scale(uiBlock *block, bNodeTree *ntree, bNode *node, rctf *butr)
 {
 	if(block) {
-		uiBut *bt= uiDefButS(block, TOG, B_NODE_EXEC+node->nr, "Absolute",
+		uiBut *bt= uiDefButS(block, MENU, B_NODE_EXEC+node->nr, "Relative %x0|Absolute %x1|Scene Size % %x2|",
 				  butr->xmin, butr->ymin, butr->xmax-butr->xmin, 20, 
-				  &node->custom1, 0, 0, 0, 0, "");
+				  &node->custom1, 0, 0, 0, 0, "Scale new image to absolute pixel size, size relative to the incoming image, or using the 'percent' size of the scene");
 		uiButSetFunc(bt, node_scale_cb, node, NULL);
 	}
 	return 20;





More information about the Bf-blender-cvs mailing list