/// <summary>Function to open a content object from this plugin.</summary> /// <param name="file">The file that contains the content.</param> /// <param name = "fileManager" > The file manager used to access other content files.</param> /// <param name="injector">Parameters for injecting dependency objects.</param> /// <param name="scratchArea">The file system for the scratch area used to write transitory information.</param> /// <param name="undoService">The undo service for the plug in.</param> /// <returns>A new IEditorContent object.</returns> /// <remarks> /// The <paramref name="scratchArea" /> parameter is the file system where temporary files to store transitory information for the plug in is stored. This file system is destroyed when the /// application or plug in is shut down, and is not stored with the project. /// </remarks> protected async override Task <IEditorContent> OnOpenContentAsync(IContentFile file, IContentFileManager fileManager, IGorgonFileSystemWriter <Stream> scratchArea, IUndoService undoService) { FileInfo texConvExe = GetTexConvExe(); TexConvCompressor compressor = null; if (texConvExe.Exists) { compressor = new TexConvCompressor(texConvExe, scratchArea, _ddsCodec); } var imageIO = new ImageIOService(_ddsCodec, _codecs, new ExportImageDialogService(_settings), new ImportImageDialogService(_settings, _codecs), CommonServices.BusyService, scratchArea, compressor, CommonServices.Log); (IGorgonImage image, IGorgonVirtualFile workingFile, BufferFormat originalFormat)imageData = await Task.Run(() => { using (Stream inStream = file.OpenRead()) { return(imageIO.LoadImageFile(inStream, file.Name)); } }); var services = new ImageEditorServices { CommonServices = CommonServices, ImageIO = imageIO, UndoService = undoService, ImageUpdater = new ImageUpdaterService(), ExternalEditorService = new ImageExternalEditService(CommonServices.Log) }; var cropResizeSettings = new CropResizeSettings(); var dimensionSettings = new DimensionSettings(); var mipSettings = new MipMapSettings(); cropResizeSettings.Initialize(CommonServices); dimensionSettings.Initialize(new DimensionSettingsParameters(GraphicsContext.Graphics.VideoAdapter, CommonServices)); mipSettings.Initialize(CommonServices); var content = new ImageContent(); content.Initialize(new ImageContentParameters(file, _settings, cropResizeSettings, dimensionSettings, mipSettings, imageData, GraphicsContext.Graphics.VideoAdapter, GraphicsContext.Graphics.FormatSupport, services)); return(content); }
/// <summary> /// Function to initialize the view from the data context. /// </summary> /// <param name="dataContext">The data context to use.</param> private void InitializeFromDataContext(IImageContent dataContext) { if (dataContext == null) { ResetDataContext(); return; } _ribbonForm.SetDataContext(dataContext); CropResizeSettings.SetDataContext(dataContext.CropOrResizeSettings); DimensionSettings.SetDataContext(dataContext.DimensionSettings); GenMipMapSettings.SetDataContext(dataContext.MipMapSettings); }
/// <summary>Function called when the view should be reset by a <b>null</b> data context.</summary> protected override void ResetDataContext() { base.ResetDataContext(); if (DataContext == null) { return; } _ribbonForm.SetDataContext(null); CropResizeSettings.SetDataContext(null); DimensionSettings.SetDataContext(null); GenMipMapSettings.SetDataContext(null); }