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:
Andrey Sukharev 2022-12-05 16:47:39 +03:00 committed by GitHub
parent ae13f0ab4d
commit 4da44e09cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
133 changed files with 156 additions and 378 deletions

View file

@ -5,7 +5,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// <summary>
/// Represents texture format information.
/// </summary>
struct FormatInfo
readonly struct FormatInfo
{
/// <summary>
/// A default, generic RGBA8 texture format.

View file

@ -7,7 +7,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// Texture binding information.
/// This is used for textures that needs to be accessed from shaders.
/// </summary>
struct TextureBindingInfo
readonly struct TextureBindingInfo
{
/// <summary>
/// Shader sampler target type.

View file

@ -16,7 +16,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// </summary>
class TextureCache : IDisposable
{
private struct OverlapInfo
private readonly struct OverlapInfo
{
public TextureViewCompatibility Compatibility { get; }
public int FirstLayer { get; }

View file

@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// <summary>
/// An overlapping texture group with a given view compatibility.
/// </summary>
struct TextureIncompatibleOverlap
readonly struct TextureIncompatibleOverlap
{
public readonly TextureGroup Group;
public readonly TextureViewCompatibility Compatibility;

View file

@ -6,7 +6,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// <summary>
/// Texture information.
/// </summary>
struct TextureInfo
readonly struct TextureInfo
{
/// <summary>
/// Address of the texture in GPU mapped memory.