13 Layer(
const Layer& other) =
default;
14 Layer(Layer&& other)
noexcept =
default;
15 Layer& operator=(
const Layer& other) =
default;
16 Layer& operator=(Layer&& other)
noexcept =
default;
18 Layer(uint8_t value) : layer(value) {
19 GS_ASSERT(value < MaxLayerCount);
22 Layer& operator=(uint8_t value) {
23 GS_ASSERT(value < MaxLayerCount);
28 explicit operator uint8_t()
const {
34 uint8_t AsUint8()
const {
42 LayerMask() =
default;
43 LayerMask(
const LayerMask& other) =
default;
44 LayerMask(LayerMask&& other)
noexcept =
default;
45 LayerMask& operator=(
const LayerMask& other) =
default;
46 LayerMask& operator=(LayerMask&& other)
noexcept =
default;
48 LayerMask(uint32_t value) : mask(value) {}
49 LayerMask& operator=(uint32_t value) {
54 LayerMask(
Layer layer) : mask(layer.GetLayerMask().AsUint32()) {}
55 LayerMask& operator=(
Layer layer) {
56 mask = layer.GetLayerMask().AsUint32();
60 LayerMask& operator&=(
const LayerMask& other) {
65 LayerMask& operator|=(
const LayerMask& other) {
70 LayerMask& operator^=(
const LayerMask& other) {
75 LayerMask operator&(
const LayerMask& other)
const {
76 return mask & other.mask;
79 LayerMask operator|(
const LayerMask& other)
const {
80 return mask | other.mask;
83 LayerMask operator^(
const LayerMask& other)
const {
84 return mask ^ other.mask;
87 friend LayerMask operator~(
const LayerMask& obj) {
91 explicit operator uint32_t()
const {
95 explicit operator bool()
const {
99 uint32_t AsUint32()
const {
103 bool Matches(
Layer layer)
const {
104 return mask & layer.GetLayerMask().mask;
107 bool Matches(LayerMask otherMask)
const {
108 return mask & otherMask.mask;
111 bool HasValue()
const {