/// <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; } }
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; }
/// <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; }