diff options
Diffstat (limited to 'source/slang/check.cpp')
| -rw-r--r-- | source/slang/check.cpp | 18 |
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) |
