| 12345678910111213141516171819202122232425262728293031 |
- using System;
- using System.Diagnostics;
- using System.Runtime.CompilerServices;
- using System.Runtime.InteropServices;
- namespace Ryujinx.Graphics.Texture.Astc
- {
- [StructLayout(LayoutKind.Sequential, Size = IntegerEncoded.StructSize * Capacity + sizeof(int))]
- internal struct IntegerSequence
- {
- private const int Capacity = 100;
- private int _length;
- private IntegerEncoded _start;
- public Span<IntegerEncoded> List => MemoryMarshal.CreateSpan(ref _start, _length);
- public void Reset() => _length = 0;
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- public void Add(ref IntegerEncoded item)
- {
- Debug.Assert(_length < Capacity);
- int oldLength = _length;
- _length++;
- List[oldLength] = item;
- }
- }
- }
|