UnityEditor.MemoryElementDataManager.GenerateObjectTypeGroups C# (CSharp) Method

GenerateObjectTypeGroups() private static method

private static GenerateObjectTypeGroups ( ObjectInfo memory, ObjectTypeFilter filter ) : List
memory ObjectInfo
filter ObjectTypeFilter
return List
        private static List<MemoryElement> GenerateObjectTypeGroups(ObjectInfo[] memory, ObjectTypeFilter filter)
        {
            List<MemoryElement> list = new List<MemoryElement>();
            MemoryElement item = null;
            foreach (ObjectInfo info in memory)
            {
                if (GetObjectTypeFilter(info) == filter)
                {
                    if ((item == null) || (info.className != item.name))
                    {
                        item = new MemoryElement(info.className);
                        list.Add(item);
                    }
                    item.AddChild(new MemoryElement(info, true));
                }
            }
            if (<>f__mg$cache0 == null)
            {
                <>f__mg$cache0 = new Comparison<MemoryElement>(MemoryElementDataManager.SortByMemorySize);

Usage Example

Beispiel #1
0
        public static MemoryElement GetTreeRoot(ObjectMemoryInfo[] memoryObjectList, int[] referencesIndices)
        {
            ObjectInfo[] array = new ObjectInfo[memoryObjectList.Length];
            for (int i = 0; i < memoryObjectList.Length; i++)
            {
                array[i] = new ObjectInfo
                {
                    instanceId = memoryObjectList[i].instanceId,
                    memorySize = memoryObjectList[i].memorySize,
                    reason     = memoryObjectList[i].reason,
                    name       = memoryObjectList[i].name,
                    className  = memoryObjectList[i].className
                };
            }
            int num = 0;

            for (int j = 0; j < memoryObjectList.Length; j++)
            {
                for (int k = 0; k < memoryObjectList[j].count; k++)
                {
                    int num2 = referencesIndices[k + num];
                    if (array[num2].referencedBy == null)
                    {
                        array[num2].referencedBy = new List <ObjectInfo>();
                    }
                    array[num2].referencedBy.Add(array[j]);
                }
                num += memoryObjectList[j].count;
            }
            MemoryElement memoryElement = new MemoryElement();

            ObjectInfo[] arg_113_0 = array;
            if (MemoryElementDataManager.< > f__mg$cache2 == null)
            {
                MemoryElementDataManager.< > f__mg$cache2 = new Comparison <ObjectInfo>(MemoryElementDataManager.SortByMemoryClassName);
            }
            Array.Sort <ObjectInfo>(arg_113_0, MemoryElementDataManager.< > f__mg$cache2);
            memoryElement.AddChild(new MemoryElement("Scene Memory", MemoryElementDataManager.GenerateObjectTypeGroups(array, MemoryElementDataManager.ObjectTypeFilter.Scene)));
            memoryElement.AddChild(new MemoryElement("Assets", MemoryElementDataManager.GenerateObjectTypeGroups(array, MemoryElementDataManager.ObjectTypeFilter.Asset)));
            memoryElement.AddChild(new MemoryElement("Builtin Resources", MemoryElementDataManager.GenerateObjectTypeGroups(array, MemoryElementDataManager.ObjectTypeFilter.BuiltinResource)));
            memoryElement.AddChild(new MemoryElement("Not Saved", MemoryElementDataManager.GenerateObjectTypeGroups(array, MemoryElementDataManager.ObjectTypeFilter.DontSave)));
            memoryElement.AddChild(new MemoryElement("Other", MemoryElementDataManager.GenerateObjectTypeGroups(array, MemoryElementDataManager.ObjectTypeFilter.Other)));
            List <MemoryElement> arg_1B4_0 = memoryElement.children;

            if (MemoryElementDataManager.< > f__mg$cache3 == null)
            {
                MemoryElementDataManager.< > f__mg$cache3 = new Comparison <MemoryElement>(MemoryElementDataManager.SortByMemorySize);
            }
            arg_1B4_0.Sort(MemoryElementDataManager.< > f__mg$cache3);
            return(memoryElement);
        }
All Usage Examples Of UnityEditor.MemoryElementDataManager::GenerateObjectTypeGroups
MemoryElementDataManager