Beispiel #1
0
        public void ToData(BinaryWriter writer)
        {
            uint elementCount = Buffer?.ElementCount ?? 0;

            writer.Write(elementCount);

            if (elementCount > 0)
            {
                writer.Write((uint)(Buffer.Streaming ? 1 : 0));
                writer.Write(Flags);
                writer.Write((uint)Buffer.Format);
                writer.Write(Buffer.ElementStride);
                Buffer.ToData(writer);
            }
        }
        public void ToData(BinaryWriter writer)
        {
            var dataFormat = Buffer.Format switch
            {
                BaseDataBufferFormat.R_UINT_16 => BaseIndexFormat.Index16,
                BaseDataBufferFormat.R_UINT_32 => BaseIndexFormat.Index32,
                _ => throw new NotSupportedException("Unknown index buffer type"),
            };

            uint elementCount = Buffer?.ElementCount ?? 0;

            writer.Write(elementCount);

            if (elementCount > 0)
            {
                writer.Write(Flags);
                writer.Write((uint)dataFormat);
                writer.Write((uint)(Buffer.Streaming ? 1 : 0));
                ResourceGUID.ToData(writer);
                Buffer.ToData(writer);
            }
        }