From 8197ec6dae2d27744f0795769277a4e44717d33b Mon Sep 17 00:00:00 2001 From: Charles Giessen Date: Thu, 5 Oct 2023 11:29:43 -0600 Subject: vulkaninfo: Fix printing arrays of Enums Previously, the code generator assumed enums were always printed as key-value pairs, and not in an array. This led to using object syntax inside of arrays in the JSON output, which is invalid, and is now fixed. --- scripts/vulkaninfo_generator.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'scripts/vulkaninfo_generator.py') diff --git a/scripts/vulkaninfo_generator.py b/scripts/vulkaninfo_generator.py index 9d7d683a..3aa2a4ec 100644 --- a/scripts/vulkaninfo_generator.py +++ b/scripts/vulkaninfo_generator.py @@ -601,10 +601,13 @@ def PrintStructure(struct, types_to_gen, structure_names, aliases): out += f' ArrayWrapper arr(p,"{v.name}", obj.' + v.arrayLength + ');\n' out += f" for (uint32_t i = 0; i < obj.{v.arrayLength}; i++) {{\n" if v.typeID in types_to_gen: - out += f" if (obj.{v.name} != nullptr) {{\n" - out += f" p.SetElementIndex(i);\n" - out += f' Dump{v.typeID}(p, "{v.name}", obj.{v.name}[i]);\n' - out += f" }}\n" + out += f' if (obj.{v.name} != nullptr) {{\n' + out += f' p.SetElementIndex(i);\n' + out += ' if (p.Type() == OutputType::json)\n' + out += f' p.PrintString(std::string("VK_") + {v.typeID}String(obj.{v.name}[i]));\n' + out += ' else\n' + out += f' p.PrintString({v.typeID}String(obj.{v.name}[i]));\n' + out += f' }}\n' else: out += f" p.PrintElement(obj.{v.name}[i]);\n" out += f" }}\n" -- cgit v1.2.3