32 lines
1,018 B
C#
32 lines
1,018 B
C#
|
using Ryujinx.Graphics.Gpu.Memory;
|
||
|
using Ryujinx.Graphics.Gpu.Shader.HashTable;
|
||
|
using System;
|
||
|
|
||
|
namespace Ryujinx.Graphics.Gpu.Shader
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Shader code accessor.
|
||
|
/// </summary>
|
||
|
struct ShaderCodeAccessor : IDataAccessor
|
||
|
{
|
||
|
private readonly MemoryManager _memoryManager;
|
||
|
private readonly ulong _baseAddress;
|
||
|
|
||
|
/// <summary>
|
||
|
/// Creates a new shader code accessor.
|
||
|
/// </summary>
|
||
|
/// <param name="memoryManager">Memory manager used to access the shader code</param>
|
||
|
/// <param name="baseAddress">Base address of the shader in memory</param>
|
||
|
public ShaderCodeAccessor(MemoryManager memoryManager, ulong baseAddress)
|
||
|
{
|
||
|
_memoryManager = memoryManager;
|
||
|
_baseAddress = baseAddress;
|
||
|
}
|
||
|
|
||
|
/// <inheritdoc/>
|
||
|
public ReadOnlySpan<byte> GetSpan(int offset, int length)
|
||
|
{
|
||
|
return _memoryManager.GetSpanMapped(_baseAddress + (ulong)offset, length);
|
||
|
}
|
||
|
}
|
||
|
}
|