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