FairyGUI.MaterialPool.Get C# (CSharp) Method

Get() public method

public Get ( ) : FairyGUI.NMaterial
return FairyGUI.NMaterial
        public NMaterial Get()
        {
            List<NMaterial> items;

            if (_manager.blendMode == BlendMode.Normal)
            {
                if (_items == null)
                    _items = new List<NMaterial>();
                items = _items;
            }
            else
            {
                if (_blendItems == null)
                    _blendItems = new List<NMaterial>();
                items = _blendItems;
            }

            int cnt = items.Count;
            NMaterial result = null;
            for (int i = 0; i < cnt; i++)
            {
                NMaterial mat = items[i];
                if (mat.frameId == _manager.frameId)
                {
                    if (!_notShared && mat.clipId == _manager.clipId && mat.blendMode == _manager.blendMode)
                        return mat;
                }
                else if (result == null)
                    result = mat;
            }

            if (result != null)
            {
                result.frameId = _manager.frameId;
                result.clipId = _manager.clipId;
                result.blendMode = _manager.blendMode;
            }
            else
            {
                result = _manager.CreateMaterial();
                if (_variants != null)
                {
                    foreach (string v in _variants)
                        result.material.EnableKeyword(v);
                }
                result.frameId = _manager.frameId;
                result.clipId = _manager.clipId;
                result.blendMode = _manager.blendMode;
                items.Add(result);
            }

            return result;
        }