use enums instead of bitfields
This commit is contained in:
@@ -1164,6 +1164,42 @@ class RegistryParser : XmlParser
|
||||
}
|
||||
|
||||
strBuf.Clear();
|
||||
if (type_name.StartsWith("Std")) for (let field in fields)
|
||||
if (field.flags.HasFlag(.Bitfield))
|
||||
{
|
||||
int flagPost = 1;
|
||||
strBuf.Append("enum ", type_name, " : uint32\n{\n");
|
||||
for (let field in fields)
|
||||
{
|
||||
if (field.flags.HasFlag(.CommentOnly))
|
||||
{
|
||||
if (field.comment.IsEmpty) continue;
|
||||
strBuf.Append('\t');
|
||||
WriteComment(field.comment, strBuf);
|
||||
strBuf.Append('\n');
|
||||
continue;
|
||||
}
|
||||
|
||||
Runtime.Assert(field.flags.HasFlag(.Bitfield));
|
||||
if (field.name != "reserved")
|
||||
{
|
||||
strBuf.Append('\t');
|
||||
strBuf.Append(field.name);
|
||||
strBuf.Append(" = 0x");
|
||||
flagPost.ToString(strBuf, "X8", null);
|
||||
strBuf.Append(",\n");
|
||||
}
|
||||
flagPost <<= field.bitfieldWidth;
|
||||
}
|
||||
strBuf.Append('}');
|
||||
feature.content = new:alloc .(strBuf);
|
||||
vkTypes.Add(feature.name, feature);
|
||||
|
||||
fields.Clear();
|
||||
fieldBufferIdx = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (_)
|
||||
{
|
||||
case .Type_Struct: strBuf.Append("[CRepr]");
|
||||
@@ -1176,6 +1212,7 @@ class RegistryParser : XmlParser
|
||||
{
|
||||
if (field.flags.HasFlag(.CommentOnly))
|
||||
{
|
||||
if (field.comment.IsEmpty) continue;
|
||||
strBuf.Append('\t');
|
||||
WriteComment(field.comment, strBuf);
|
||||
strBuf.Append('\n');
|
||||
|
||||
Reference in New Issue
Block a user