Exemplo n.º 1
0
        internal static void Dispose()
        {
            _font                 = null;
            _fontSmall            = null;
            _uiTextureRegionAtlas = null;
            _uiStylesheet         = null;
            Stylesheet.Current    = null;

            _assetManager.ClearCache();

            _whiteRegion = null;
            if (_white != null)
            {
                _white.Dispose();
                _white = null;
            }

#if !XENKO
            if (_uiRasterizerState != null)
            {
                _uiRasterizerState.Dispose();
                _uiRasterizerState = null;
            }
#endif
        }
Exemplo n.º 2
0
        internal static void Dispose()
        {
            _font              = null;
            _fontSmall         = null;
            _uiSpritesheet     = null;
            _uiStylesheet      = null;
            Stylesheet.Current = null;

            _whiteRegion = null;
            if (_white != null)
            {
                _white.Dispose();
                _white = null;
            }

            if (_uiBitmap != null)
            {
                _uiBitmap.Dispose();
                _uiBitmap = null;
            }

#if !XENKO
            if (_uiRasterizerState != null)
            {
                _uiRasterizerState.Dispose();
                _uiRasterizerState = null;
            }
#endif
        }
Exemplo n.º 3
0
        internal static void Dispose()
        {
            _uiTextureRegionAtlas = null;
            _uiStylesheet         = null;
            Stylesheet.Current    = null;

            if (_assetManager != null)
            {
                _assetManager.ClearCache();
                _assetManager = null;
            }

            _whiteRegion  = null;
            _whiteTexture = null;
        }
Exemplo n.º 4
0
        public static TextureRegionAtlas FromGDX(string data)
        {
            GDXPageData pageData    = null;
            var         spriteDatas = new Dictionary <string, GDXSpriteData>();

            using (var textReader = new StringReader(data))
            {
                GDXSpriteData spriteData = null;
                while (true)
                {
                    var s = textReader.ReadLine();
                    if (s == null)
                    {
                        break;
                    }

                    s = s.Trim();
                    if (string.IsNullOrEmpty(s))
                    {
                        continue;
                    }

                    if (pageData == null)
                    {
                        pageData = new GDXPageData {
                            ImageFile = s
                        };
                        continue;
                    }

                    if (!s.Contains(":"))
                    {
                        spriteData = new GDXSpriteData
                        {
                            Name = s
                        };

                        spriteDatas[s] = spriteData;
                        continue;
                    }

                    var parts = s.Split(':');

                    var key   = parts[0].Trim().ToLower();
                    var value = parts[1].Trim();

                    switch (key)
                    {
                    case "format":
                        break;

                    case "filter":
                        break;

                    case "repeat":
                        break;

                    case "rotate":
                        bool isRotated;
                        bool.TryParse(value, out isRotated);
                        spriteData.IsRotated = isRotated;
                        break;

                    case "xy":
                        parts = value.Split(',');
                        spriteData.SourceRectangle.X = int.Parse(parts[0].Trim());
                        spriteData.SourceRectangle.Y = int.Parse(parts[1].Trim());

                        break;

                    case "size":
                        if (spriteData == null)
                        {
                            continue;
                        }

                        parts = value.Split(',');
                        spriteData.SourceRectangle.Width  = int.Parse(parts[0].Trim());
                        spriteData.SourceRectangle.Height = int.Parse(parts[1].Trim());

                        break;

                    case "orig":
                        parts = value.Split(',');
                        spriteData.OriginalSize = new Point(int.Parse(parts[0].Trim()), int.Parse(parts[1].Trim()));

                        break;

                    case "offset":
                        parts             = value.Split(',');
                        spriteData.Offset = new Point(int.Parse(parts[0].Trim()), int.Parse(parts[1].Trim()));
                        break;

                    case "split":
                        parts = value.Split(',');
                        var split = new Thickness
                        {
                            Left   = int.Parse(parts[0].Trim()),
                            Right  = int.Parse(parts[1].Trim()),
                            Top    = int.Parse(parts[2].Trim()),
                            Bottom = int.Parse(parts[3].Trim())
                        };

                        spriteData.Split = split;
                        break;
                    }
                }
            }

            if (pageData == null)
            {
                throw new Exception("Could not parse header");
            }

            var result = new TextureRegionAtlas
            {
                ImageFile = pageData.ImageFile
            };

            var regions = result.Regions;

            foreach (var sd in spriteDatas)
            {
                var bounds = sd.Value.SourceRectangle;

                TextureRegion region;
                if (!sd.Value.Split.HasValue)
                {
                    region = new TextureRegion
                    {
                        Bounds = bounds
                    };
                }
                else
                {
                    region = new NinePatchRegion
                    {
                        Bounds = bounds,
                        Info   = sd.Value.Split.Value
                    };
                }

                regions[sd.Key] = region;
            }

            return(result);
        }