aboutsummaryrefslogtreecommitdiffstatsci
path: root/vulkan/Version.cs
blob: ab7351131d745275ebcb8fb6d43719b47af97f39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace Vulkan 
{
    public struct Version
    {
        readonly uint value;

        public Version(uint major, uint minor, uint patch) {
            value = major << 22 | minor << 12 | patch;
        }
		public Version (uint value) {
			this.value = value;
		}

		public uint Major => value >> 22;
        public uint Minor => (value >> 12) & 0x3ff;
        public uint Patch => (value >> 22) & 0xfff;

        public static implicit operator uint(Version version) => version.value;
		public static implicit operator Version (uint version) => new Version(version);
	}
}