summaryrefslogtreecommitdiff
path: root/source/slang/check.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/check.cpp')
-rw-r--r--source/slang/check.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/slang/check.cpp b/source/slang/check.cpp
index 166fff771..e327834c0 100644
--- a/source/slang/check.cpp
+++ b/source/slang/check.cpp
@@ -2905,6 +2905,24 @@ namespace Slang
getSink()->diagnose(attr, Diagnostics::notEnoughArguments, attr->args.Count(), params.Count());
}
}
+ else if (auto formatAttr = as<FormatAttribute>(attr))
+ {
+ SLANG_ASSERT(attr->args.Count() == 1);
+
+ String formatName;
+ if(!checkLiteralStringVal(attr->args[0], &formatName))
+ {
+ return false;
+ }
+
+ ImageFormat format = ImageFormat::unknown;
+ if(!findImageFormatByName(formatName.Buffer(), &format))
+ {
+ getSink()->diagnose(attr->args[0], Diagnostics::unknownImageFormatName, formatName);
+ }
+
+ formatAttr->format = format;
+ }
else
{
if(attr->args.Count() == 0)