diff options
Diffstat (limited to 'scripts/vulkaninfo_generator.py')
| -rw-r--r-- | scripts/vulkaninfo_generator.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/vulkaninfo_generator.py b/scripts/vulkaninfo_generator.py index 50bfcfb0..e7381e8b 100644 --- a/scripts/vulkaninfo_generator.py +++ b/scripts/vulkaninfo_generator.py @@ -430,9 +430,12 @@ def PrintEnum(enum, gen): def PrintGetFlagStrings(name, bitmask): out = '' - out += f"std::vector<const char *>{name}GetStrings({name} value) {{\n" + out += f"std::vector<const char *> {name}GetStrings({name} value) {{\n" out += f" std::vector<const char *> strings;\n" - out += f" if (value == 0) {{ strings.push_back(\"None\"); return strings; }}\n" + # If a bitmask contains a field whose value is zero, we want to support printing the correct bitflag + # Otherwise, use "None" for when there are not bits set in the bitmask + if bitmask.options[0].value != "0": + out += f" if (value == 0) {{ strings.push_back(\"None\"); return strings; }}\n" for v in bitmask.options: out += f" if ({v.name} & value) strings.push_back(\"{str(v.name[3:])}\");\n" out += f" return strings;\n}}\n" |
