diff options
Diffstat (limited to 'source/slang/slang-reflection-json.cpp')
| -rw-r--r-- | source/slang/slang-reflection-json.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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}"; } |
