< Summary

Class:DCL.BakedCombineInstances
Assembly:AvatarMeshCombiner
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarMeshCombiner/BakedCombineInstances.cs
Covered lines:15
Uncovered lines:0
Coverable lines:15
Total lines:50
Line coverage:100% (15 of 15)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:2
Method coverage:100% (2 of 2)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Dispose()0%220100%
Bake(...)0%220100%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Buffers;
 3using System.Collections.Generic;
 4using UnityEngine;
 5using UnityEngine.Pool;
 6using Object = UnityEngine.Object;
 7
 8namespace DCL
 9{
 10    public struct BakedCombineInstances : IDisposable
 11    {
 12        private Mesh[] bakedMeshes;
 13
 14        public void Dispose()
 15        {
 44216            foreach ( var mesh in bakedMeshes )
 20817                Object.Destroy(mesh);
 18
 1319            ArrayPool<Mesh>.Shared.Return(bakedMeshes);
 1320            bakedMeshes = null;
 1321        }
 22
 23        public static BakedCombineInstances Bake(IList<CombineInstance> combineInstances, IReadOnlyList<SkinnedMeshRende
 24        {
 1325            int combineInstancesCount = combineInstances.Count;
 1326            var bakedCombinedInstances = ArrayPool<Mesh>.Shared.Rent(combineInstancesCount);
 27
 18228            for ( int i = 0; i < combineInstancesCount; i++)
 29            {
 7830                Mesh mesh = new Mesh();
 31
 32                // Important note: It seems that mesh normals are scaled by the matrix when using BakeMesh.
 33                //                 This is wrong and and shouldn't happen, so we have to arrange them manually.
 34                //
 35                //                 We DON'T do this yet because the meshes can be read-only, so the original
 36                //                 normals can't be extracted. For normals, visual artifacts are minor because
 37                //                 toon shader doesn't use any kind of normal mapping.
 7838                renderers[i].BakeMesh(mesh, true);
 39
 7840                var combinedInstance = combineInstances[i];
 7841                combinedInstance.mesh = mesh;
 7842                bakedCombinedInstances[i] = mesh;
 43
 7844                combineInstances[i] = combinedInstance;
 45            }
 46
 1347            return new BakedCombineInstances { bakedMeshes = bakedCombinedInstances };
 48        }
 49    }
 50}