Oeps... Enabled the pixelate node added documentation, removed unneeded
code
This commit is contained in:
@@ -119,6 +119,7 @@
|
|||||||
#include "COM_ViewLevelsNode.h"
|
#include "COM_ViewLevelsNode.h"
|
||||||
#include "COM_ViewerNode.h"
|
#include "COM_ViewerNode.h"
|
||||||
#include "COM_ZCombineNode.h"
|
#include "COM_ZCombineNode.h"
|
||||||
|
#include "COM_PixelateNode.h"
|
||||||
|
|
||||||
Node *Converter::convert(bNode *b_node, bool fast)
|
Node *Converter::convert(bNode *b_node, bool fast)
|
||||||
{
|
{
|
||||||
@@ -390,6 +391,9 @@ Node *Converter::convert(bNode *b_node, bool fast)
|
|||||||
node = new TrackPositionNode(b_node);
|
node = new TrackPositionNode(b_node);
|
||||||
break;
|
break;
|
||||||
/* not inplemented yet */
|
/* not inplemented yet */
|
||||||
|
case CMP_NODE_PIXELATE:
|
||||||
|
node = new PixelateNode(b_node);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
node = new MuteNode(b_node);
|
node = new MuteNode(b_node);
|
||||||
break;
|
break;
|
||||||
|
@@ -91,12 +91,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
|
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Notifies the Input of the data type (via a SocketConnection)
|
|
||||||
* @param datatype the datatype to evaluate
|
|
||||||
*/
|
|
||||||
void notifyActualInputType(DataType datatype);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief move all connections of this input socket to another socket
|
* @brief move all connections of this input socket to another socket
|
||||||
* only use this method when already checked the availability of a SocketConnection
|
* only use this method when already checked the availability of a SocketConnection
|
||||||
|
@@ -34,8 +34,14 @@ void PixelateNode::convertToOperations(ExecutionSystem *graph, CompositorContext
|
|||||||
{
|
{
|
||||||
InputSocket *inputSocket = this->getInputSocket(0);
|
InputSocket *inputSocket = this->getInputSocket(0);
|
||||||
OutputSocket *outputSocket = this->getOutputSocket(0);
|
OutputSocket *outputSocket = this->getOutputSocket(0);
|
||||||
|
DataType datatype = inputSocket->getDataType();
|
||||||
|
if (inputSocket->isConnected()) {
|
||||||
|
SocketConnection * connection = inputSocket->getConnection();
|
||||||
|
OutputSocket* otherOutputSocket = connection->getFromSocket();
|
||||||
|
datatype = otherOutputSocket->getDataType();
|
||||||
|
}
|
||||||
|
|
||||||
PixelateOperation *operation = new PixelateOperation(inputSocket->getDataType());
|
PixelateOperation *operation = new PixelateOperation(datatype);
|
||||||
inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
|
inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
|
||||||
outputSocket->relinkConnections(operation->getOutputSocket(0));
|
outputSocket->relinkConnections(operation->getOutputSocket(0));
|
||||||
graph->addOperation(operation);
|
graph->addOperation(operation);
|
||||||
|
@@ -24,26 +24,26 @@
|
|||||||
|
|
||||||
PixelateOperation::PixelateOperation(DataType datatype) : NodeOperation()
|
PixelateOperation::PixelateOperation(DataType datatype) : NodeOperation()
|
||||||
{
|
{
|
||||||
this->addInputSocket(datatype);
|
this->addInputSocket(datatype);
|
||||||
this->addOutputSocket(datatype);
|
this->addOutputSocket(datatype);
|
||||||
this->setResolutionInputSocketIndex(0);
|
this->setResolutionInputSocketIndex(0);
|
||||||
this->m_inputOperation = NULL;
|
this->m_inputOperation = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PixelateOperation::initExecution()
|
void PixelateOperation::initExecution()
|
||||||
{
|
{
|
||||||
this->m_inputOperation = this->getInputSocketReader(0);
|
this->m_inputOperation = this->getInputSocketReader(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PixelateOperation::deinitExecution()
|
void PixelateOperation::deinitExecution()
|
||||||
{
|
{
|
||||||
this->m_inputOperation = NULL;
|
this->m_inputOperation = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PixelateOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
|
void PixelateOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
|
||||||
{
|
{
|
||||||
float nx = round(x);
|
float nx = round(x);
|
||||||
float ny = round(y);
|
float ny = round(y);
|
||||||
this->m_inputOperation->read(output, nx, ny, sampler);
|
this->m_inputOperation->read(output, nx, ny, sampler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -25,13 +25,43 @@
|
|||||||
|
|
||||||
#include "COM_NodeOperation.h"
|
#include "COM_NodeOperation.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Pixelate operation
|
||||||
|
*
|
||||||
|
* The Tile compositor is by default sub-pixel accurate.
|
||||||
|
* For some setups you don want this.
|
||||||
|
* This operation will remove the sub-pixel accuracy
|
||||||
|
*/
|
||||||
class PixelateOperation : public NodeOperation {
|
class PixelateOperation : public NodeOperation {
|
||||||
private:
|
private:
|
||||||
|
/**
|
||||||
|
* @brief cached refeerence to the input operation
|
||||||
|
*/
|
||||||
SocketReader *m_inputOperation;
|
SocketReader *m_inputOperation;
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* @brief PixelateOperation
|
||||||
|
* @param dataType the datatype to create this operator for (saves datatype conversions)
|
||||||
|
*/
|
||||||
PixelateOperation(DataType dataType);
|
PixelateOperation(DataType dataType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief initialization of the execution
|
||||||
|
*/
|
||||||
void initExecution();
|
void initExecution();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief de-initialization of the execution
|
||||||
|
*/
|
||||||
void deinitExecution();
|
void deinitExecution();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief executePixel
|
||||||
|
* @param output result
|
||||||
|
* @param x x-coordinate
|
||||||
|
* @param y y-coordinate
|
||||||
|
* @param sampler sampler
|
||||||
|
*/
|
||||||
void executePixel(float output[4], float x, float y, PixelSampler sampler);
|
void executePixel(float output[4], float x, float y, PixelSampler sampler);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user