Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/intern/COM_InputSocket.cpp')
-rw-r--r--source/blender/compositor/intern/COM_InputSocket.cpp150
1 files changed, 38 insertions, 112 deletions
diff --git a/source/blender/compositor/intern/COM_InputSocket.cpp b/source/blender/compositor/intern/COM_InputSocket.cpp
index 4d96d077901..3ca74f157b4 100644
--- a/source/blender/compositor/intern/COM_InputSocket.cpp
+++ b/source/blender/compositor/intern/COM_InputSocket.cpp
@@ -25,18 +25,18 @@
#include "COM_SocketConnection.h"
#include "COM_ExecutionSystem.h"
-InputSocket::InputSocket(DataType datatype) :Socket(datatype)
+InputSocket::InputSocket(DataType datatype) : Socket(datatype)
{
this->connection = NULL;
this->resizeMode = COM_SC_CENTER;
}
-InputSocket::InputSocket(DataType datatype, InputSocketResizeMode resizeMode) :Socket(datatype)
+InputSocket::InputSocket(DataType datatype, InputSocketResizeMode resizeMode) : Socket(datatype)
{
this->connection = NULL;
this->resizeMode = resizeMode;
}
-InputSocket::InputSocket(InputSocket *from) :Socket(from->getDataType())
+InputSocket::InputSocket(InputSocket *from) : Socket(from->getDataType())
{
this->connection = NULL;
this->resizeMode = from->getResizeMode();
@@ -54,7 +54,7 @@ SocketConnection *InputSocket::getConnection()
return this->connection;
}
-void InputSocket::determineResolution(unsigned int resolution[],unsigned int preferredResolution[])
+void InputSocket::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
{
if (this->isConnected()) {
this->connection->getFromSocket()->determineResolution(resolution, preferredResolution);
@@ -64,68 +64,6 @@ void InputSocket::determineResolution(unsigned int resolution[],unsigned int pre
}
}
-DataType InputSocket::convertToSupportedDataType(DataType datatype)
-{
- int supportedDataTypes = getDataType();
- if (supportedDataTypes&datatype) {
- return datatype;
- }
- bool candoValue = supportedDataTypes&COM_DT_VALUE;
- bool candoVector = supportedDataTypes&COM_DT_VECTOR;
- bool candoColor = supportedDataTypes&COM_DT_COLOR;
-
- if (datatype == COM_DT_VALUE) {
- if (candoColor) {
- return COM_DT_COLOR;
- }
- else if (candoVector) {
- return COM_DT_VECTOR;
- }
- }
- else if (datatype == COM_DT_VECTOR) {
- if (candoColor) {
- return COM_DT_COLOR;
- }
- else if (candoValue) {
- return COM_DT_VALUE;
- }
- }
- else if (datatype == COM_DT_COLOR) {
- if (candoVector) {
- return COM_DT_VECTOR;
- }
- else if (candoValue) {
- return COM_DT_VALUE;
- }
- }
- return this->getDataType();
-}
-
-void InputSocket::determineActualDataType()
-{
- /// @note: this method is only called for inputsocket that are not connected.
- /// @note: passes COM_DT_COLOR, the convertToSupportedDataType converts this to a capable DataType
- this->setActualDataType(this->convertToSupportedDataType(COM_DT_COLOR));
- #if 0 // XXX TODO check for proxy node and use output data type?
- if (this->getGroupOutputSocket()) {
- if (!this->isInsideOfGroupNode()) {
- this->getGroupOutputSocket()->determineActualDataType();
- }
- }
- #endif
-}
-
-void InputSocket::notifyActualInputType(DataType datatype)
-{
- DataType supportedDataType = convertToSupportedDataType(datatype);
- this->setActualDataType(supportedDataType);
- this->fireActualDataTypeSet();
-}
-
-void InputSocket::fireActualDataTypeSet()
-{
- this->getNode()->notifyActualDataTypeSet(this, this->getActualDataType());
-}
void InputSocket::relinkConnections(InputSocket *relinkToSocket)
{
if (!isConnected()) {
@@ -140,23 +78,22 @@ void InputSocket::relinkConnections(InputSocket *relinkToSocket)
void InputSocket::relinkConnectionsDuplicate(InputSocket *relinkToSocket, int editorNodeInputSocketIndex, ExecutionSystem *graph)
{
if (!this->isConnected()) {
- Node *node = (Node*)this->getNode();
- switch (this->getActualDataType()) {
- case COM_DT_UNKNOWN:
- case COM_DT_COLOR:
- node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
- case COM_DT_VECTOR:
- node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
- case COM_DT_VALUE:
- node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
+ Node *node = (Node *)this->getNode();
+ switch (this->getDataType()) {
+ case COM_DT_COLOR:
+ node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VECTOR:
+ node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VALUE:
+ node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
}
return;
}
- SocketConnection * newConnection = new SocketConnection();
- OutputSocket * fromSocket = this->getConnection()->getFromSocket();
+ SocketConnection *newConnection = new SocketConnection();
+ OutputSocket *fromSocket = this->getConnection()->getFromSocket();
newConnection->setToSocket(relinkToSocket);
newConnection->setFromSocket(fromSocket);
relinkToSocket->setConnection(newConnection);
@@ -170,32 +107,21 @@ void InputSocket::relinkConnections(InputSocket *relinkToSocket, int editorNode
relinkConnections(relinkToSocket);
}
else {
- Node *node = (Node*)this->getNode();
- switch (this->getActualDataType()) {
- case COM_DT_UNKNOWN:
- case COM_DT_COLOR:
- node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
- case COM_DT_VECTOR:
- node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
- case COM_DT_VALUE:
- node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
- break;
+ Node *node = (Node *)this->getNode();
+ switch (this->getDataType()) {
+ case COM_DT_COLOR:
+ node->addSetColorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VECTOR:
+ node->addSetVectorOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
+ case COM_DT_VALUE:
+ node->addSetValueOperation(graph, relinkToSocket, editorNodeInputSocketIndex);
+ break;
}
}
}
-const ChannelInfo *InputSocket::getChannelInfo(const int channelnumber)
-{
- if (this->isConnected() && this->connection->getFromSocket()) {
- return this->connection->getFromSocket()->getChannelInfo(channelnumber);
- }
- else {
- return NULL;
- }
-}
-
bool InputSocket::isStatic()
{
if (isConnected()) {
@@ -214,7 +140,7 @@ SocketReader *InputSocket::getReader()
NodeOperation *InputSocket::getOperation() const
{
if (isConnected()) {
- return (NodeOperation*)this->connection->getFromSocket()->getNode();
+ return (NodeOperation *)this->connection->getFromSocket()->getNode();
}
else {
return NULL;
@@ -230,14 +156,14 @@ float *InputSocket::getStaticValues()
static float default_null = 0.0f;
switch (this->getDataType()) {
- case COM_DT_VALUE:
- return &((bNodeSocketValueFloat*)b_socket->default_value)->value;
- case COM_DT_COLOR:
- return ((bNodeSocketValueRGBA*)b_socket->default_value)->value;
- case COM_DT_VECTOR:
- return ((bNodeSocketValueVector*)b_socket->default_value)->value;
- default:
- /* XXX this should never happen, just added to please the compiler */
- return &default_null;
+ case COM_DT_VALUE:
+ return &((bNodeSocketValueFloat *)b_socket->default_value)->value;
+ case COM_DT_COLOR:
+ return ((bNodeSocketValueRGBA *)b_socket->default_value)->value;
+ case COM_DT_VECTOR:
+ return ((bNodeSocketValueVector *)b_socket->default_value)->value;
+ default:
+ /* XXX this should never happen, just added to please the compiler */
+ return &default_null;
}
}