public void Write(System.IO.Stream fileStream, int cubeIndex)
{
using (System.IO.BinaryWriter b = new System.IO.BinaryWriter(fileStream))
{
b.Write(magic);
b.Write(header.size);
b.Write((uint)header.flags);
b.Write(header.height);
b.Write(header.width);
b.Write(header.pitchOrLinearSize);
b.Write(header.depth);
b.Write(header.mipMapCount);
foreach (uint u in header.reserved1)
{
b.Write(u);
}
b.Write(header.ddspf.size);
b.Write((uint)header.ddspf.flags);
b.Write(header.ddspf.fourCC);
b.Write(header.ddspf.rGBBitCount);
b.Write(header.ddspf.rBitMask);
b.Write(header.ddspf.gBitMask);
b.Write(header.ddspf.bBitMask);
b.Write(header.ddspf.aBitMask);
b.Write((uint)header.caps);
b.Write((uint)header.caps2);
b.Write(header.caps3);
b.Write(header.caps4);
b.Write(header.reserved2);
if (cubeIndex != -1)
{
b.Write(bdata2[cubeIndex]);
}
else if (bdata2 != null && bdata2.Count > 0)
{
for (int i = 0; i < bdata2.Count; i++)
{
if (bdata2.ContainsKey(i) == true)
{
b.Write(bdata2[i]);
}
}
}
else
{
b.Write(bdata);
}
}
}