mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
27 lines
690 B
C++
27 lines
690 B
C++
|
|
#pragma once
|
||
|
|
|
||
|
|
namespace shader {
|
||
|
|
enum class Access {
|
||
|
|
None = 0,
|
||
|
|
Read = 1 << 0,
|
||
|
|
Write = 1 << 1,
|
||
|
|
ReadWrite = Read | Write
|
||
|
|
};
|
||
|
|
|
||
|
|
constexpr Access operator|(Access lhs, Access rhs) {
|
||
|
|
return static_cast<Access>(static_cast<int>(lhs) | static_cast<int>(rhs));
|
||
|
|
}
|
||
|
|
constexpr Access operator&(Access lhs, Access rhs) {
|
||
|
|
return static_cast<Access>(static_cast<int>(lhs) & static_cast<int>(rhs));
|
||
|
|
}
|
||
|
|
constexpr Access operator~(Access rhs) {
|
||
|
|
return static_cast<Access>(~static_cast<int>(rhs));
|
||
|
|
}
|
||
|
|
constexpr Access &operator|=(Access &lhs, Access rhs) {
|
||
|
|
return ((lhs = lhs | rhs));
|
||
|
|
}
|
||
|
|
constexpr Access &operator&=(Access &lhs, Access rhs) {
|
||
|
|
return ((lhs = lhs & rhs));
|
||
|
|
}
|
||
|
|
} // namespace shader
|