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 'intern/cycles/render/nodes.h')
-rw-r--r--intern/cycles/render/nodes.h57
1 files changed, 17 insertions, 40 deletions
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index a5495ff3671..9e93f30e75e 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -70,15 +70,6 @@ public:
/* Nodes */
-/* Any node which uses image manager's slot should be a subclass of this one. */
-class ImageSlotNode : public ShaderNode {
-public:
- ImageSlotNode(const char *name_) : ShaderNode(name_) {
- special_type = SHADER_SPECIAL_TYPE_IMAGE_SLOT;
- }
- int slot;
-};
-
class TextureNode : public ShaderNode {
public:
TextureNode(const char *name_) : ShaderNode(name_) {}
@@ -90,15 +81,13 @@ public:
}
};
-class ImageSlotTextureNode : public ImageSlotNode {
+/* Any node which uses image manager's slot should be a subclass of this one. */
+class ImageSlotTextureNode : public TextureNode {
public:
- ImageSlotTextureNode(const char *name_) : ImageSlotNode(name_) {}
- TextureMapping tex_mapping;
-
- virtual bool equals(const ShaderNode *other) {
- return ShaderNode::equals(other) &&
- tex_mapping.equals(((const ImageSlotTextureNode*)other)->tex_mapping);
+ ImageSlotTextureNode(const char *name_) : TextureNode(name_) {
+ special_type = SHADER_SPECIAL_TYPE_IMAGE_SLOT;
}
+ int slot;
};
class ImageTextureNode : public ImageSlotTextureNode {
@@ -372,7 +361,7 @@ public:
ConvertNode(ShaderSocketType from, ShaderSocketType to, bool autoconvert = false);
SHADER_NODE_BASE_CLASS(ConvertNode)
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
ShaderSocketType from, to;
@@ -385,23 +374,6 @@ public:
}
};
-class ProxyNode : public ShaderNode {
-public:
- ProxyNode(ShaderSocketType type);
- SHADER_NODE_BASE_CLASS(ProxyNode)
-
- ShaderSocketType type;
-
- virtual bool equals(const ShaderNode * /*other*/)
- {
- /* Proxy nodes are created for node groups and can't be duplicated
- * actually. So in order to make code a bit more robust in obscure cases
- * lets explicitly forbid de-duplication of proxy nodes for now.
- */
- return false;
- }
-};
-
class BsdfNode : public ShaderNode {
public:
BsdfNode(bool scattering = false);
@@ -505,6 +477,7 @@ public:
class EmissionNode : public ShaderNode {
public:
SHADER_NODE_CLASS(EmissionNode)
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
bool has_surface_emission() { return true; }
};
@@ -512,6 +485,7 @@ public:
class BackgroundNode : public ShaderNode {
public:
SHADER_NODE_CLASS(BackgroundNode)
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
};
class HoldoutNode : public ShaderNode {
@@ -650,7 +624,7 @@ class ValueNode : public ShaderNode {
public:
SHADER_NODE_CLASS(ValueNode)
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
float value;
@@ -665,7 +639,7 @@ class ColorNode : public ShaderNode {
public:
SHADER_NODE_CLASS(ColorNode)
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
float3 value;
@@ -684,6 +658,7 @@ public:
class MixClosureNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MixClosureNode)
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
};
class MixClosureWeightNode : public ShaderNode {
@@ -701,6 +676,7 @@ public:
class MixNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MixNode)
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
virtual int get_group() { return NODE_GROUP_LEVEL_3; }
@@ -743,7 +719,7 @@ class GammaNode : public ShaderNode {
public:
SHADER_NODE_CLASS(GammaNode)
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
virtual int get_group() { return NODE_GROUP_LEVEL_1; }
};
@@ -834,7 +810,7 @@ public:
class BlackbodyNode : public ShaderNode {
public:
SHADER_NODE_CLASS(BlackbodyNode)
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
virtual int get_group() { return NODE_GROUP_LEVEL_3; }
};
@@ -843,7 +819,7 @@ class MathNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MathNode)
virtual int get_group() { return NODE_GROUP_LEVEL_1; }
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
bool use_clamp;
@@ -878,7 +854,7 @@ class VectorMathNode : public ShaderNode {
public:
SHADER_NODE_CLASS(VectorMathNode)
virtual int get_group() { return NODE_GROUP_LEVEL_1; }
- bool constant_fold(ShaderOutput *socket, float3 *optimized_value);
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
ustring type;
static ShaderEnum type_enum;
@@ -916,6 +892,7 @@ public:
class BumpNode : public ShaderNode {
public:
SHADER_NODE_CLASS(BumpNode)
+ bool constant_fold(ShaderGraph *graph, ShaderOutput *socket, float3 *optimized_value);
bool has_spatial_varying() { return true; }
virtual int get_feature() {
return NODE_FEATURE_BUMP;