mirror of
				https://github.com/Ryujinx/Ryujinx.git
				synced 2025-10-25 13:22:30 -07: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;
 | |
|         }
 | |
|     }
 | |
| }
 |