Exemplo n.º 1
0
        private void RenderLabels()
        {
            if (_groups == null)
            {
                return;
            }

            GUI.color = Color.black;

            foreach (Group group in _groups.Values)
            {
                if (Utility_MemoryProfiler.IsInside(group._position, _ZoomArea.shownArea))
                {
                    if (_selectedItem != null && _selectedItem._group == group)
                    {
                        RenderGroupItems(group);
                    }
                    else
                    {
                        RenderGroupLabel(group);
                    }
                }
            }

            GUI.color = Color.white;
        }
Exemplo n.º 2
0
        private void RefreshCachedRects(bool fullRefresh)
        {
            Rect space = new Rect(-100f, -100f, 200f, 200f);

            if (fullRefresh)
            {
                List <Group> groups = _groups.Values.ToList();
                groups.Sort();
                float[] groupTotalValues = new float[groups.Count];
                for (int i = 0; i < groups.Count; i++)
                {
                    groupTotalValues[i] = groups.ElementAt(i).totalMemorySize;
                }

                Rect[] groupRects = Utility_MemoryProfiler.GetTreemapRects(groupTotalValues, space);
                for (int groupIndex = 0; groupIndex < groupRects.Length; groupIndex++)
                {
                    Group group = groups[groupIndex];
                    group._position = groupRects[groupIndex];
                }
            }

            if (_selectedGroup != null)
            {
                Rect[] rects = Utility_MemoryProfiler.GetTreemapRects(_selectedGroup.memorySizes, _selectedGroup._position);

                for (int i = 0; i < rects.Length; i++)
                {
                    _selectedGroup._items[i]._position = rects[i];
                }
            }

            RefreshMesh();
        }
Exemplo n.º 3
0
        private void RenderGroupItems(Group group)
        {
            Matrix4x4 mat = _ZoomArea.drawingToViewMatrix;

            foreach (Item item in group._items)
            {
                if (Utility_MemoryProfiler.IsInside(item._position, _ZoomArea.shownArea))
                {
                    Vector3 p1 = mat.MultiplyPoint(new Vector3(item._position.xMin, item._position.yMin));
                    Vector3 p2 = mat.MultiplyPoint(new Vector3(item._position.xMax, item._position.yMax));

                    if (p2.x - p1.x > 30f)
                    {
                        Rect   rect = new Rect(p1.x, p2.y, p2.x - p1.x, p1.y - p2.y);
                        string row1 = item._group._name;
                        string row2 = EditorUtility.FormatBytes(item.memorySize);
                        GUI.Label(rect, row1 + "\n" + row2);
                    }
                }
            }
        }