Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }