From 7315b33cf8dbf7759b05ff47612478b71238fa19 Mon Sep 17 00:00:00 2001 From: David A Roberts Date: Wed, 19 Feb 2025 18:04:03 +1000 Subject: Add userAttribs to entryPoints in reflection JSON (#6366) --- source/slang/slang-reflection-json.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'source/slang/slang-reflection-json.cpp') diff --git a/source/slang/slang-reflection-json.cpp b/source/slang/slang-reflection-json.cpp index be6539246..993832ad6 100644 --- a/source/slang/slang-reflection-json.cpp +++ b/source/slang/slang-reflection-json.cpp @@ -328,6 +328,22 @@ static void emitUserAttributes(PrettyWriter& writer, slang::VariableReflection* writer << "]"; } } +static void emitUserAttributes(PrettyWriter& writer, slang::FunctionReflection* func) +{ + auto attribCount = func->getUserAttributeCount(); + if (attribCount) + { + writer << ",\n\"userAttribs\": ["; + for (unsigned int i = 0; i < attribCount; i++) + { + if (i > 0) + writer << ",\n"; + auto attrib = func->getUserAttributeByIndex(i); + emitUserAttributeJSON(writer, attrib); + } + writer << "]"; + } +} static void emitReflectionVarLayoutJSON(PrettyWriter& writer, slang::VariableLayoutReflection* var) { @@ -1091,6 +1107,8 @@ static void emitReflectionEntryPointJSON( writer << "\n]"; } + emitUserAttributes(writer, entryPoint->getFunction()); + writer.dedent(); writer << "\n}"; } -- cgit v1.2.3