Move solution and projects to src
This commit is contained in:
parent
cd124bda58
commit
cee7121058
3466 changed files with 55 additions and 55 deletions
39
src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs
Normal file
39
src/Ryujinx.Graphics.GAL/Multithreading/Model/SpanRef.cs
Normal file
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.GAL.Multithreading.Model
|
||||
{
|
||||
struct SpanRef<T> where T : unmanaged
|
||||
{
|
||||
private int _packedLengthId;
|
||||
|
||||
public SpanRef(ThreadedRenderer renderer, T[] data)
|
||||
{
|
||||
_packedLengthId = -(renderer.AddTableRef(data) + 1);
|
||||
}
|
||||
|
||||
public SpanRef(int length)
|
||||
{
|
||||
_packedLengthId = length;
|
||||
}
|
||||
|
||||
public Span<T> Get(ThreadedRenderer renderer)
|
||||
{
|
||||
if (_packedLengthId >= 0)
|
||||
{
|
||||
return renderer.SpanPool.Get<T>(_packedLengthId);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new Span<T>((T[])renderer.RemoveTableRef(-(_packedLengthId + 1)));
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose(ThreadedRenderer renderer)
|
||||
{
|
||||
if (_packedLengthId > 0)
|
||||
{
|
||||
renderer.SpanPool.Dispose<T>(_packedLengthId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue