[VisualShader] Merge scalar and vector derivative functions into one
This commit is contained in:
parent
b9a2569be6
commit
88b2afa28f
6 changed files with 105 additions and 198 deletions
|
|
@ -1235,13 +1235,19 @@ public:
|
|||
VARIANT_ENUM_CAST(VisualShaderNodeClamp::OpType)
|
||||
|
||||
///////////////////////////////////////
|
||||
/// DERIVATIVE FUNCTIONS
|
||||
/// DERIVATIVE FUNCTION
|
||||
///////////////////////////////////////
|
||||
|
||||
class VisualShaderNodeScalarDerivativeFunc : public VisualShaderNode {
|
||||
GDCLASS(VisualShaderNodeScalarDerivativeFunc, VisualShaderNode);
|
||||
class VisualShaderNodeDerivativeFunc : public VisualShaderNode {
|
||||
GDCLASS(VisualShaderNodeDerivativeFunc, VisualShaderNode);
|
||||
|
||||
public:
|
||||
enum OpType {
|
||||
OP_TYPE_SCALAR,
|
||||
OP_TYPE_VECTOR,
|
||||
OP_TYPE_MAX,
|
||||
};
|
||||
|
||||
enum Function {
|
||||
FUNC_SUM,
|
||||
FUNC_X,
|
||||
|
|
@ -1250,8 +1256,10 @@ public:
|
|||
};
|
||||
|
||||
protected:
|
||||
OpType op_type = OP_TYPE_SCALAR;
|
||||
Function func = FUNC_SUM;
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
|
|
@ -1267,56 +1275,19 @@ public:
|
|||
|
||||
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
|
||||
|
||||
void set_function(Function p_func);
|
||||
Function get_function() const;
|
||||
|
||||
virtual Vector<StringName> get_editable_properties() const override;
|
||||
|
||||
VisualShaderNodeScalarDerivativeFunc();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(VisualShaderNodeScalarDerivativeFunc::Function)
|
||||
|
||||
///////////////////////////////////////
|
||||
|
||||
class VisualShaderNodeVectorDerivativeFunc : public VisualShaderNode {
|
||||
GDCLASS(VisualShaderNodeVectorDerivativeFunc, VisualShaderNode);
|
||||
|
||||
public:
|
||||
enum Function {
|
||||
FUNC_SUM,
|
||||
FUNC_X,
|
||||
FUNC_Y,
|
||||
FUNC_MAX,
|
||||
};
|
||||
|
||||
protected:
|
||||
Function func = FUNC_SUM;
|
||||
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
virtual String get_caption() const override;
|
||||
|
||||
virtual int get_input_port_count() const override;
|
||||
virtual PortType get_input_port_type(int p_port) const override;
|
||||
virtual String get_input_port_name(int p_port) const override;
|
||||
|
||||
virtual int get_output_port_count() const override;
|
||||
virtual PortType get_output_port_type(int p_port) const override;
|
||||
virtual String get_output_port_name(int p_port) const override;
|
||||
|
||||
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const override;
|
||||
void set_op_type(OpType p_op_type);
|
||||
OpType get_op_type() const;
|
||||
|
||||
void set_function(Function p_func);
|
||||
Function get_function() const;
|
||||
|
||||
virtual Vector<StringName> get_editable_properties() const override;
|
||||
|
||||
VisualShaderNodeVectorDerivativeFunc();
|
||||
VisualShaderNodeDerivativeFunc();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(VisualShaderNodeVectorDerivativeFunc::Function)
|
||||
VARIANT_ENUM_CAST(VisualShaderNodeDerivativeFunc::OpType)
|
||||
VARIANT_ENUM_CAST(VisualShaderNodeDerivativeFunc::Function)
|
||||
|
||||
///////////////////////////////////////
|
||||
/// FACEFORWARD
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue