Paint.PictureIOManager.SaveData C# (CSharp) Method

SaveData() public method

Saves all the undoRedoRenderTargets to disk and the imageStateData
public SaveData ( ImageStateData imageStateData, RenderTarget2D masterImageRenderTarget, RenderTarget2D undoRedoRenderTargets, int bottomMarginToCutOff ) : void
imageStateData ImageStateData Image state data.
masterImageRenderTarget Microsoft.Xna.Framework.Graphics.RenderTarget2D /// Sequence of images representing the undo/redo chain
undoRedoRenderTargets Microsoft.Xna.Framework.Graphics.RenderTarget2D
bottomMarginToCutOff int Because the toolbox will always take up some space we will cut off the bottom section (toolbox height) /// when saving the master image so that there is no annoying white space at the bottom
return void
        public void SaveData(ImageStateData imageStateData, RenderTarget2D masterImageRenderTarget, RenderTarget2D[] undoRedoRenderTargets, int bottomMarginToCutOff)
        {
            this.SaveImageStateData(this.filenameResolver.MasterImageInfoFilename, imageStateData);

            int end = imageStateData.FirstSavePoint == 0 ? imageStateData.LastSavePoint : imageStateData.MaxUndoRedoCount - 1;

            for (int count = 0; count <= end; count++)
            {
                var renderTarget = undoRedoRenderTargets[count];

                // Save the render target to disk
                renderTarget.SaveAsPng(
                    this.filenameResolver.ImageSavePointFilename(count),
                    renderTarget.Width,
                    renderTarget.Height);

                // copy the working canvas recorder file into the master folder.
                var masterCanvasRecorderFile = this.filenameResolver.MasterCanvasRecorderFilename(count);

                if (File.Exists(masterCanvasRecorderFile))
                {
                    File.Delete(masterCanvasRecorderFile);
                }

                File.Move(this.filenameResolver.WorkingCanvasRecorderFilename(count), masterCanvasRecorderFile);
            }

            // Save the Master image as a JPG as it has no alpha channel - which is ideal for displaying on the home
            // home screen where we don't want the background image showing through
            masterImageRenderTarget.SaveAsJpeg(
                this.filenameResolver.MasterImageFilename,
                masterImageRenderTarget.Width,
                masterImageRenderTarget.Height - bottomMarginToCutOff);

            File.Delete(this.filenameResolver.WorkingImageInfoFilename);
        }