scripts: Add PDevFeature index print helper
In the Enum string helper header, tack on a routine to convert an
index into a VkPhysicalDeviceFeatures structure into its
corresponding feature string.
Change-Id: I8fbfb6fcbfa63361a851ffc93ffd832696050d51
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index 7d00e6d..f486a8d 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -364,6 +364,23 @@
outstring += '}\n'
return outstring
#
+ # Tack on a helper which, given an index into a VkPhysicalDeviceFeatures structure, will print the corresponding feature name
+ def DeIndexPhysDevFeatures(self):
+ pdev_members = None
+ for name, members, ifdef in self.structMembers:
+ if name == 'VkPhysicalDeviceFeatures':
+ pdev_members = members
+ break
+ deindex = '\n'
+ deindex += 'static const char * GetPhysDevFeatureString(uint32_t index) {\n'
+ deindex += ' const char * IndexToPhysDevFeatureString[] = {\n'
+ for feature in pdev_members:
+ deindex += ' "%s",\n' % feature.name
+ deindex += ' };\n\n'
+ deindex += ' return IndexToPhysDevFeatureString[index];\n'
+ deindex += '}\n'
+ return deindex
+ #
# Combine enum string helper header file preamble with body text and return
def GenerateEnumStringHelperHeader(self):
enum_string_helper_header = '\n'
@@ -375,6 +392,7 @@
enum_string_helper_header += '#include <vulkan/vulkan.h>\n'
enum_string_helper_header += '\n'
enum_string_helper_header += self.enum_output
+ enum_string_helper_header += self.DeIndexPhysDevFeatures()
return enum_string_helper_header
#
# struct_size_header: build function prototypes for header file