summaryrefslogtreecommitdiff
path: root/source/slang/slang-capability.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-capability.cpp')
-rw-r--r--source/slang/slang-capability.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/source/slang/slang-capability.cpp b/source/slang/slang-capability.cpp
index f06ccb663..00a3b6001 100644
--- a/source/slang/slang-capability.cpp
+++ b/source/slang/slang-capability.cpp
@@ -49,7 +49,7 @@ enum class CapabilityNameFlavor : int32_t
struct CapabilityAtomInfo
{
/// The API-/language-exposed name of the capability.
- char const* name;
+ UnownedStringSlice name;
/// Flavor of atom: concrete, abstract, or alias
CapabilityNameFlavor flavor;
@@ -85,14 +85,14 @@ void getCapabilityNames(List<UnownedStringSlice>& ioNames)
{
if (_getInfo(CapabilityName(i)).flavor != CapabilityNameFlavor::Abstract)
{
- ioNames.add(UnownedStringSlice(_getInfo(CapabilityName(i)).name));
+ ioNames.add(_getInfo(CapabilityName(i)).name);
}
}
}
UnownedStringSlice capabilityNameToString(CapabilityName name)
{
- return UnownedStringSlice(_getInfo(name).name);
+ return _getInfo(name).name;
}
bool isDirectChildOfAbstractAtom(CapabilityAtom name)
@@ -111,7 +111,7 @@ bool isTargetVersionAtom(CapabilityAtom name)
bool isSpirvExtensionAtom(CapabilityAtom name)
{
- return UnownedStringSlice(_getInfo(name).name).startsWith("SPV_");
+ return _getInfo(name).name.startsWith("SPV_");
}
bool lookupCapabilityName(const UnownedStringSlice& str, CapabilityName& value);
@@ -124,6 +124,12 @@ CapabilityName findCapabilityName(UnownedStringSlice const& name)
return result;
}
+bool isInternalCapabilityName(CapabilityName name)
+{
+ SLANG_ASSERT(_getInfo(name).name != nullptr);
+ return _getInfo(name).name.startsWith("_");
+}
+
CapabilityAtom getLatestSpirvAtom()
{
static CapabilityAtom result = CapabilityAtom::Invalid;
@@ -964,7 +970,7 @@ void printDiagnosticArg(StringBuilder& sb, const CapabilityAtomSet atomSet)
CapabilityName formattedAtom = (CapabilityName)atom;
if (!isFirst)
sb << " + ";
- sb << capabilityNameToStringWithoutPrefix(formattedAtom);
+ printDiagnosticArg(sb, formattedAtom);
isFirst = false;
}
}