< Summary

Class:MainScripts.DCL.Controllers.ShaderPrewarm.ShaderPrewarm
Assembly:ShaderPrewarm
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ShaderPrewarm/ShaderPrewarm.cs
Covered lines:0
Uncovered lines:15
Coverable lines:15
Total lines:45
Line coverage:0% (0 of 15)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:2
Method coverage:0% (0 of 2)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ShaderPrewarm(...)0%2100%
PrewarmAsync()0%90900%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ShaderPrewarm/ShaderPrewarm.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL.Providers;
 3using System;
 4using System.Threading;
 5using UnityEngine;
 6using Environment = DCL.Environment;
 7
 8namespace MainScripts.DCL.Controllers.ShaderPrewarm
 9{
 10    public class ShaderPrewarm : IShaderPrewarm
 11    {
 12        private const string SHADER_VARIANTS_ASSET = "ShaderVariantsData";
 13
 14        private readonly IAddressableResourceProvider addressables;
 15        private bool areShadersPrewarm;
 16
 017        public ShaderPrewarm(IAddressableResourceProvider addressables)
 18        {
 019            this.addressables = addressables;
 020        }
 21
 22        public async UniTask PrewarmAsync(Action<float> progressCallback, CancellationToken cancellationToken)
 23        {
 024            if (areShadersPrewarm) return;
 25
 026            await UniTask.Yield();
 27
 028            var variantsData = await addressables.GetAddressable<ShaderVariantsData>(SHADER_VARIANTS_ASSET, cancellation
 29
 030            int length = variantsData.collections.Length;
 31
 032            for (var i = 0; i < length; i++)
 33            {
 034                ShaderVariantCollection collection = variantsData.collections[i];
 35
 036                progressCallback.Invoke(i / (float)length);
 037                await UniTask.Yield(PlayerLoopTiming.PostLateUpdate, cancellationToken);
 38
 039                collection.WarmUp();
 040            }
 41
 042            areShadersPrewarm = true;
 043        }
 44    }
 45}