Ejemplo n.º 1
0
        /// <summary>
        /// Read a DDS header from an array of bytes.
        /// </summary>
        public DDS(byte[] bytes)
        {
            BinaryReaderEx br = new BinaryReaderEx(false, bytes);

            // dwMagic
            br.AssertASCII("DDS ");
            // dwSize
            br.AssertInt32(0x7C);

            dwFlags             = (DDSD)br.ReadUInt32();
            dwHeight            = br.ReadInt32();
            dwWidth             = br.ReadInt32();
            dwPitchOrLinearSize = br.ReadInt32();
            dwDepth             = br.ReadInt32();
            dwMipMapCount       = br.ReadInt32();

            // dwReserved1
            br.Skip(4 * 11);

            ddspf   = new PIXELFORMAT(br);
            dwCaps  = (DDSCAPS)br.ReadUInt32();
            dwCaps2 = (DDSCAPS2)br.ReadUInt32();

            // dwCaps3, dwCaps4, dwReserved2
            br.Skip(4 * 3);

            if (ddspf.dwFourCC == PIXELFORMAT.FourCCDX10)
            {
                header10 = new HEADER_DXT10(br);
            }
            else
            {
                header10 = null;
            }
        }
Ejemplo n.º 2
0
        public DDS(byte[] bytes)
        {
            BinaryReaderEx br = new BinaryReaderEx(false, bytes);

            br.AssertASCII("DDS ");
            br.AssertInt32(124);
            dwFlags             = br.ReadInt32();
            dwHeight            = br.ReadInt32();
            dwWidth             = br.ReadInt32();
            dwPitchOrLinearSize = br.ReadInt32();
            dwDepth             = br.ReadInt32();
            dwMipMapCount       = br.ReadInt32();

            // dwReserved1
            br.Skip(4 * 11);

            ddspf   = new PIXELFORMAT(br);
            dwCaps  = br.ReadInt32();
            dwCaps2 = br.ReadInt32();

            // dwCaps3, dwCaps4, dwReserved2
            br.Skip(4 * 3);

            if (ddspf.dwFourCC == "DX10")
            {
                header10 = new HEADER_DXT10(br);
            }
            else
            {
                header10 = null;
            }

            dataOffset = br.Position;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Create a new DDS header with default values and no DX10 header.
 /// </summary>
 public DDS()
 {
     dwFlags             = HEADER_FLAGS_TEXTURE;
     dwHeight            = 0;
     dwWidth             = 0;
     dwPitchOrLinearSize = 0;
     dwDepth             = 0;
     dwMipMapCount       = 0;
     ddspf    = new PIXELFORMAT();
     dwCaps   = DDSCAPS.TEXTURE;
     dwCaps2  = 0;
     header10 = null;
 }