[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