Example #1
0
        // static readonly List<Color32> s_Colors = new List<Color32>();

        // public static void ModifyColorSpaceToLinear(this Mesh self)
        // {
        //     self.GetColors(s_Colors);
        //
        //     for (var i = 0; i < s_Colors.Count; i++)
        //         s_Colors[i] = ((Color) s_Colors[i]).gamma;
        //
        //     self.SetColors(s_Colors);
        //     s_Colors.Clear();
        // }

        public static void Clear(this CombineInstance[] self)
        {
            for (var i = 0; i < self.Length; i++)
            {
                MeshPool.Return(self[i].mesh);
                self[i].mesh = null;
            }
        }
        public void Clear()
        {
            for (var i = 0; i < combineInstances.Count; i++)
            {
                var inst = combineInstances[i];
                MeshPool.Return(inst.mesh);
                inst.mesh           = null;
                combineInstances[i] = inst;
            }

            combineInstances.Clear();

            MeshPool.Return(mesh);
            mesh = null;

            count = 0;
            hash  = -1;
            index = -1;
        }
        public void Combine()
        {
            switch (count)
            {
            case 0:
                return;

            case 1:
                mesh      = combineInstances[0].mesh;
                transform = combineInstances[0].transform;
                return;

            default:
            {
                var cis = CombineInstanceArrayPool.Get(combineInstances);
                mesh = MeshPool.Rent();
                mesh.CombineMeshes(cis, true, true);
                transform = Matrix4x4.identity;
                cis.Clear();
                return;
            }
            }
        }
Example #4
0
 public static Mesh GetTemporaryMesh()
 {
     return(MeshPool.Rent());
 }
Example #5
0
 public static void DiscardTemporaryMesh(Mesh mesh)
 {
     MeshPool.Return(mesh);
 }