< Summary

Class:DCL.SettingsCommon.SettingsControllers.SpecificControllers.ShadowResolutionControlController
Assembly:SettingsControllers
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Settings/SettingsControllers/SpecificControllers/ShadowResolutionControlController.cs
Covered lines:10
Uncovered lines:1
Coverable lines:11
Total lines:40
Line coverage:90.9% (10 of 11)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:3
Method coverage:100% (3 of 3)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Initialize()0%2.022083.33%
GetStoredValue()0%110100%
UpdateSetting(...)0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Settings/SettingsControllers/SpecificControllers/ShadowResolutionControlController.cs

#LineLine coverage
 1using System.Reflection;
 2using DCL.SettingsCommon.SettingsControllers.BaseControllers;
 3using UnityEngine;
 4using UnityEngine.Rendering;
 5using UnityEngine.Rendering.Universal;
 6
 7namespace DCL.SettingsCommon.SettingsControllers.SpecificControllers
 8{
 9    [CreateAssetMenu(menuName = "Settings/Controllers/Controls/Shadow Resolution", fileName = "ShadowResolutionControlCo
 10    public class ShadowResolutionControlController : SpinBoxSettingsControlController
 11    {
 12        private const int LOG2_256 = 8; // log2(256), where 256 is the lowest Resolution in Unity (it goes [256, 512, 10
 13
 14        private UniversalRenderPipelineAsset lightweightRenderPipelineAsset;
 15        private FieldInfo lwrpaShadowResolutionField;
 16
 17        public override void Initialize()
 18        {
 219            base.Initialize();
 20
 221            lightweightRenderPipelineAsset = GraphicsSettings.renderPipelineAsset as UniversalRenderPipelineAsset;
 22
 223            if (lightweightRenderPipelineAsset == null)
 024                return;
 25
 226            lwrpaShadowResolutionField = lightweightRenderPipelineAsset.GetType().GetField("m_MainLightShadowmapResoluti
 227        }
 28
 29        public override object GetStoredValue() =>
 230            (int)Mathf.Log((int)currentQualitySetting.shadowResolution, 2) - LOG2_256;
 31
 32        public override void UpdateSetting(object newValue)
 33        {
 234            currentQualitySetting.shadowResolution = (UnityEngine.Rendering.Universal.ShadowResolution)(256 << (int)newV
 35
 236            if (lightweightRenderPipelineAsset != null)
 237                lwrpaShadowResolutionField?.SetValue(lightweightRenderPipelineAsset, currentQualitySetting.shadowResolut
 238        }
 39    }
 40}