[Feat]: Flags<Bit, Underlying> template for manipulating flag sets

This commit is contained in:
2025-08-08 16:49:41 +08:00
parent 916fdf40af
commit 919274924e
12 changed files with 162 additions and 69 deletions
@@ -38,16 +38,16 @@ namespace MobileGL {
}
}
String ConvertBufferMappingAccessToString(BufferMappingAccessBit access) {
String ConvertBufferMappingAccessToString(Flags<BufferMappingAccessBit> access) {
String result = "[";
if (Any(access & BufferMappingAccessBit::Read)) result += "Read, ";
if (Any(access & BufferMappingAccessBit::Write)) result += "Write, ";
if (Any(access & BufferMappingAccessBit::InvalidateRange)) result += "InvalidateRange, ";
if (Any(access & BufferMappingAccessBit::InvalidateBuffer)) result += "InvalidateBuffer, ";
if (Any(access & BufferMappingAccessBit::FlushExplicit)) result += "FlushExplicit, ";
if (Any(access & BufferMappingAccessBit::Unsynchronized)) result += "Unsynchronized, ";
if (Any(access & BufferMappingAccessBit::Persistent)) result += "Persistent, ";
if (Any(access & BufferMappingAccessBit::Coherent)) result += "Coherent, ";
if (access & BufferMappingAccessBit::Read) result += "Read, ";
if (access & BufferMappingAccessBit::Write) result += "Write, ";
if (access & BufferMappingAccessBit::InvalidateRange) result += "InvalidateRange, ";
if (access & BufferMappingAccessBit::InvalidateBuffer) result += "InvalidateBuffer, ";
if (access & BufferMappingAccessBit::FlushExplicit) result += "FlushExplicit, ";
if (access & BufferMappingAccessBit::Unsynchronized) result += "Unsynchronized, ";
if (access & BufferMappingAccessBit::Persistent) result += "Persistent, ";
if (access & BufferMappingAccessBit::Coherent) result += "Coherent, ";
result.pop_back();
result.pop_back();
result += "]";
@@ -4,6 +4,6 @@ namespace MobileGL {
namespace MG_Util {
String ConvertBufferTargetToString(BufferTarget bufferTarget);
String ConvertBufferUsageToString(BufferUsage usage);
String ConvertBufferMappingAccessToString(BufferMappingAccessBit access);
String ConvertBufferMappingAccessToString(Flags<BufferMappingAccessBit> access);
}
}