summaryrefslogtreecommitdiff
path: root/Runtime/Shaders/ShaderNameRegistry.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Shaders/ShaderNameRegistry.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Shaders/ShaderNameRegistry.h')
-rw-r--r--Runtime/Shaders/ShaderNameRegistry.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/Runtime/Shaders/ShaderNameRegistry.h b/Runtime/Shaders/ShaderNameRegistry.h
new file mode 100644
index 0000000..1643f4d
--- /dev/null
+++ b/Runtime/Shaders/ShaderNameRegistry.h
@@ -0,0 +1,54 @@
+#pragma once
+
+#include "Runtime/BaseClasses/GameManager.h"
+#include <string>
+#include <map>
+#include "Runtime/Shaders/NameToObjectMap.h"
+#include "Runtime/Modules/ExportModules.h"
+
+using std::string;
+
+class Shader;
+typedef std::vector< PPtr<Shader> > ShaderPtrVector;
+
+
+class EXPORT_COREMODULE ScriptMapper : public GlobalGameManager
+{
+public:
+ typedef std::multimap<UnityStr, PPtr<Shader> > StringToShader;
+ REGISTER_DERIVED_CLASS (ScriptMapper, GlobalGameManager)
+ DECLARE_OBJECT_SERIALIZE (ScriptMapper)
+
+ typedef NameToObjectMap<Shader, std::map<PPtr<Shader>, UnityStr>, std::multimap<UnityStr, PPtr<Shader> > > Shaders;
+
+ ScriptMapper (MemLabelId label, ObjectCreationMode mode);
+ // virtual ~ScriptMapper (); declared-by-macro
+
+ // Add a shader to the system.
+ void AddShader (Shader& ptr);
+ void AddBuiltinShader (const std::string& className, PPtr<Shader> ptr);
+
+ // Get a shader by name.
+ // If the shader could not be loaded (e.g. because it was deleted), it is removed from the master list.
+ Shader* FindShader (const string &name);
+
+ bool ShouldIgnoreInGarbageDependencyTracking ();
+
+ #if UNITY_EDITOR
+
+ Shader *GetDefaultShader() { return FindShader( "Diffuse" ); }
+
+ const Shaders& GetShaders () { return m_Shaders; }
+ void SetShaders (const Shaders& shaders) { m_Shaders = shaders; }
+
+ #endif // UNITY_EDITOR
+
+private:
+ Shaders m_Shaders;
+};
+
+ScriptMapper& GetScriptMapper ();
+ScriptMapper* GetScriptMapperPtr ();
+
+
+Shader* FindShaderLabShader (const std::string& name, ShaderPtrVector& shaderLookup, bool useLookup);