Clean up Shader Preprocessor

* Moved preprocessor to Shader and ShaderInclude
* Clean up RenderingServer side
* Preprocessor is separate from parser now, but it emits tokens with include location hints.
* Improved ShaderEditor validation code
* Added include file code completion
* Added notification for all files affected by a broken include.
This commit is contained in:
reduz
2022-06-29 11:31:18 +02:00
committed by Juan Linietsky
parent 7b94603baa
commit f649678402
32 changed files with 548 additions and 291 deletions

View File

@ -55,6 +55,7 @@ private:
RID shader;
Mode mode = MODE_SPATIAL;
HashSet<Ref<ShaderInclude>> include_dependencies;
String code;
// hack the name of performance
// shaders keep a list of ShaderMaterial -> RenderingServer name translations, to make
@ -72,6 +73,8 @@ public:
//void set_mode(Mode p_mode);
virtual Mode get_mode() const;
virtual void set_path(const String &p_path, bool p_take_over = false) override;
void set_code(const String &p_code);
String get_code() const;