diff --git a/Assets/VRMShaders/GLTF/IO/Runtime/TextureFactory.cs b/Assets/VRMShaders/GLTF/IO/Runtime/TextureFactory.cs index 98d158581..6246efabf 100644 --- a/Assets/VRMShaders/GLTF/IO/Runtime/TextureFactory.cs +++ b/Assets/VRMShaders/GLTF/IO/Runtime/TextureFactory.cs @@ -8,12 +8,12 @@ namespace VRMShaders { public class TextureFactory : IResponsibilityForDestroyObjects { - private readonly ITextureDeserializer _textureDeserializer; private readonly IReadOnlyDictionary _externalMap; private readonly bool _isLegacySquaredRoughness; - private readonly Dictionary _temporaryTextures = new Dictionary(); private readonly Dictionary _textureCache = new Dictionary(); + public ITextureDeserializer TextureDeserializer { get; } + /// /// Importer が動的に生成した Texture /// @@ -29,18 +29,13 @@ namespace VRMShaders IReadOnlyDictionary externalTextures, bool isLegacySquaredRoughness) { - _textureDeserializer = textureDeserializer; + TextureDeserializer = textureDeserializer; _externalMap = externalTextures; _isLegacySquaredRoughness = isLegacySquaredRoughness; } public void Dispose() { - foreach (var kv in _temporaryTextures) - { - UnityObjectDestoyer.DestroyRuntimeOrEditor(kv.Value); - } - _temporaryTextures.Clear(); _textureCache.Clear(); } @@ -84,7 +79,7 @@ namespace VRMShaders // > contrary to Unity’s usual convention of using Y as “up” // https://docs.unity3d.com/2018.4/Documentation/Manual/StandardShaderMaterialParameterNormalMap.html var data0 = await texDesc.Index0(); - var rawTexture = await _textureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); + var rawTexture = await TextureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); rawTexture.name = subAssetKey.Name; rawTexture.SetSampler(texDesc.Sampler); _textureCache.Add(subAssetKey, rawTexture); @@ -99,12 +94,12 @@ namespace VRMShaders if (texDesc.Index0 != null) { var data0 = await texDesc.Index0(); - metallicRoughnessTexture = await _textureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); + metallicRoughnessTexture = await TextureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); } if (texDesc.Index1 != null) { var data1 = await texDesc.Index1(); - occlusionTexture = await _textureDeserializer.LoadTextureAsync(data1, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); + occlusionTexture = await TextureDeserializer.LoadTextureAsync(data1, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); } var combinedTexture = OcclusionMetallicRoughnessConverter.Import(metallicRoughnessTexture, @@ -120,7 +115,7 @@ namespace VRMShaders case TextureImportTypes.sRGB: { var data0 = await texDesc.Index0(); - var rawTexture = await _textureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.sRGB); + var rawTexture = await TextureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.sRGB); rawTexture.name = subAssetKey.Name; rawTexture.SetSampler(texDesc.Sampler); _textureCache.Add(subAssetKey, rawTexture); @@ -129,7 +124,7 @@ namespace VRMShaders case TextureImportTypes.Linear: { var data0 = await texDesc.Index0(); - var rawTexture = await _textureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); + var rawTexture = await TextureDeserializer.LoadTextureAsync(data0, texDesc.Sampler.EnableMipMap, ColorSpace.Linear); rawTexture.name = subAssetKey.Name; rawTexture.SetSampler(texDesc.Sampler); _textureCache.Add(subAssetKey, rawTexture); @@ -138,8 +133,6 @@ namespace VRMShaders default: throw new ArgumentOutOfRangeException(); } - - throw new NotImplementedException(); } } }