Make structs readonly when applicable (#4002)
* 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
This commit is contained in:
parent
ae13f0ab4d
commit
4da44e09cb
133 changed files with 156 additions and 378 deletions
|
@ -121,7 +121,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
|||
/// <summary>
|
||||
/// Texture binding information, used to identify each texture accessed by the shader.
|
||||
/// </summary>
|
||||
private struct TextureKey : IEquatable<TextureKey>
|
||||
private readonly record struct TextureKey
|
||||
{
|
||||
// New fields should be added to the end of the struct to keep disk shader cache compatibility.
|
||||
|
||||
|
@ -152,21 +152,6 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
|||
Handle = handle;
|
||||
CbufSlot = cbufSlot;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj is TextureKey textureKey && Equals(textureKey);
|
||||
}
|
||||
|
||||
public bool Equals(TextureKey other)
|
||||
{
|
||||
return StageIndex == other.StageIndex && Handle == other.Handle && CbufSlot == other.CbufSlot;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(StageIndex, Handle, CbufSlot);
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Dictionary<TextureKey, Box<TextureSpecializationState>> _textureSpecialization;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue