コード例 #1
0
        public override TextSaveContent Process(TextSaveContent input, ContentProcessorContext context)
        {
            // it's possible that the Text has no font.  If so, let's just not process anything
            if (string.IsNullOrEmpty(input.FontTexture))
            {
                return(input);
            }

            string combinedPath = Path.Combine(Directory, input.FontTexture);

            input.FontTextureReference = BitmapTextureProcessor.BuildTexture(
                combinedPath,
                context);
            input.FontTextureReference.Name = input.FontTexture;

            // See if the .fnt file exists.  If not, write it out.

            if (!string.IsNullOrEmpty(input.FontFile))
            {
                string sourceFontFile = Path.Combine(Directory, input.FontFile);

                input.FontPatternText = FileManager.FromFileText(sourceFontFile);
            }

            return(input);
        }
コード例 #2
0
        /// <summary>
        /// look at all of the textures in each frame and convert them into external references
        /// </summary>
        public override AnimationChainListSaveContent Process(AnimationChainListSaveContent input, ContentProcessorContext context)
        {
            string directory = System.IO.Path.GetDirectoryName(input.FileName) + @"\";

            BitmapTextureProcessor.ResizeToPowerOfTwo           = ResizeToPowerOfTwo;
            BitmapTextureProcessor.TextureProcessorOutputFormat = TextureProcessorOutputFormat;
            BitmapTextureProcessor.GenerateMipmaps = GenerateMipmaps;             // This doesn't seem to be working......why?

            #region Loop through all AnimationChains and process them.

            for (int i = 0; i < input.AnimationChains.Count; i++)
            {
                AnimationChainSaveContent        ach       = input.AnimationChains[i];
                List <AnimationFrameSaveContent> newFrames = new List <AnimationFrameSaveContent>(ach.Frames.Count);

                for (int j = 0; j < ach.Frames.Count; j++)
                {
                    AnimationFrameSaveContent frameSave = ach.Frames[j];// new AnimationFrameSaveContent(ach.Frames[j]);

                    frameSave.TextureReference = BitmapTextureProcessor.BuildTexture(
                        directory + frameSave.TextureName,
                        context);

                    newFrames.Add(frameSave);
                }
                ach.Frames = newFrames;
            }

            #endregion

            return(input);
        }
コード例 #3
0
        public override SpriteGridSaveContent Process(SpriteGridSaveContent input, ContentProcessorContext context)
        {
            string directory = System.IO.Path.GetDirectoryName(input.FileName) + @"\";

            mSpriteProcessor.Process(input.Blueprint, context);

            if (!string.IsNullOrEmpty(input.BaseTexture))
            {
                input.BaseTextureReference = BitmapTextureProcessor.BuildTexture(
                    directory + input.BaseTexture,
                    context);
            }

            input.GridTextureReferences =
                new ExternalReference <Microsoft.Xna.Framework.Content.Pipeline.Graphics.TextureContent> [input.GridTexturesArray.Length][];

            for (int i = 0; i < input.GridTexturesArray.Length; i++)
            {
                input.GridTextureReferences[i] =
                    new ExternalReference <Microsoft.Xna.Framework.Content.Pipeline.Graphics.TextureContent> [input.GridTexturesArray[i].Length];
                for (int j = 0; j < input.GridTexturesArray[i].Length; j++)
                {
                    if (!string.IsNullOrEmpty(input.GridTexturesArray[i][j]))
                    {
                        input.GridTextureReferences[i][j] = BitmapTextureProcessor.BuildTexture(
                            directory + input.GridTexturesArray[i][j],
                            context);
                    }
                }
            }

            return(input);
        }
コード例 #4
0
        /// <summary>
        /// look at all of the textures in each frame and convert them into external references
        /// </summary>
        public override AnimationChainListSave Process(AnimationChainListSave input, ContentProcessorContext context)
        {
            string directory = System.IO.Path.GetDirectoryName(input.FileName) + @"\";

            for (int i = 0; i < input.AnimationChains.Count; i++)
            {
                AnimationChainSave    ach       = input.AnimationChains[i];
                List <AnimationFrame> newFrames = new List <AnimationFrame>(ach.Frames.Count);

                for (int j = 0; j < ach.Frames.Count; j++)
                {
                    AnimationFrameSave frameSave = new AnimationFrameSave(ach.Frames[j]);
                    frameSave.TextureReference = BitmapTextureProcessor.BuildTexture(
                        directory + frameSave.TextureName,
                        context);

                    newFrames.Add(frameSave);
                }
                ach.Frames = newFrames;
            }
            return(input);
        }