[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46688] branches/tile/source/blender/ compositor/nodes/COM_ImageNode.cpp: TileBranch

Jeroen Bakker j.bakker at atmind.nl
Wed May 16 11:49:16 CEST 2012


Revision: 46688
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46688
Author:   jbakker
Date:     2012-05-16 09:49:16 +0000 (Wed, 16 May 2012)
Log Message:
-----------
TileBranch
 * new image socket type support

Modified Paths:
--------------
    branches/tile/source/blender/compositor/nodes/COM_ImageNode.cpp

Modified: branches/tile/source/blender/compositor/nodes/COM_ImageNode.cpp
===================================================================
--- branches/tile/source/blender/compositor/nodes/COM_ImageNode.cpp	2012-05-16 09:26:37 UTC (rev 46687)
+++ branches/tile/source/blender/compositor/nodes/COM_ImageNode.cpp	2012-05-16 09:49:16 UTC (rev 46688)
@@ -33,27 +33,25 @@
 NodeOperation* ImageNode::doMultilayerCheck(ExecutionSystem *system, RenderLayer* rl, Image* image, ImageUser* user, int framenumber, int outputsocketIndex, int pass, DataType datatype) {
 	OutputSocket *outputSocket = this->getOutputSocket(outputsocketIndex);
 	MultilayerBaseOperation * operation = NULL;
-	if (outputSocket->isConnected()) {
-		switch (datatype) {
-		case COM_DT_VALUE:
-			operation = new MultilayerValueOperation(pass);
-			break;
-		case COM_DT_VECTOR:
-			operation = new MultilayerVectorOperation(pass);
-			break;
-		case COM_DT_COLOR:
-			operation = new MultilayerColorOperation(pass);
-			break;
-		default:
-			break;
-		}
-		operation->setImage(image);
-		operation->setRenderLayer(rl);
-		operation->setImageUser(user);
-		operation->setFramenumber(framenumber);
-		outputSocket->relinkConnections(operation->getOutputSocket());
-		system->addOperation(operation);
+	switch (datatype) {
+	case COM_DT_VALUE:
+		operation = new MultilayerValueOperation(pass);
+		break;
+	case COM_DT_VECTOR:
+		operation = new MultilayerVectorOperation(pass);
+		break;
+	case COM_DT_COLOR:
+		operation = new MultilayerColorOperation(pass);
+		break;
+	default:
+		break;
 	}
+	operation->setImage(image);
+	operation->setRenderLayer(rl);
+	operation->setImageUser(user);
+	operation->setFramenumber(framenumber);
+	outputSocket->relinkConnections(operation->getOutputSocket());
+	system->addOperation(operation);
 	return operation;
 }
 
@@ -152,18 +150,23 @@
 	if(image && image->type==IMA_TYPE_MULTILAYER) {
 		BKE_image_get_ibuf(image, imageuser);
 		if(image->rr) {
-			RenderLayer *rl= (RenderLayer*)BLI_findlink(&image->rr->layers, imageuser->layer);
-			if (rl) {
-				OutputSocket * socket;
-				int index;
-				for (index = 0 ; index < numberOfOutputs ; index ++) {
-					socket = this->getOutputSocket(index);
-					if (socket->isConnected() || index == 0) {
-						bNodeSocket *bnodeSocket = socket->getbNodeSocket();
-						int passindex = GET_INT_FROM_POINTER(bnodeSocket->storage);
+			OutputSocket * socket;
+			int index;
+			for (index = 0 ; index < numberOfOutputs ; index ++) {
+				socket = this->getOutputSocket(index);
+				if (socket->isConnected() || index == 0) {
+					bNodeSocket *bnodeSocket = socket->getbNodeSocket();
+					NodeImageLayer *storage = (NodeImageLayer*)bnodeSocket->storage;
+					int passindex = storage->pass_index;
+					int layerindex = storage->layer_index;
+					RenderLayer *rl= (RenderLayer*)BLI_findlink(&image->rr->layers, layerindex);
+					if (rl) {
+					
 						RenderPass *rpass = (RenderPass *)BLI_findlink(&rl->passes, passindex);
 						if (rpass) {
 							NodeOperation * operation = NULL;
+							imageuser->pass = passindex;
+							imageuser->layer = layerindex;
 							switch (rpass->channels) {
 							case 1:
 								operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_VALUE);




More information about the Bf-blender-cvs mailing list