async Task RefreshETCImg() { var files = EngineNS.CEngine.Instance.FileManager.GetFiles(EngineNS.CEngine.Instance.FileManager.ProjectContent, "*" + EngineNS.CEngineDesc.TextureExtension, System.IO.SearchOption.AllDirectories); int index = 0; foreach (var file in files) { //var file = @"E:\Engine\Content\Test\TexTest\eyediffuse.txpic"; System.Diagnostics.Debug.WriteLine($"-------------{System.DateTime.Now}---{index}/{files.Count} {file}"); var resInfo = await EditorCommon.Resources.ResourceInfoManager.Instance.CreateResourceInfoFromFile(file + EditorCommon.Program.ResourceInfoExt, null) as TextureResourceInfo; if (resInfo == null) { System.Diagnostics.Debugger.Break(); } await TextureResourceInfo.GetTextureDesc(resInfo.ResourceName.Address, resInfo.mCurrentDesc); TextureResourceInfo.SaveTXPicToFile(file, ref resInfo.mCurrentDesc.PicDesc, resInfo.mCurrentDesc.RawData, resInfo.mCurrentDesc); await resInfo.Save(); System.GC.Collect(); index++; } }
public async Task SetObjectToEdit(ResourceEditorContext context) { mCurrentTextureResInfo = context.ResInfo as TextureResourceInfo; SetBinding(TitleProperty, new Binding("ResourceName") { Source = context.ResInfo, Converter = new EditorCommon.Converter.RNameConverter_PureName() }); //mCurrentDesc = new TextureDesc(); await TextureResourceInfo.GetTextureDesc(mCurrentTextureResInfo.ResourceName.Address, mCurrentTextureResInfo.mCurrentDesc); mCurrentBitmapImage = new System.Windows.Media.Imaging.BitmapImage(); mCurrentBitmapImage.BeginInit(); mCurrentBitmapImage.StreamSource = new System.IO.MemoryStream(mCurrentTextureResInfo.mCurrentDesc.RawData); mCurrentBitmapImage.EndInit(); mCurrentBitmapImage.CacheOption = BitmapCacheOption.OnLoad; Image_Texture.Source = mCurrentBitmapImage; TextBlock_Info.Text = $"{mCurrentBitmapImage.PixelWidth}X{mCurrentBitmapImage.PixelHeight} {mCurrentBitmapImage.Format}"; mCurrentTextureResInfo.Dimensions = mCurrentBitmapImage.PixelWidth + "X" + mCurrentBitmapImage.PixelHeight; mCurrentTextureResInfo.PixelFormat = mCurrentBitmapImage.Format; PG_TextureInfo.Instance = mCurrentTextureResInfo.mCurrentDesc; mCurrentTextureResInfo.mCurrentDesc.PropertyChanged += (object sender, PropertyChangedEventArgs e) => { mCurrentTextureResInfo.IsDirty = true; }; if (mCurrentBitmapImage.Format == PixelFormats.Gray8) { ShowGChannel = false; IsEnableGChannel = false; ShowBChannel = false; IsEnableBChannel = false; ShowAChannel = false; IsEnableAChannel = false; } }