mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-19 15:18:43 +02:00
* Make all structs readonly when applicable. It should reduce amount of needless defensive copies * Make structs with trivial boilerplate equality code record structs * Remove unnecessary readonly modifiers from TextureCreateInfo * Make BitMap structs readonly too
32 lines
1 KiB
C#
32 lines
1 KiB
C#
using Ryujinx.Graphics.Gpu.Memory;
|
|
using Ryujinx.Graphics.Gpu.Shader.HashTable;
|
|
using System;
|
|
|
|
namespace Ryujinx.Graphics.Gpu.Shader
|
|
{
|
|
/// <summary>
|
|
/// Shader code accessor.
|
|
/// </summary>
|
|
readonly 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);
|
|
}
|
|
}
|
|
} |