xref: /aosp_15_r20/external/angle/src/libANGLE/Version.inc (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker//
2*8975f5c5SAndroid Build Coastguard Worker// Copyright 2015 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker// Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker// found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker//
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker// Version.inc: Encapsulation of a GL version.
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Worker#include <tuple>
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Workernamespace gl
12*8975f5c5SAndroid Build Coastguard Worker{
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Workerconstexpr Version::Version()
15*8975f5c5SAndroid Build Coastguard Worker    : Version(0, 0)
16*8975f5c5SAndroid Build Coastguard Worker{
17*8975f5c5SAndroid Build Coastguard Worker}
18*8975f5c5SAndroid Build Coastguard Worker
19*8975f5c5SAndroid Build Coastguard Worker// Avoid conflicts with linux system defines
20*8975f5c5SAndroid Build Coastguard Worker#undef major
21*8975f5c5SAndroid Build Coastguard Worker#undef minor
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Workerconstexpr Version::Version(unsigned int major_, unsigned int minor_)
24*8975f5c5SAndroid Build Coastguard Worker    : major(major_),
25*8975f5c5SAndroid Build Coastguard Worker      minor(minor_)
26*8975f5c5SAndroid Build Coastguard Worker{
27*8975f5c5SAndroid Build Coastguard Worker}
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Workerinline bool operator==(const Version &a, const Version &b)
30*8975f5c5SAndroid Build Coastguard Worker{
31*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) == std::tie(b.major, b.minor);
32*8975f5c5SAndroid Build Coastguard Worker}
33*8975f5c5SAndroid Build Coastguard Worker
34*8975f5c5SAndroid Build Coastguard Workerinline bool operator!=(const Version &a, const Version &b)
35*8975f5c5SAndroid Build Coastguard Worker{
36*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) != std::tie(b.major, b.minor);
37*8975f5c5SAndroid Build Coastguard Worker}
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Workerinline bool operator>=(const Version &a, const Version &b)
40*8975f5c5SAndroid Build Coastguard Worker{
41*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) >= std::tie(b.major, b.minor);
42*8975f5c5SAndroid Build Coastguard Worker}
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Workerinline bool operator<=(const Version &a, const Version &b)
45*8975f5c5SAndroid Build Coastguard Worker{
46*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) <= std::tie(b.major, b.minor);
47*8975f5c5SAndroid Build Coastguard Worker}
48*8975f5c5SAndroid Build Coastguard Worker
49*8975f5c5SAndroid Build Coastguard Workerinline bool operator<(const Version &a, const Version &b)
50*8975f5c5SAndroid Build Coastguard Worker{
51*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) < std::tie(b.major, b.minor);
52*8975f5c5SAndroid Build Coastguard Worker}
53*8975f5c5SAndroid Build Coastguard Worker
54*8975f5c5SAndroid Build Coastguard Workerinline bool operator>(const Version &a, const Version &b)
55*8975f5c5SAndroid Build Coastguard Worker{
56*8975f5c5SAndroid Build Coastguard Worker    return std::tie(a.major, a.minor) > std::tie(b.major, b.minor);
57*8975f5c5SAndroid Build Coastguard Worker}
58*8975f5c5SAndroid Build Coastguard Worker
59*8975f5c5SAndroid Build Coastguard Worker}  // namespace gl
60