You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
[Shaders] Allow constants and expressions in hint_range
This commit is contained in:
@@ -862,12 +862,14 @@ public:
|
||||
struct BuiltInInfo {
|
||||
DataType type = TYPE_VOID;
|
||||
bool constant = false;
|
||||
Vector<Scalar> values;
|
||||
|
||||
BuiltInInfo() {}
|
||||
|
||||
BuiltInInfo(DataType p_type, bool p_constant = false) :
|
||||
BuiltInInfo(DataType p_type, bool p_constant = false, const Vector<Scalar> &p_values = {}) :
|
||||
type(p_type),
|
||||
constant(p_constant) {}
|
||||
constant(p_constant),
|
||||
values(p_values) {}
|
||||
};
|
||||
|
||||
struct StageFunctionInfo {
|
||||
@@ -1119,10 +1121,10 @@ private:
|
||||
#endif // DEBUG_ENABLED
|
||||
bool _is_operator_assign(Operator p_op) const;
|
||||
bool _validate_assign(Node *p_node, const FunctionInfo &p_function_info, String *r_message = nullptr);
|
||||
bool _validate_operator(const BlockNode *p_block, OperatorNode *p_op, DataType *r_ret_type = nullptr, int *r_ret_size = nullptr);
|
||||
bool _validate_operator(const BlockNode *p_block, const FunctionInfo &p_function_info, OperatorNode *p_op, DataType *r_ret_type = nullptr, int *r_ret_size = nullptr);
|
||||
|
||||
Vector<Scalar> _get_node_values(const BlockNode *p_block, Node *p_node);
|
||||
bool _eval_operator(const BlockNode *p_block, OperatorNode *p_op);
|
||||
Vector<Scalar> _get_node_values(const BlockNode *p_block, const FunctionInfo &p_function_info, Node *p_node);
|
||||
bool _eval_operator(const BlockNode *p_block, const FunctionInfo &p_function_info, OperatorNode *p_op);
|
||||
Scalar _eval_unary_scalar(const Scalar &p_a, Operator p_op, DataType p_ret_type);
|
||||
Scalar _eval_scalar(const Scalar &p_a, const Scalar &p_b, Operator p_op, DataType p_ret_type, bool &r_is_valid);
|
||||
Vector<Scalar> _eval_unary_vector(const Vector<Scalar> &p_va, DataType p_ret_type, Operator p_op);
|
||||
@@ -1212,6 +1214,7 @@ private:
|
||||
String _get_shader_type_list(const HashSet<String> &p_shader_types) const;
|
||||
String _get_qualifier_str(ArgumentQualifier p_qualifier) const;
|
||||
|
||||
bool _parse_numeric_constant_expression(const FunctionInfo &p_function_info, float &r_constant);
|
||||
Error _parse_shader(const HashMap<StringName, FunctionInfo> &p_functions, const Vector<ModeInfo> &p_render_modes, const HashSet<String> &p_shader_types);
|
||||
|
||||
Error _find_last_flow_op_in_block(BlockNode *p_block, FlowOperation p_op);
|
||||
|
||||
Reference in New Issue
Block a user