public static ZwinderBuffer Create(BinaryReader reader) { var size = reader.ReadInt64(); var sizeMask = reader.ReadInt64(); var targetFrameLength = reader.ReadInt32(); var useCompression = reader.ReadBoolean(); var ret = new ZwinderBuffer(new RewindConfig { BufferSize = (int)(size >> 20), TargetFrameLength = targetFrameLength, UseCompression = useCompression }); if (ret.Size != size || ret._sizeMask != sizeMask) { throw new InvalidOperationException("Bad format"); } ret.LoadStateBodyBinary(reader); return(ret); }