summaryrefslogtreecommitdiff
path: root/source/slang/slang-ast-val.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ast-val.cpp')
-rw-r--r--source/slang/slang-ast-val.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/source/slang/slang-ast-val.cpp b/source/slang/slang-ast-val.cpp
index 97d79e290..0f3bd2b3a 100644
--- a/source/slang/slang-ast-val.cpp
+++ b/source/slang/slang-ast-val.cpp
@@ -528,6 +528,52 @@ Val* TaggedUnionSubtypeWitness::_substituteImplOverride(ASTBuilder* astBuilder,
return substWitness;
}
+// ModifierVal
+bool ModifierVal::_equalsValOverride(Val* val)
+{
+ // TODO: This is assuming we can fully deduplicate the values that represent
+ // modifiers, which may not actually be the case if there are multiple modules
+ // being combined that use different `ASTBuilder`s.
+ //
+ return this == val;
+}
+
+HashCode ModifierVal::_getHashCodeOverride()
+{
+ Hasher hasher;
+ hasher.hashValue((void*) this);
+ return hasher.getResult();
+}
+
+// UNormModifierVal
+
+void UNormModifierVal::_toTextOverride(StringBuilder& out)
+{
+ out.append("unorm");
+}
+
+Val* UNormModifierVal::_substituteImplOverride(ASTBuilder* astBuilder, SubstitutionSet subst, int* ioDiff)
+{
+ SLANG_UNUSED(astBuilder);
+ SLANG_UNUSED(subst);
+ SLANG_UNUSED(ioDiff);
+ return this;
+}
+
+// SNormModifierVal
+
+void SNormModifierVal::_toTextOverride(StringBuilder& out)
+{
+ out.append("snorm");
+}
+
+Val* SNormModifierVal::_substituteImplOverride(ASTBuilder* astBuilder, SubstitutionSet subst, int* ioDiff)
+{
+ SLANG_UNUSED(astBuilder);
+ SLANG_UNUSED(subst);
+ SLANG_UNUSED(ioDiff);
+ return this;
+}
} // namespace Slang