diff --git a/src/vulkan/util/gen_enum_to_str.py b/src/vulkan/util/gen_enum_to_str.py index d244d5c405b..241f2c43d0b 100644 --- a/src/vulkan/util/gen_enum_to_str.py +++ b/src/vulkan/util/gen_enum_to_str.py @@ -22,7 +22,9 @@ """Create enum to string functions for vulkan using vk.xml.""" import argparse +import functools import os +import re import textwrap import xml.etree.ElementTree as et @@ -178,6 +180,19 @@ H_DEFINE_TEMPLATE = Template(textwrap.dedent(u"""\ #define _${ext.name}_number (${ext.number}) % endfor + % for enum in bitmasks: + % if enum.bitwidth > 32: + <% continue %> + % endif + % if enum.guard: +#ifdef ${enum.guard} + % endif + #define ${enum.all_bits_name()} ${hex(enum.all_bits_value())}u + % if enum.guard: +#endif + % endif + % endfor + % for enum in bitmasks: % if enum.bitwidth < 64: <% continue %> @@ -228,6 +243,10 @@ class VkExtension(object): self.define = define +def CamelCase_to_SHOUT_CASE(s): + return (s[:1] + re.sub(r'(?