public void Write(OutputBuffer o) { OutputBuffer chunk = new OutputBuffer(); chunk.writeInt(atlasId); chunk.writeShort(unk1); chunk.writeShort((short)verts.Length); chunk.writeInt(indices.Length); foreach (var vert in verts) { chunk.writeFloat(vert.x); chunk.writeFloat(vert.y); chunk.writeFloat(vert.u); chunk.writeFloat(vert.v); } foreach (var index in indices) { chunk.writeShort(index); } if ((indices.Length % 2) != 0) { chunk.writeShort(0); } o.writeInt((int)TagType.Graphic); o.writeInt(chunk.Size / 4); o.write(chunk); }
void writeSymbols(OutputBuffer o) { OutputBuffer chunk = new OutputBuffer(); chunk.writeInt(symbols.Count); foreach (var symbol in symbols) { chunk.writeInt(symbol.Length); chunk.writeString(symbol); int padSize = 4 - (chunk.Size % 4); for (int i = 0; i < padSize; i++) { chunk.writeByte(0); } } o.writeInt((int)TagType.Symbols); o.writeInt(chunk.Size / 4); o.write(chunk); }
public void Write(OutputBuffer o) { o.writeInt((int)type); o.writeInt(size); o.write(data); }