Blender V4.3
ConstantFolder Class Reference

#include <constant_fold.h>

Public Member Functions

 ConstantFolder (ShaderGraph *graph, ShaderNode *node, ShaderOutput *output, Scene *scene)
 
bool all_inputs_constant () const
 
void make_constant (float value) const
 
void make_constant (float3 value) const
 
void make_constant (int value) const
 
void make_constant_clamp (float value, bool clamp) const
 
void make_constant_clamp (float3 value, bool clamp) const
 
void make_zero () const
 
void make_one () const
 
void bypass (ShaderOutput *output) const
 
void discard () const
 
void bypass_or_discard (ShaderInput *input) const
 
bool try_bypass_or_make_constant (ShaderInput *input, bool clamp=false) const
 
bool is_zero (ShaderInput *input) const
 
bool is_one (ShaderInput *input) const
 
void fold_mix (NodeMix type, bool clamp) const
 
void fold_mix_color (NodeMix type, bool clamp_factor, bool clamp) const
 
void fold_mix_float (bool clamp_factor, bool clamp) const
 
void fold_math (NodeMathType type) const
 
void fold_vector_math (NodeVectorMathType type) const
 
void fold_mapping (NodeMappingType type) const
 

Public Attributes

ShaderGraph *const graph
 
ShaderNode *const node
 
ShaderOutput *const output
 
Scenescene
 

Detailed Description

Definition at line 19 of file constant_fold.h.

Constructor & Destructor Documentation

◆ ConstantFolder()

CCL_NAMESPACE_BEGIN ConstantFolder::ConstantFolder ( ShaderGraph * graph,
ShaderNode * node,
ShaderOutput * output,
Scene * scene )

Definition at line 13 of file constant_fold.cpp.

Member Function Documentation

◆ all_inputs_constant()

◆ bypass()

◆ bypass_or_discard()

void ConstantFolder::bypass_or_discard ( ShaderInput * input) const

◆ discard()

void ConstantFolder::discard ( ) const

◆ fold_mapping()

void ConstantFolder::fold_mapping ( NodeMappingType type) const

◆ fold_math()

◆ fold_mix()

◆ fold_mix_color()

◆ fold_mix_float()

void ConstantFolder::fold_mix_float ( bool clamp_factor,
bool clamp ) const

◆ fold_vector_math()

◆ is_one()

bool ConstantFolder::is_one ( ShaderInput * input) const

◆ is_zero()

bool ConstantFolder::is_zero ( ShaderInput * input) const

◆ make_constant() [1/3]

◆ make_constant() [2/3]

void ConstantFolder::make_constant ( float3 value) const

Definition at line 45 of file constant_fold.cpp.

References ShaderInput::constant_folded_in, ShaderInput::set(), and VLOG_DEBUG.

◆ make_constant() [3/3]

void ConstantFolder::make_constant ( int value) const

Definition at line 58 of file constant_fold.cpp.

References ShaderInput::constant_folded_in, ShaderInput::set(), and VLOG_DEBUG.

◆ make_constant_clamp() [1/2]

void ConstantFolder::make_constant_clamp ( float value,
bool clamp ) const

◆ make_constant_clamp() [2/2]

void ConstantFolder::make_constant_clamp ( float3 value,
bool clamp ) const

Definition at line 76 of file constant_fold.cpp.

References make_constant(), and saturatef.

◆ make_one()

void ConstantFolder::make_one ( ) const

◆ make_zero()

◆ try_bypass_or_make_constant()

bool ConstantFolder::try_bypass_or_make_constant ( ShaderInput * input,
bool clamp = false ) const

Member Data Documentation

◆ graph

ShaderGraph* const ConstantFolder::graph

Definition at line 21 of file constant_fold.h.

Referenced by BumpNode::constant_fold().

◆ node

ShaderNode* const ConstantFolder::node

Definition at line 22 of file constant_fold.h.

◆ output

◆ scene

Scene* ConstantFolder::scene

The documentation for this class was generated from the following files: