aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.GAL/BufferHandle.cs
blob: 49f834425adab98fe52567582c49dc0d7c68fd5c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;

namespace Ryujinx.Graphics.GAL
{
    [StructLayout(LayoutKind.Sequential, Size = 8)]
    public struct BufferHandle : IEquatable<BufferHandle>
    {
        private readonly ulong _value;

        public static BufferHandle Null => new BufferHandle(0);

        private BufferHandle(ulong value) => _value = value;

        public override bool Equals(object obj) => obj is BufferHandle handle && Equals(handle);
        public bool Equals([AllowNull] BufferHandle other) => other._value == _value;
        public override int GetHashCode() => _value.GetHashCode();
        public static bool operator ==(BufferHandle left, BufferHandle right) => left.Equals(right);
        public static bool operator !=(BufferHandle left, BufferHandle right) => !(left == right);
    }
}