CreateMaterial() public method

public CreateMaterial ( ) : FairyGUI.NMaterial
return FairyGUI.NMaterial
Example #1
0
 static public int CreateMaterial(IntPtr l)
 {
     try {
         FairyGUI.MaterialManager self = (FairyGUI.MaterialManager)checkSelf(l);
         var ret = self.CreateMaterial();
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Example #2
0
        public NMaterial GetMaterial(uint frameId, uint context)
        {
            if (_items == null)
            {
                _items = new List <NMaterial>();
            }

            int       cnt   = _items.Count;
            NMaterial spare = null;

            for (int i = 0; i < cnt; i++)
            {
                NMaterial mat = _items[i];
                if (mat.frameId == frameId)
                {
                    if (mat.context == context)
                    {
                        return(mat);
                    }
                }
                else if (spare == null)
                {
                    spare = mat;
                }
            }

            if (spare != null)
            {
                spare.frameId = frameId;
                spare.context = context;
                return(spare);
            }
            else
            {
                NMaterial mat = _manager.CreateMaterial();
                if (_variants != null)
                {
                    foreach (string v in _variants)
                    {
                        mat.EnableKeyword(v);
                    }
                }
                mat.frameId = frameId;
                mat.context = context;
                _items.Add(mat);

                return(mat);
            }
        }
        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 (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);
        }