コード例 #1
0
        /// <summary>
        /// Loads spine texture from the specified WZ path
        /// </summary>
        /// <param name="page"></param>
        /// <param name="path"></param>
        public void Load(AtlasPage page, string path)
        {
            WzObject frameNode = this.ParentNode[path];

            if (frameNode == null)
            {
                return;
            }

            WzCanvasProperty canvasProperty = null;

            WzImageProperty imageChild = (WzImageProperty)ParentNode[path];

            if (imageChild is WzUOLProperty uolProperty)
            {
                WzObject uolLink = uolProperty.LinkValue;

                if (uolLink is WzCanvasProperty uolPropertyLink)
                {
                    canvasProperty = uolPropertyLink;
                }
                else
                {
                    // other unimplemented prop?
                }
            }
            else if (imageChild is WzCanvasProperty property)
            {
                canvasProperty = property;
            }

            if (canvasProperty != null && graphicsDevice != null)
            {
                WzCanvasProperty linkImgProperty = (WzCanvasProperty)canvasProperty.GetLinkedWzImageProperty();
                WzPngProperty    pngProperty     = linkImgProperty.PngProperty;

                Texture2D tex = new Texture2D(graphicsDevice, pngProperty.Width, pngProperty.Height, false, linkImgProperty.PngProperty.GetXNASurfaceFormat());

                pngProperty.ParsePng(true, tex);

                page.rendererObject = tex;
                page.width          = pngProperty.Width;
                page.height         = pngProperty.Height;
            }
        }
コード例 #2
0
        /// <summary>
        /// Loads spine texture from the specified WZ path
        /// </summary>
        /// <param name="page"></param>
        /// <param name="path"></param>
        public void Load(AtlasPage page, string path)
        {
            WzObject frameNode = this.ParentNode[path];

            if (frameNode == null)
            {
                return;
            }

            WzCanvasProperty canvasProperty = null;

            WzImageProperty imageChild = (WzImageProperty)ParentNode[path];

            if (imageChild is WzUOLProperty uolProperty)
            {
                WzObject uolLink = uolProperty.LinkValue;

                if (uolLink is WzCanvasProperty uolPropertyLink)
                {
                    canvasProperty = uolPropertyLink;
                }
                else
                {
                    // other unimplemented prop?
                }
            }
            else if (imageChild is WzCanvasProperty property)
            {
                canvasProperty = property;
            }

            if (canvasProperty != null)
            {
                WzCanvasProperty linkImgProperty = (WzCanvasProperty)canvasProperty.GetLinkedWzImageProperty();

                WzPngProperty pngProperty   = linkImgProperty.PngProperty;
                SurfaceFormat surfaceFormat = linkImgProperty.PngProperty.GetXNASurfaceFormat();

                if (graphicsDevice != null)
                {
                    Texture2D tex;
                    tex = new Texture2D(graphicsDevice,
                                        pngProperty.Width, pngProperty.Height,
                                        false, surfaceFormat);

                    /*switch (surfaceFormat)
                     * {
                     *  case SurfaceFormat.Bgra4444:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width * 2, pngProperty.Height * 2,
                     *          false, surfaceFormat);
                     *      break;
                     *  case SurfaceFormat.Bgra32:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width * 4, pngProperty.Height * 4,
                     *          false, surfaceFormat);
                     *      break;
                     *  case SurfaceFormat.Bgr565:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width * 2, pngProperty.Height * 2,
                     *          false, surfaceFormat);
                     *      break;
                     *  case SurfaceFormat.Dxt3:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width * 4, pngProperty.Height * 4,
                     *          false, surfaceFormat);
                     *      break;
                     *  case SurfaceFormat.Dxt5:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width * 4, pngProperty.Height * 4,
                     *          false, surfaceFormat);
                     *      break;
                     *  default:
                     *      tex = new Texture2D(graphicsDevice,
                     *          pngProperty.Width, pngProperty.Height,
                     *          false, surfaceFormat);
                     *      break;
                     * }
                     */
                    pngProperty.ParsePng(true, tex);


                    page.rendererObject = tex;
                    page.width          = pngProperty.Width;
                    page.height         = pngProperty.Height;
                }
            }
        }