public void Export(string filePath, TextureExportSettings settings) { foreach (var format in FileManager.GetExportableTextures()) { if (format.IdentifyExport(Utils.GetExtension(filePath))) { format.Export(this, settings, filePath); break; } } }
public void Export(string filePath, TextureExportSettings settings) { foreach (var format in FileManager.GetExportableTextures()) { Console.WriteLine($"exportable as {format.IdentifyExport(Utils.GetExtension(filePath))} ext {Utils.GetExtension(filePath)}"); if (format.IdentifyExport(Utils.GetExtension(filePath))) { format.Export(this, settings, filePath); break; } } }
public void Export(STGenericTexture texture, TextureExportSettings settings, string filePath) { int numSurfaces = settings.ExportArrays ? (int)texture.ArrayCount : 1; if (numSurfaces == 0) { numSurfaces = 1; } for (int i = 0; i < numSurfaces; i++) { var image = texture.GetBitmap(i); image.Save(numSurfaces == 1 ? filePath : $"{filePath}_{i}"); } }
private List <Surface> GetExportableSurfaces(TextureExportSettings settings) { if (!settings.ExportArrays) { return(GetSurfaces(settings.ArrayLevel, false)); } else if (Depth > 1) { return(Get3DSurfaces()); } else { return(GetSurfaces()); } }
public void Export(STGenericTexture texture, TextureExportSettings settings, string filePath) { List <Surface> surfaces = texture.GetSurfaces(settings.ArrayLevel, settings.ExportArrays); var format = texture.Platform.OutputFormat; ASTC atsc = new ASTC(); atsc.Width = texture.Width; atsc.Height = texture.Height; atsc.Depth = texture.Depth; atsc.BlockDimX = (byte)TextureFormatHelper.GetBlockWidth(format); atsc.BlockDimY = (byte)TextureFormatHelper.GetBlockHeight(format); atsc.BlockDimZ = (byte)TextureFormatHelper.GetBlockDepth(format); atsc.DataBlock = ByteUtils.CombineArray(surfaces[0].mipmaps.ToArray()); atsc.Save(new System.IO.FileStream(filePath, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite)); }
public void Export(STGenericTexture texture, TextureExportSettings settings, string filePath) { List <Surface> surfaces = texture.GetSurfaces(settings.ArrayLevel, settings.ExportArrays); DDS dds = new DDS(); dds.MainHeader = new DDS.Header(); dds.MainHeader.Width = texture.Width; dds.MainHeader.Height = texture.Height; dds.MainHeader.Depth = texture.Depth; dds.MainHeader.MipCount = (uint)texture.MipCount; dds.MainHeader.PitchOrLinearSize = (uint)surfaces[0].mipmaps[0].Length; if (surfaces.Count > 1) //Use DX10 format for array surfaces as it can do custom amounts { dds.SetFlags(Platform.OutputFormat, true, texture.IsCubemap); } else { dds.SetFlags(Platform.OutputFormat, false, texture.IsCubemap); } if (dds.IsDX10) { if (dds.Dx10Header == null) { dds.Dx10Header = new DDS.DX10Header(); } dds.Dx10Header.ResourceDim = 3; if (texture.IsCubemap) { dds.Dx10Header.ArrayCount = (uint)(texture.ArrayCount / 6); } else { dds.Dx10Header.ArrayCount = (uint)texture.ArrayCount; } } dds.Save(filePath, surfaces); }
public void SaveDDS(string filePath, TextureExportSettings settings = null) { }
public void SaveBitmap(string filePath, TextureExportSettings settings = null) { var bitmap = GetBitmap(settings.ArrayLevel, settings.MipLevel); bitmap.Save(filePath); }