summaryrefslogtreecommitdiffstats
path: root/scene/resources/shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/shader.h')
-rw-r--r--scene/resources/shader.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/scene/resources/shader.h b/scene/resources/shader.h
index 682fbd7ea6..18197419f3 100644
--- a/scene/resources/shader.h
+++ b/scene/resources/shader.h
@@ -52,7 +52,10 @@ public:
};
private:
- RID shader;
+ mutable RID shader_rid;
+ mutable String preprocessed_code;
+ mutable Mutex shader_rid_mutex;
+
Mode mode = MODE_SPATIAL;
HashSet<Ref<ShaderInclude>> include_dependencies;
String code;
@@ -60,6 +63,7 @@ private:
HashMap<StringName, HashMap<int, Ref<Texture>>> default_textures;
+ void _check_shader_rid() const;
void _dependency_changed();
void _recompile();
virtual void _update_shader() const; //used for visual shader