< Summary

Class:RenderingController
Assembly:Rendering
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/Rendering/RenderingController.cs
Covered lines:27
Uncovered lines:24
Coverable lines:51
Total lines:110
Line coverage:52.9% (27 of 51)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
RenderingController()0%110100%
Awake()0%110100%
OnDestroy()0%110100%
DeactivateRendering()0%2.52050%
DeactivateRendering_Internal()0%2100%
ActivateRendering()0%110100%
ForceActivateRendering()0%2100%
ActivateRendering(...)0%6.25063.64%
ActivateRendering_Internal()0%220100%
AddLock(...)0%30500%
RemoveLock(...)0%20400%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/Rendering/RenderingController.cs

#LineLine coverage
 1using DCL.Helpers;
 2using DCL.Interface;
 3using UnityEngine;
 4
 5public class RenderingController : MonoBehaviour
 6{
 07    public static float firstActivationTime { get; private set; }
 8    private bool firstActivationTimeHasBeenSet = false;
 9    private bool VERBOSE = false;
 10
 111    public CompositeLock renderingActivatedAckLock = new CompositeLock();
 12
 013    private bool activatedRenderingBefore { get; set; } = false;
 14
 15    void Awake()
 16    {
 117        CommonScriptableObjects.rendererState.OnLockAdded += AddLock;
 118        CommonScriptableObjects.rendererState.OnLockRemoved += RemoveLock;
 119        CommonScriptableObjects.rendererState.Set(false);
 120    }
 21
 22    void OnDestroy()
 23    {
 124        CommonScriptableObjects.rendererState.OnLockAdded -= AddLock;
 125        CommonScriptableObjects.rendererState.OnLockRemoved -= RemoveLock;
 126    }
 27
 28    [ContextMenu("Disable Rendering")]
 29    public void DeactivateRendering()
 30    {
 131        if (!CommonScriptableObjects.rendererState.Get())
 132            return;
 33
 034        DeactivateRendering_Internal();
 035    }
 36
 37    void DeactivateRendering_Internal()
 38    {
 039        DCL.Configuration.ParcelSettings.VISUAL_LOADING_ENABLED = false;
 040        CommonScriptableObjects.rendererState.Set(false);
 041        WebInterface.ReportControlEvent(new WebInterface.DeactivateRenderingACK());
 042    }
 43
 44    [ContextMenu("Enable Rendering")]
 45    public void ActivateRendering()
 46    {
 147        ActivateRendering(forceActivate: false);
 148    }
 49
 50    public void ForceActivateRendering()
 51    {
 052        ActivateRendering(forceActivate: true);
 053    }
 54
 55    public void ActivateRendering(bool forceActivate)
 56    {
 157        if (CommonScriptableObjects.rendererState.Get())
 058            return;
 59
 160        if (!firstActivationTimeHasBeenSet)
 61        {
 162            firstActivationTime = Time.realtimeSinceStartup;
 163            firstActivationTimeHasBeenSet = true;
 64        }
 65
 166        if (!forceActivate && !renderingActivatedAckLock.isUnlocked)
 67        {
 068            renderingActivatedAckLock.OnAllLocksRemoved -= ActivateRendering_Internal;
 069            renderingActivatedAckLock.OnAllLocksRemoved += ActivateRendering_Internal;
 070            return;
 71        }
 72
 173        ActivateRendering_Internal();
 174    }
 75
 76    private void ActivateRendering_Internal()
 77    {
 178        renderingActivatedAckLock.OnAllLocksRemoved -= ActivateRendering_Internal;
 79
 180        if (!activatedRenderingBefore)
 81        {
 182            Utils.UnlockCursor();
 183            activatedRenderingBefore = true;
 84        }
 85
 186        DCL.Configuration.ParcelSettings.VISUAL_LOADING_ENABLED = true;
 187        CommonScriptableObjects.rendererState.Set(true);
 88
 189        WebInterface.ReportControlEvent(new WebInterface.ActivateRenderingACK());
 190    }
 91
 92    private void AddLock(object id)
 93    {
 094        if (CommonScriptableObjects.rendererState.Get())
 095            return;
 96
 097        if (VERBOSE)
 098            Debug.Log("Add lock: " + id);
 99
 0100        renderingActivatedAckLock.AddLock(id);
 0101    }
 102
 103    private void RemoveLock(object id)
 104    {
 0105        if (VERBOSE)
 0106            Debug.Log("remove lock: " + id);
 107
 0108        renderingActivatedAckLock.RemoveLock(id);
 0109    }
 110}