コード例 #1
0
        public static byte[] WrapToDDS(Stream stream, DDSConvertParameters @params)
        {
            byte[] buffer = new byte[4 + HeaderSize + @params.DataLength];
            using (MemoryStream memStream = new MemoryStream(buffer))
            {
                using (BinaryWriter writer = new BinaryWriter(memStream))
                {
                    writer.Write(MagicNumber);
                    writer.Write(HeaderSize);
                    DDSDFlags flags = DDSDFlags.DDSD_CAPS | DDSDFlags.DDSD_HEIGHT | DDSDFlags.DDSD_WIDTH |
                                      DDSDFlags.DDSD_PIXELFORMAT | @params.MipMapFlag;
                    writer.Write((uint)flags);
                    writer.Write(@params.Height);
                    writer.Write(@params.Width);
                    writer.Write(@params.PitchOrLinearSize);
                    writer.Write(Depth);
                    writer.Write(@params.MipMapCount);
                    for (int i = 0; i < 11; i++)                     // reserved
                    {
                        writer.Write(0);
                    }
                    DDSPixelFormat pixelFormat = new DDSPixelFormat()
                    {
                        Flags       = @params.PixelFormatFlags,
                        FourCC      = @params.FourCC,
                        RGBBitCount = @params.RGBBitCount,
                        RBitMask    = @params.RBitMask,
                        GBitMask    = @params.GBitMask,
                        BBitMask    = @params.BBitMask,
                        ABitMask    = @params.ABitMask,
                    };
                    pixelFormat.Write(writer);
                    writer.Write((uint)@params.Caps);
                    writer.Write((uint)Caps2);
                    writer.Write(0);                     // caps3
                    writer.Write(0);                     // caps4
                    writer.Write(0);                     // reserved

                    stream.CopyStream(writer.BaseStream, @params.DataLength);
                }
            }
            return(buffer);
        }
コード例 #2
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsDepth(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.DEPTH) != 0);
 }
コード例 #3
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsLinearSize(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.LINEARSIZE) != 0);
 }
コード例 #4
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsMipMapCount(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.MIPMAPCOUNT) != 0);
 }
コード例 #5
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsPixelFormat(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.PIXELFORMAT) != 0);
 }
コード例 #6
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsPitch(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.PITCH) != 0);
 }
コード例 #7
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsWidth(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.WIDTH) != 0);
 }
コード例 #8
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsHeight(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.HEIGHT) != 0);
 }
コード例 #9
0
ファイル: DDSDFlags.cs プロジェクト: zbx91/UtinyRipper
 public static bool IsCaps(this DDSDFlags _this)
 {
     return((_this & DDSDFlags.CAPS) != 0);
 }