< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
RenderingController()0%2100%
Awake()0%2100%
OnDestroy()0%2100%
DeactivateRendering()0%6200%
DeactivateRendering_Internal()0%2100%
ActivateRendering()0%2100%
ForceActivateRendering()0%2100%
ActivateRendering(...)0%30500%
ActivateRendering_Internal()0%6200%
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
 011    public CompositeLock renderingActivatedAckLock = new CompositeLock();
 12
 013    private bool activatedRenderingBefore { get; set; } = false;
 14
 15    void Awake()
 16    {
 017        CommonScriptableObjects.rendererState.OnLockAdded += AddLock;
 018        CommonScriptableObjects.rendererState.OnLockRemoved += RemoveLock;
 019        CommonScriptableObjects.rendererState.Set(false);
 020    }
 21
 22    void OnDestroy()
 23    {
 024        CommonScriptableObjects.rendererState.OnLockAdded -= AddLock;
 025        CommonScriptableObjects.rendererState.OnLockRemoved -= RemoveLock;
 026    }
 27
 28    [ContextMenu("Disable Rendering")]
 29    public void DeactivateRendering()
 30    {
 031        if (!CommonScriptableObjects.rendererState.Get())
 032            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    {
 047        ActivateRendering(forceActivate: false);
 048    }
 49
 50    public void ForceActivateRendering()
 51    {
 052        ActivateRendering(forceActivate: true);
 053    }
 54
 55    public void ActivateRendering(bool forceActivate)
 56    {
 057        if (CommonScriptableObjects.rendererState.Get())
 058            return;
 59
 060        if (!firstActivationTimeHasBeenSet)
 61        {
 062            firstActivationTime = Time.realtimeSinceStartup;
 063            firstActivationTimeHasBeenSet = true;
 64        }
 65
 066        if (!forceActivate && !renderingActivatedAckLock.isUnlocked)
 67        {
 068            renderingActivatedAckLock.OnAllLocksRemoved -= ActivateRendering_Internal;
 069            renderingActivatedAckLock.OnAllLocksRemoved += ActivateRendering_Internal;
 070            return;
 71        }
 72
 073        ActivateRendering_Internal();
 074    }
 75
 76    private void ActivateRendering_Internal()
 77    {
 078        renderingActivatedAckLock.OnAllLocksRemoved -= ActivateRendering_Internal;
 79
 080        if (!activatedRenderingBefore)
 81        {
 082            Utils.UnlockCursor();
 083            activatedRenderingBefore = true;
 84        }
 85
 086        DCL.Configuration.ParcelSettings.VISUAL_LOADING_ENABLED = true;
 087        CommonScriptableObjects.rendererState.Set(true);
 88
 089        WebInterface.ReportControlEvent(new WebInterface.ActivateRenderingACK());
 090    }
 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}