diff options
author | Yuri Roubinsky <chaosus89@gmail.com> | 2020-12-27 00:55:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-27 00:55:45 +0300 |
commit | fb16b1e39bb9ff7fe2e551bbf6659e8d502f84a7 (patch) | |
tree | 8d1dacabbcf828056debd7c75e81dabf3b4b6e2e /servers/rendering/shader_language.h | |
parent | 6019dab0b45e1291e556e6d9e01b625b5076cc3c (diff) | |
parent | fe4c8e387b36a7ee4b931142004bd342d173cf8f (diff) | |
download | redot-engine-fb16b1e39bb9ff7fe2e551bbf6659e8d502f84a7.tar.gz |
Merge pull request #44436 from Chaosus/shader_const_switch
Added support for constants in shader `case` and array size declaration
Diffstat (limited to 'servers/rendering/shader_language.h')
-rw-r--r-- | servers/rendering/shader_language.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h index 9d2d591542..61bd83bc72 100644 --- a/servers/rendering/shader_language.h +++ b/servers/rendering/shader_language.h @@ -437,6 +437,7 @@ public: DataType datatype = TYPE_VOID; String struct_name; bool is_const = false; + Node *size_expression = nullptr; struct Declaration { StringName name; @@ -496,6 +497,7 @@ public: int line; //for completion int array_size; bool is_const; + ConstantNode::Value value; }; Map<StringName, Variable> variables; @@ -819,7 +821,7 @@ private: IDENTIFIER_CONSTANT, }; - bool _find_identifier(const BlockNode *p_block, bool p_allow_reassign, const FunctionInfo &p_function_info, const StringName &p_identifier, DataType *r_data_type = nullptr, IdentifierType *r_type = nullptr, bool *r_is_const = nullptr, int *r_array_size = nullptr, StringName *r_struct_name = nullptr); + bool _find_identifier(const BlockNode *p_block, bool p_allow_reassign, const FunctionInfo &p_function_info, const StringName &p_identifier, DataType *r_data_type = nullptr, IdentifierType *r_type = nullptr, bool *r_is_const = nullptr, int *r_array_size = nullptr, StringName *r_struct_name = nullptr, ConstantNode::Value *r_constant_value = nullptr); 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(OperatorNode *p_op, DataType *r_ret_type = nullptr); |