コード例 #1
0
ファイル: BcEncoder.cs プロジェクト: forestrf/BCnEncoder.NET
 /// <summary>
 /// Encodes all mipmap levels into a ktx or a dds file and writes it to the output stream.
 /// </summary>
 public void Encode(Image <Rgba32> inputImage, Stream outputStream)
 {
     if (OutputOptions.fileFormat == OutputFileFormat.Ktx)
     {
         KtxFile output = EncodeToKtx(inputImage);
         output.Write(outputStream);
     }
     else if (OutputOptions.fileFormat == OutputFileFormat.Dds)
     {
         DdsFile output = EncodeToDds(inputImage);
         output.Write(outputStream);
     }
 }
コード例 #2
0
ファイル: BcEncoder.cs プロジェクト: forestrf/BCnEncoder.NET
 /// <summary>
 /// Encodes all cubemap faces and mipmap levels into Ktx file and writes it to the output stream.
 /// Order is +X, -X, +Y, -Y, +Z, -Z
 /// </summary>
 public void EncodeCubeMap(Image <Rgba32> right, Image <Rgba32> left, Image <Rgba32> top, Image <Rgba32> down,
                           Image <Rgba32> back, Image <Rgba32> front, Stream outputStream)
 {
     if (OutputOptions.fileFormat == OutputFileFormat.Ktx)
     {
         KtxFile output = EncodeCubeMapToKtx(right, left, top, down, back, front);
         output.Write(outputStream);
     }
     else if (OutputOptions.fileFormat == OutputFileFormat.Dds)
     {
         DdsFile output = EncodeCubeMapToDds(right, left, top, down, back, front);
         output.Write(outputStream);
     }
 }
コード例 #3
0
        public void Save(Stream output, ImageInfo imageInfo)
        {
            // Create Ktx file
            var ktxHeader = CreateKtxHeader(imageInfo.ImageFormat, imageInfo.ImageSize);
            var ktxFile   = new KtxFile(ktxHeader);

            // Add main image to Ktx
            ktxFile.MipMaps.Add(CreateMipMap(imageInfo.ImageData, imageInfo.ImageSize));

            // Add mips to Ktx
            for (var i = 1; i <= imageInfo.MipMapCount; i++)
            {
                ktxFile.MipMaps.Add(CreateMipMap(imageInfo.MipMapData[i - 1], new Size(imageInfo.ImageSize.Width >> i, imageInfo.ImageSize.Height >> i)));
            }

            ktxFile.Write(output);
        }