/// <summary> /// Updates texture colors by alpha /// </summary> /// <param name="texture"></param> public static void PremultiplyAlpha(this Texture2D texture) { var data = CrossEngineStuff.GetData(texture); for (int i = 0; i < data.Length; ++i) { data[i] = ApplyAlpha(data[i]); } CrossEngineStuff.SetData(texture, data); }
public static TextureRegionAtlas FromXml(string xml, Texture2D texture) { var doc = XDocument.Parse(xml); var root = doc.Root; var regions = new Dictionary <string, TextureRegion>(); foreach (XElement entry in root.Elements()) { var id = entry.Attribute(BaseContext.IdName).Value; var bounds = new Rectangle( int.Parse(entry.Attribute(LeftName).Value), int.Parse(entry.Attribute(TopName).Value), int.Parse(entry.Attribute(WidthName).Value), int.Parse(entry.Attribute(HeightName).Value) ); var isNinePatch = entry.Name == NinePatchRegionName; TextureRegion region; if (!isNinePatch) { region = new TextureRegion(texture, bounds); } else { var padding = new PaddingInfo { Left = int.Parse(entry.Attribute(NinePatchLeftName).Value), Top = int.Parse(entry.Attribute(NinePatchTopName).Value), Right = int.Parse(entry.Attribute(NinePatchRightName).Value), Bottom = int.Parse(entry.Attribute(NinePatchBottomName).Value) }; region = new NinePatchRegion(texture, bounds, padding); } regions[id] = region; } return(new TextureRegionAtlas(regions)); }
public static TextureRegionAtlas FromJson(string json, Texture2D texture) { var root = JObject.Parse(json); var regions = new Dictionary <string, TextureRegion>(); foreach (var pair in root) { var entry = pair.Value; var jBounds = entry[StylesheetLoader.BoundsName]; var bounds = new Rectangle(int.Parse(jBounds[StylesheetLoader.LeftName].ToString()), int.Parse(jBounds[StylesheetLoader.TopName].ToString()), int.Parse(jBounds[StylesheetLoader.WidthName].ToString()), int.Parse(jBounds[StylesheetLoader.HeightName].ToString())); TextureRegion region; if (entry[StylesheetLoader.TypeName].ToString() == "0") { region = new TextureRegion(texture, bounds); } else { var jPadding = entry[StylesheetLoader.PaddingName]; var padding = new PaddingInfo { Left = int.Parse(jPadding[StylesheetLoader.LeftName].ToString()), Top = int.Parse(jPadding[StylesheetLoader.TopName].ToString()), Right = int.Parse(jPadding[StylesheetLoader.RightName].ToString()), Bottom = int.Parse(jPadding[StylesheetLoader.BottomName].ToString()) }; region = new NinePatchRegion(texture, bounds, padding); } regions[pair.Key.ToString()] = region; } return(new TextureRegionAtlas(regions)); }