< Summary

Class:DCL.CombineLayer
Assembly:AvatarMeshCombiner
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarMeshCombiner/CombineLayer.cs
Covered lines:20
Uncovered lines:6
Coverable lines:26
Total lines:72
Line coverage:76.9% (20 of 26)
Covered branches:0
Total branches:0
Covered methods:7
Total methods:8
Method coverage:87.5% (7 of 8)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Dispose()0%110100%
AddRenderer(...)0%110100%
AddRenderers(...)0%110100%
Rent(...)0%220100%
ToString()0%20400%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarMeshCombiner/CombineLayer.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using UnityEngine;
 4using UnityEngine.Pool;
 5using UnityEngine.Rendering;
 6
 7namespace DCL
 8{
 9    /// <summary>
 10    /// This class is used by the AvatarMeshCombiner to combine meshes. Each layer represents a new generated sub-mesh.
 11    /// </summary>
 12    public class CombineLayer : IDisposable
 13    {
 14        private List<SkinnedMeshRenderer> renderers;
 15
 44116        public IReadOnlyList<SkinnedMeshRenderer> Renderers => renderers;
 54017        public Dictionary<Texture2D, int> textureToId { get; private set; }
 18
 19        public CullMode cullMode;
 20        public bool isOpaque;
 21
 22        public void Dispose()
 23        {
 6524            ListPool<SkinnedMeshRenderer>.Release(renderers);
 6525            DictionaryPool<Texture2D, int>.Release(textureToId);
 26
 6527            renderers = null;
 6528            textureToId = null;
 29
 6530            GenericPool<CombineLayer>.Release(this);
 6531        }
 32
 33        internal void AddRenderer(SkinnedMeshRenderer renderer)
 34        {
 23135            renderers.Add(renderer);
 23136        }
 37
 38        internal void AddRenderers(IReadOnlyCollection<SkinnedMeshRenderer> renderers)
 39        {
 640            this.renderers.AddRange(renderers);
 641        }
 42
 43        public static CombineLayer Rent(CullMode cullMode = CullMode.Off, bool isOpaque = false, IReadOnlyCollection<Ski
 44        {
 8145            var layer = GenericPool<CombineLayer>.Get();
 8146            layer.cullMode = cullMode;
 8147            layer.isOpaque = isOpaque;
 8148            layer.renderers = ListPool<SkinnedMeshRenderer>.Get();
 8149            layer.textureToId = DictionaryPool<Texture2D, int>.Get();
 50
 8151            if (renderers != null)
 552                layer.AddRenderers(renderers);
 53
 8154            return layer;
 55        }
 56
 57        public override string ToString()
 58        {
 059            string rendererString = $"renderer count: {Renderers?.Count ?? 0}";
 060            string textureIdString = "texture ids: {";
 61
 062            foreach ( var kvp in textureToId )
 63            {
 064                textureIdString += $" tx hash: {kvp.Key.GetHashCode()} id: {kvp.Value} ";
 65            }
 66
 067            textureIdString += "}";
 68
 069            return $"cullMode: {cullMode} - isOpaque: {isOpaque} - {rendererString} - {textureIdString}";
 70        }
 71    }
 72}