public void WriteBufferSetup(byte[] buffer, int size)
{
if (m_rawdata != null)
{
if ((m_flags & TiffFlags.MYBUFFER) == TiffFlags.MYBUFFER)
m_flags &= ~TiffFlags.MYBUFFER;
m_rawdata = null;
}
if (size == -1)
{
size = (IsTiled() ? m_tilesize : StripSize());
// Make raw data buffer at least 8K
if (size < 8 * 1024)
size = 8 * 1024;
// force allocation
buffer = null;
}
if (buffer == null)
{
buffer = new byte[size];
m_flags |= TiffFlags.MYBUFFER;
}
else
{
m_flags &= ~TiffFlags.MYBUFFER;
}
m_rawdata = buffer;
m_rawdatasize = size;
m_rawcc = 0;
m_rawcp = 0;
m_flags |= TiffFlags.BUFFERSETUP;
}