BufferHandle.cs 869 B

12345678910111213141516171819202122
  1. using System;
  2. using System.Diagnostics.CodeAnalysis;
  3. using System.Runtime.InteropServices;
  4. namespace Ryujinx.Graphics.GAL
  5. {
  6. [StructLayout(LayoutKind.Sequential, Size = 8)]
  7. public struct BufferHandle : IEquatable<BufferHandle>
  8. {
  9. private readonly ulong _value;
  10. public static BufferHandle Null => new BufferHandle(0);
  11. private BufferHandle(ulong value) => _value = value;
  12. public override bool Equals(object obj) => obj is BufferHandle handle && Equals(handle);
  13. public bool Equals([AllowNull] BufferHandle other) => other._value == _value;
  14. public override int GetHashCode() => _value.GetHashCode();
  15. public static bool operator ==(BufferHandle left, BufferHandle right) => left.Equals(right);
  16. public static bool operator !=(BufferHandle left, BufferHandle right) => !(left == right);
  17. }
  18. }