summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-reflection-api.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-reflection-api.cpp')
-rw-r--r--source/slang/slang-reflection-api.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/source/slang/slang-reflection-api.cpp b/source/slang/slang-reflection-api.cpp
index 9295bfdf6..5dfa9d55a 100644
--- a/source/slang/slang-reflection-api.cpp
+++ b/source/slang/slang-reflection-api.cpp
@@ -3305,6 +3305,23 @@ SLANG_API size_t spReflectionVariableLayout_GetSpace(
return space;
}
+SLANG_API SlangImageFormat
+spReflectionVariableLayout_GetImageFormat(SlangReflectionVariableLayout* inVarLayout)
+{
+ auto varLayout = convert(inVarLayout);
+ if (!varLayout)
+ return SLANG_IMAGE_FORMAT_unknown;
+
+ if (auto leafVar = varLayout->getVariable())
+ {
+ if (auto formatAttrib = leafVar->findModifier<FormatAttribute>())
+ {
+ return (SlangImageFormat)formatAttrib->format;
+ }
+ }
+ return SLANG_IMAGE_FORMAT_unknown;
+}
+
SLANG_API char const* spReflectionVariableLayout_GetSemanticName(
SlangReflectionVariableLayout* inVarLayout)
{