summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
committertylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
commiteb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch)
treeefd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback
downloadunityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip
move to self host
Diffstat (limited to 'VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback')
-rw-r--r--VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs42
-rw-r--r--VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs.meta11
2 files changed, 53 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs
new file mode 100644
index 00000000..5a65be9b
--- /dev/null
+++ b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs
@@ -0,0 +1,42 @@
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+public class FallbackMaterialCache
+{
+ private readonly Dictionary<Material, Material> _fallbackMaterialCache = new Dictionary<Material, Material>();
+
+ public void AddFallbackMaterial(Material material, Material fallbackMaterial)
+ {
+ if(!_fallbackMaterialCache.ContainsKey(material))
+ {
+ _fallbackMaterialCache.Add(material, fallbackMaterial);
+ }
+ else
+ {
+ Debug.LogError($"Attempted to add a duplicate fallback material '{fallbackMaterial.name}' for original material '{material.name}'.");
+ }
+ }
+
+ public bool TryGetFallbackMaterial(Material material, out Material fallbackMaterial)
+ {
+ if(material != null)
+ {
+ return _fallbackMaterialCache.TryGetValue(material, out fallbackMaterial);
+ }
+
+ fallbackMaterial = null;
+ return false;
+ }
+
+ public void Clear()
+ {
+ Material[] cachedFallbackMaterials = _fallbackMaterialCache.Values.ToArray();
+ for(int i = cachedFallbackMaterials.Length - 1; i >= 0; i--)
+ {
+ Object.Destroy(cachedFallbackMaterials[i]);
+ }
+
+ _fallbackMaterialCache.Clear();
+ }
+}
diff --git a/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs.meta b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs.meta
new file mode 100644
index 00000000..64637629
--- /dev/null
+++ b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/Dependencies/VRChat/Scripts/MaterialFallback/FallbackMaterialCache.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 10121679f780956408f9a434a526f553
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: