[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