private void WriteDdsHeader(BinaryWriter writer)
{
writer.Write(124);
writer.Write((uint)CalculateHeaderFlags());
writer.Write(Height);
writer.Write(Width);
writer.Write((Pitch != 0) ? Pitch : LinearSize);
writer.Write(Depth);
writer.Write(Math.Max(MipMapCount, 1));
if (Reserved.Length != 44)
throw new InvalidOperationException("Reserved buffer must be 44 bytes large");
writer.Write(Reserved);
WriteDdsPixelFormat(writer);
writer.Write((uint)CalculateSurfaceComplexityFlags());
writer.Write((uint)SurfaceInfoFlags);
writer.Write(UnusedCaps3);
writer.Write(UnusedCaps4);
writer.Write(Reserved2);
}