Example #1
0
        public static void WriteTextureHeader(BitmapTag bitm, Stream destination)
        {
            var ddsHeader = DdsHeader.Create(
                bitm.TextureInfos[0].Format,
                CapsLookup[bitm.TextureType],
                Caps2Lookup[bitm.TextureType],
                bitm.TextureInfos[0].Width,
                bitm.TextureInfos[0].Height,
                bitm.TextureInfos[0].Depth,
                bitm.MipMapCount,
                null,
                null);

            destination.Write(ddsHeader);
        }
Example #2
0
        public void DdsHeader_CreatesValidHeader()
        {
            var dim = 256;

            var header = DdsHeader.Create(TextureFormat.DXT45, DdsHeader.Caps.Texture, DdsHeader.Caps2.None, dim, dim, 1, 1, null, 16384);

            Assert.AreEqual(128, header.Length);

            // Manual verification, paste into 010 Editor, run DDS template
            Logger.LogMessage("0x" + BitConverter.ToString(header.ToArray()).Replace("-", string.Empty));

            Assert.AreEqual(dim, header.ReadInt32At(12), "Height should match");
            Assert.AreEqual(dim, header.ReadInt32At(16), "Width should match");

            Assert.AreEqual(32, header.ReadInt32At(76), "DDS_PIXELFORMAT struct length should be 32");
            Assert.AreEqual("DXT5", header.ReadStringFrom(84, 4), "PixelFormat should match");

            Assert.AreEqual(0, header.ReadInt32At(116), "Reserved data should be 0");
            Assert.AreEqual(0, header.ReadInt32At(120), "Reserved data should be 0");
            Assert.AreEqual(0, header.ReadInt32At(124), "Reserved data should be 0");
        }