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());
     }
 }
示例#5
0
        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));
        }
示例#6
0
        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);
        }