From: Lionel Landwerlin <lionel.g.landwer...@intel.com> It will be used to store extension numbers as well.
Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> --- src/vulkan/util/gen_enum_to_str.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/vulkan/util/gen_enum_to_str.py b/src/vulkan/util/gen_enum_to_str.py index efe5d4f..5281e89 100644 --- a/src/vulkan/util/gen_enum_to_str.py +++ b/src/vulkan/util/gen_enum_to_str.py @@ -115,18 +115,18 @@ FOREIGN_ENUM_VALUES = [ ] -class EnumFactory(object): +class NamedFactory(object): """Factory for creating enums.""" def __init__(self, type_): self.registry = {} self.type = type_ - def __call__(self, name): + def __call__(self, *args): try: - return self.registry[name] + return self.registry[args[0]] except KeyError: - n = self.registry[name] = self.type(name) + n = self.registry[args[0]] = self.type(*args) return n @@ -138,7 +138,7 @@ class VkEnum(object): self.values = values or [] -def parse_xml(efactory, filename): +def parse_xml(enum_factory, filename): """Parse the XML file. Accumulate results into the efactory. This parser is a memory efficient iterative XML parser that returns a list @@ -157,15 +157,15 @@ def parse_xml(efactory, filename): if event == 'end' and elem.tag == 'enums': type_ = elem.attrib.get('type') if type_ == 'enum': - enum = efactory(elem.attrib['name']) + enum = enum_factory(elem.attrib['name']) enum.values.extend([e.attrib['name'] for e in elem if e.tag == 'enum']) elif event == 'end' and elem.tag == 'extension': if elem.attrib['supported'] != 'vulkan': continue for e in elem.findall('.//enum[@extends][@offset]'): - enum = efactory(e.attrib['extends']) - enum.values.append(e.attrib['name']) + enum = enum_factory(e.attrib['extends']) + enum.values.append(e.attrib['name'],) root.clear() @@ -182,10 +182,10 @@ def main(): args = parser.parse_args() - efactory = EnumFactory(VkEnum) + enum_factory = NamedFactory(VkEnum) for filename in args.xml_files: - parse_xml(efactory, filename) - enums=sorted(efactory.registry.values(), key=lambda e: e.name) + parse_xml(enum_factory, filename) + enums=sorted(enum_factory.registry.values(), key=lambda e: e.name) for template, file_ in [(C_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.c')), (H_TEMPLATE, os.path.join(args.outdir, 'vk_enum_to_str.h'))]: -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev