public static void WriteVertexBuffer(TWXmlNode node, VertexBuffer vertexBuffer) { if (vertexBuffer == null) { node.Value = "NULL"; return; } byte[] data = new byte[vertexBuffer.SizeInBytes]; vertexBuffer.GetData <byte>(data); if (data.Length != vertexBuffer.SizeInBytes) { throw new Exception("While writing this method, i assumed those were equal"); } node.AddChildNode("BufferUsage", vertexBuffer.BufferUsage.ToString()); TWXmlNode dataNode = node.CreateChildNode("Data"); dataNode.AddAttribute("length", data.Length.ToString()); //TODO: this data should be contained in a 'CData' block dataNode.AddCData(Convert.ToBase64String(data)); }