mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-17 06:08:43 +02:00
* ASTC optimizations * Move code to Ryujinx.Common * Support 3D textures * Address feedback * Remove ASTC logging * Use stackalloc instead of a Buffer20 struct * Code style and cleanup * Respond to feedback * Rearrange public/private property ordering
32 lines
835 B
C#
32 lines
835 B
C#
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;
|
|
}
|
|
}
|
|
}
|