public void Clear()
 {
     foreach (var item in fogMaskFixGroupX)
     {
         FogMaskFixGroupX.Recover(item.Value);
     }
     fogMaskFixGroupX.Clear();
     for (int i = 0; i < CACHENUM; i++)
     {
         cache [i] = null;
     }
 }
 public static FogMaskFixGroupX Get(int x)
 {
     if (_poolX.Count > 0)
     {
         FogMaskFixGroupX tmp = _poolX.Dequeue();
         tmp.SetX(x);
         return(tmp);
     }
     else
     {
         return(new FogMaskFixGroupX(x));
     }
 }
        public void Add(int x, int y, Color color)
        {
            int cacheID          = x % CACHENUM;
            FogMaskFixGroupX ptr = cache [cacheID];

            if (ptr != null && ptr.X == x)
            {
                ptr.Add(y, color);
            }
            else
            {
                if (!fogMaskFixGroupX.ContainsKey(x))
                {
                    ptr = FogMaskFixGroupX.Get(x);
                    fogMaskFixGroupX [x] = ptr;
                }
                else
                {
                    ptr = fogMaskFixGroupX [x];
                }
                ptr.Add(y, color);
                cache [cacheID] = ptr;
            }
        }
 public static void Recover(FogMaskFixGroupX item)
 {
     item.Clear();
     _poolX.Enqueue(item);
 }