|
Blender V5.0
|
#include <constant_fold.h>
Public Attributes | |
| ShaderGraph *const | graph |
| ShaderNode *const | node |
| ShaderOutput *const | output |
| Scene * | scene |
Definition at line 18 of file constant_fold.h.
| CCL_NAMESPACE_BEGIN ConstantFolder::ConstantFolder | ( | ShaderGraph * | graph, |
| ShaderNode * | node, | ||
| ShaderOutput * | output, | ||
| Scene * | scene ) |
| bool ConstantFolder::all_inputs_constant | ( | ) | const |
Definition at line 20 of file constant_fold.cpp.
Referenced by BlackbodyNode::constant_fold(), BrightContrastNode::constant_fold(), ClampNode::constant_fold(), CombineColorNode::constant_fold(), CombineXYZNode::constant_fold(), ConvertNode::constant_fold(), CurvesNode::constant_fold(), DisplacementNode::constant_fold(), FloatCurveNode::constant_fold(), GammaNode::constant_fold(), MappingNode::constant_fold(), MathNode::constant_fold(), MixColorNode::constant_fold(), MixFloatNode::constant_fold(), MixNode::constant_fold(), MixVectorNode::constant_fold(), MixVectorNonUniformNode::constant_fold(), RGBRampNode::constant_fold(), RGBToBWNode::constant_fold(), SeparateColorNode::constant_fold(), SeparateXYZNode::constant_fold(), VectorDisplacementNode::constant_fold(), and VectorMathNode::constant_fold().
| void ConstantFolder::bypass | ( | ShaderOutput * | output | ) | const |
Definition at line 112 of file constant_fold.cpp.
References assert, graph, LOG_TRACE, Node::name, ShaderOutput::name(), node, output, outputs, and ShaderOutput::parent.
Referenced by bypass_or_discard(), BumpNode::constant_fold(), ConvertNode::constant_fold(), CurvesNode::constant_fold(), FloatCurveNode::constant_fold(), InvertNode::constant_fold(), and try_bypass_or_make_constant().
| void ConstantFolder::bypass_or_discard | ( | ShaderInput * | input | ) | const |
Definition at line 140 of file constant_fold.cpp.
References assert, bypass(), SocketType::CLOSURE, discard(), and input.
Referenced by AddClosureNode::constant_fold(), and MixClosureNode::constant_fold().
| void ConstantFolder::discard | ( | ) | const |
Definition at line 131 of file constant_fold.cpp.
References assert, SocketType::CLOSURE, graph, LOG_TRACE, node, and output.
Referenced by bypass_or_discard(), BackgroundNode::constant_fold(), and EmissionNode::constant_fold().
| void ConstantFolder::fold_mapping | ( | NodeMappingType | type | ) | const |
Definition at line 573 of file constant_fold.cpp.
References is_one(), is_zero(), make_zero(), node, NODE_MAPPING_TYPE_NORMAL, NODE_MAPPING_TYPE_VECTOR, and try_bypass_or_make_constant().
Referenced by MappingNode::constant_fold().
| void ConstantFolder::fold_math | ( | NodeMathType | type | ) | const |
Definition at line 445 of file constant_fold.cpp.
References is_one(), is_zero(), make_one(), make_zero(), node, NODE_MATH_ADD, NODE_MATH_DIVIDE, NODE_MATH_MULTIPLY, NODE_MATH_POWER, NODE_MATH_SUBTRACT, and try_bypass_or_make_constant().
Referenced by MathNode::constant_fold().
| void ConstantFolder::fold_mix | ( | NodeMix | type, |
| bool | clamp ) const |
Definition at line 213 of file constant_fold.cpp.
References clamp(), is_one(), is_zero(), ShaderInput::link, make_zero(), node, NODE_MIX_ADD, NODE_MIX_BLEND, NODE_MIX_BURN, NODE_MIX_DIV, NODE_MIX_DODGE, NODE_MIX_LIGHT, NODE_MIX_MUL, NODE_MIX_SUB, saturatef, ShaderInput::socket_type, and try_bypass_or_make_constant().
Referenced by MixNode::constant_fold().
| void ConstantFolder::fold_mix_color | ( | NodeMix | type, |
| bool | clamp_factor, | ||
| bool | clamp ) const |
Definition at line 307 of file constant_fold.cpp.
References clamp(), is_one(), is_zero(), ShaderInput::link, make_zero(), node, NODE_MIX_ADD, NODE_MIX_BLEND, NODE_MIX_BURN, NODE_MIX_DIV, NODE_MIX_DODGE, NODE_MIX_LIGHT, NODE_MIX_MUL, NODE_MIX_SUB, saturatef, ShaderInput::set(), ShaderInput::socket_type, and try_bypass_or_make_constant().
Referenced by MixColorNode::constant_fold(), and MixVectorNode::constant_fold().
| void ConstantFolder::fold_mix_float | ( | bool | clamp_factor, |
| bool | clamp ) const |
Definition at line 405 of file constant_fold.cpp.
References clamp(), ShaderInput::link, node, saturatef, ShaderInput::socket_type, and try_bypass_or_make_constant().
Referenced by MixFloatNode::constant_fold().
| void ConstantFolder::fold_vector_math | ( | NodeVectorMathType | type | ) | const |
Definition at line 503 of file constant_fold.cpp.
References is_one(), is_zero(), make_zero(), node, NODE_VECTOR_MATH_ABSOLUTE, NODE_VECTOR_MATH_ADD, NODE_VECTOR_MATH_CROSS_PRODUCT, NODE_VECTOR_MATH_DIVIDE, NODE_VECTOR_MATH_DOT_PRODUCT, NODE_VECTOR_MATH_LENGTH, NODE_VECTOR_MATH_MULTIPLY, NODE_VECTOR_MATH_SCALE, NODE_VECTOR_MATH_SUBTRACT, and try_bypass_or_make_constant().
Referenced by VectorMathNode::constant_fold().
| bool ConstantFolder::is_one | ( | ShaderInput * | input | ) | const |
Definition at line 197 of file constant_fold.cpp.
References SocketType::FLOAT, input, SocketType::is_float3(), node, and one_float3().
Referenced by GammaNode::constant_fold(), fold_mapping(), fold_math(), fold_mix(), fold_mix_color(), and fold_vector_math().
| bool ConstantFolder::is_zero | ( | ShaderInput * | input | ) | const |
Definition at line 183 of file constant_fold.cpp.
References SocketType::FLOAT, input, SocketType::is_float3(), node, and zero_float3().
Referenced by GammaNode::constant_fold(), fold_mapping(), fold_math(), fold_mix(), fold_mix_color(), and fold_vector_math().
| void ConstantFolder::make_constant | ( | const float | value | ) | const |
Definition at line 31 of file constant_fold.cpp.
References ShaderInput::constant_folded_in, graph, LOG_TRACE, node, output, and ShaderInput::set().
Referenced by BlackbodyNode::constant_fold(), BrightContrastNode::constant_fold(), ClampNode::constant_fold(), ColorNode::constant_fold(), CombineColorNode::constant_fold(), CombineXYZNode::constant_fold(), ConvertNode::constant_fold(), CurvesNode::constant_fold(), FloatCurveNode::constant_fold(), GammaNode::constant_fold(), InvertNode::constant_fold(), MappingNode::constant_fold(), MathNode::constant_fold(), MixFloatNode::constant_fold(), MixVectorNode::constant_fold(), MixVectorNonUniformNode::constant_fold(), RGBRampNode::constant_fold(), RGBToBWNode::constant_fold(), SeparateColorNode::constant_fold(), SeparateXYZNode::constant_fold(), ValueNode::constant_fold(), VectorMathNode::constant_fold(), make_constant_clamp(), make_constant_clamp(), make_one(), and make_zero().
| void ConstantFolder::make_constant | ( | const float3 | value | ) | const |
Definition at line 44 of file constant_fold.cpp.
References ShaderInput::constant_folded_in, graph, LOG_TRACE, node, output, and ShaderInput::set().
| void ConstantFolder::make_constant | ( | const int | value | ) | const |
Definition at line 57 of file constant_fold.cpp.
References ShaderInput::constant_folded_in, graph, LOG_TRACE, node, output, and ShaderInput::set().
| void ConstantFolder::make_constant_clamp | ( | const float | value, |
| bool | clamp ) const |
Definition at line 70 of file constant_fold.cpp.
References clamp(), make_constant(), and saturatef.
Referenced by MixColorNode::constant_fold(), MixNode::constant_fold(), and try_bypass_or_make_constant().
| void ConstantFolder::make_constant_clamp | ( | const float3 | value, |
| bool | clamp ) const |
Definition at line 75 of file constant_fold.cpp.
References clamp(), make_constant(), saturatef, float3::x, float3::y, and float3::z.
| void ConstantFolder::make_one | ( | ) | const |
Definition at line 99 of file constant_fold.cpp.
References assert, SocketType::FLOAT, SocketType::is_float3(), make_constant(), one_float3(), and output.
Referenced by GammaNode::constant_fold(), and fold_math().
| void ConstantFolder::make_zero | ( | ) | const |
Definition at line 86 of file constant_fold.cpp.
References assert, SocketType::FLOAT, SocketType::is_float3(), make_constant(), output, and zero_float3().
Referenced by DisplacementNode::constant_fold(), VectorDisplacementNode::constant_fold(), fold_mapping(), fold_math(), fold_mix(), fold_mix_color(), and fold_vector_math().
| bool ConstantFolder::try_bypass_or_make_constant | ( | ShaderInput * | input, |
| bool | clamp = false ) const |
Definition at line 152 of file constant_fold.cpp.
References bypass(), clamp(), SocketType::FLOAT, graph, input, SocketType::is_float3(), ShaderInput::link, make_constant_clamp(), node, and output.
Referenced by GammaNode::constant_fold(), fold_mapping(), fold_math(), fold_mix(), fold_mix_color(), fold_mix_float(), and fold_vector_math().
| ShaderGraph* const ConstantFolder::graph |
Definition at line 20 of file constant_fold.h.
Referenced by bypass(), BumpNode::constant_fold(), ConstantFolder(), discard(), make_constant(), make_constant(), make_constant(), and try_bypass_or_make_constant().
| ShaderNode* const ConstantFolder::node |
Definition at line 21 of file constant_fold.h.
Referenced by all_inputs_constant(), bypass(), ConstantFolder(), discard(), fold_mapping(), fold_math(), fold_mix(), fold_mix_color(), fold_mix_float(), fold_vector_math(), is_one(), is_zero(), make_constant(), make_constant(), make_constant(), and try_bypass_or_make_constant().
| ShaderOutput* const ConstantFolder::output |
Definition at line 22 of file constant_fold.h.
Referenced by bypass(), RGBRampNode::constant_fold(), SeparateColorNode::constant_fold(), SeparateXYZNode::constant_fold(), VectorMathNode::constant_fold(), ConstantFolder(), discard(), make_constant(), make_constant(), make_constant(), make_one(), make_zero(), and try_bypass_or_make_constant().
| Scene* ConstantFolder::scene |
Definition at line 24 of file constant_fold.h.
Referenced by BlackbodyNode::constant_fold(), ConvertNode::constant_fold(), RGBToBWNode::constant_fold(), and ConstantFolder().