/// <summary> /// Add source of masks for drawing. /// </summary> public void AddSource(ICubismMaskTextureCommandSource source) { // Make sure isstance is valid. TryRevive(); // Initialize container if necessary. if (Sources == null) { Sources = new List <SourcesItem>(); } // Return early if source already exists. else if (Sources.FindIndex(i => i.Source == source) != -1) { return; } // Register source. var item = new SourcesItem { Source = source, Tiles = TilePool.AcquireTiles(source.GetNecessaryTileCount()) }; Sources.Add(item); // Apply tiles to source. source.SetTiles(item.Tiles); }
/// <summary> /// Remove source of masks /// </summary> public void RemoveSource(ICubismMaskTextureCommandSource source) { // Return early if empty. if (!ContainsSources) { return; } var itemIndex = Sources.FindIndex(i => i.Source == source); // Return if source is invalid. if (itemIndex == -1) { return; } // Return tiles and deregister source. TilePool.ReturnTiles(Sources[itemIndex].Tiles); Sources.RemoveAt(itemIndex); }