Fix the previous commit for improving memory consumption.
Allocate the list with the correct capacity ahead, and avoid any needs for increasing the capacity when applying the shadow later. --HG-- branch : liortal/improve-memory-behaviour-by-preallocatin-1444835033293release
parent
0845316a6c
commit
6cba848e43
|
@ -8,8 +8,7 @@ namespace UnityEngine.UI.Extensions
|
|||
[AddComponentMenu("UI/Effects/Extensions/Nicer Outline")]
|
||||
public class NicerOutline : BaseMeshEffect
|
||||
{
|
||||
// A constant factor used when allocating the vertex list.
|
||||
private const int GROWTH_FACTOR = 24;
|
||||
private const int VERTICES_PER_QUAD = 6;
|
||||
|
||||
[SerializeField]
|
||||
private Color m_EffectColor = new Color (0f, 0f, 0f, 0.5f);
|
||||
|
@ -94,10 +93,6 @@ namespace UnityEngine.UI.Extensions
|
|||
{
|
||||
UIVertex vt;
|
||||
|
||||
var neededCpacity = verts.Count * 2;
|
||||
if (verts.Capacity < neededCpacity)
|
||||
verts.Capacity = neededCpacity;
|
||||
|
||||
for (int i = start; i < end; ++i)
|
||||
{
|
||||
vt = verts[i];
|
||||
|
@ -117,10 +112,6 @@ namespace UnityEngine.UI.Extensions
|
|||
|
||||
protected void ApplyShadow(List<UIVertex> verts, Color32 color, int start, int end, float x, float y)
|
||||
{
|
||||
var neededCpacity = verts.Count * 2;
|
||||
if (verts.Capacity < neededCpacity)
|
||||
verts.Capacity = neededCpacity;
|
||||
|
||||
ApplyShadowZeroAlloc(verts, color, start, end, x, y);
|
||||
}
|
||||
|
||||
|
@ -131,7 +122,11 @@ namespace UnityEngine.UI.Extensions
|
|||
{
|
||||
return;
|
||||
}
|
||||
List < UIVertex > verts = new List<UIVertex>(GROWTH_FACTOR * mesh.vertices.Length);
|
||||
|
||||
// Initilize a list with the correct capacity, to avoid unneeded allocations later.
|
||||
// The list will hold 9 copies of the vertex data (original + 8 copies).
|
||||
List < UIVertex > verts = new List<UIVertex>(9 * (mesh.vertices.Length / 4 * VERTICES_PER_QUAD));
|
||||
|
||||
using (var helper = new VertexHelper(mesh))
|
||||
{
|
||||
helper.GetUIVertexStream(verts);
|
||||
|
|
Loading…
Reference in New Issue