TString DecorateFunctionIfNeeded(const TName &name) { if (name.isInternal()) { return TFunction::unmangleName(name.getString()); } else { return Decorate(TFunction::unmangleName(name.getString())); } }
TString DecorateIfNeeded(const TName &name) { if (name.isInternal()) { return name.getString(); } else { return Decorate(name.getString()); } }
TString DecorateVariableIfNeeded(const TName &name) { if (name.isInternal()) { // The name should not have a prefix reserved for user-defined variables or functions. ASSERT(name.getString().compare(0, 2, "f_") != 0); ASSERT(name.getString().compare(0, 1, "_") != 0); return name.getString(); } else { return Decorate(name.getString()); } }
TString DecorateFunctionIfNeeded(const TName &name) { if (name.isInternal()) { // The name should not have a prefix reserved for user-defined variables or functions. ASSERT(name.getString().compare(0, 2, "f_") != 0); ASSERT(name.getString().compare(0, 1, "_") != 0); return name.getString(); } ASSERT(name.getString().compare(0, 3, "gl_") != 0); // Add an additional f prefix to functions so that they're always disambiguated from variables. // This is necessary in the corner case where a variable declaration hides a function that it // uses in its initializer. return "f_" + name.getString(); }
TString DecorateUniform(const TName &name, const TType &type) { if (type.getBasicType() == EbtSamplerExternalOES) { return "ex_" + name.getString(); } return DecorateIfNeeded(name); }
TString TOutputGLSLBase::hashFunctionNameIfNeeded(const TName &mangledName) { TString mangledStr = mangledName.getString(); TString name = TFunction::unmangleName(mangledStr); if (mSymbolTable.findBuiltIn(mangledStr, mShaderVersion) != nullptr || name == "main") return translateTextureFunction(name); if (mangledName.isInternal()) return name; else return hashName(name); }