bool TCompiler::InitBuiltInSymbolTable(const ShBuiltInResources& resources) { TBuiltIns builtIns; builtIns.initialize(shaderType, shaderSpec, resources); return InitializeSymbolTable(builtIns.getBuiltInStrings(), shaderType, shaderSpec, resources, infoSink, symbolTable); }
static bool GenerateBuiltInSymbolTable( EShLanguage language, EShSpec spec, const TBuiltInResource& resources, TInfoSink& infoSink, TSymbolTable& symbolTable) { TBuiltIns builtIns; builtIns.initialize(language, spec, resources); return InitializeSymbolTable(builtIns.getBuiltInStrings(), language, spec, resources, infoSink, symbolTable); }
bool GenerateBuiltInSymbolTable(const TBuiltInResource* resources, TInfoSink& infoSink, TSymbolTable* symbolTables, EShLanguage language) { TBuiltIns builtIns; if (resources) { builtIns.initialize(*resources); InitializeSymbolTable(builtIns.getBuiltInStrings(), language, infoSink, resources, symbolTables); } else { builtIns.initialize(); InitializeSymbolTable(builtIns.getBuiltInStrings(), EShLangVertex, infoSink, resources, symbolTables); InitializeSymbolTable(builtIns.getBuiltInStrings(), EShLangFragment, infoSink, resources, symbolTables); } return true; }
/// Generate the built in symbol table /// \param infoSink /// Information sink (for errors/warnings) /// \param symbolTables /// Array of symbol tables (one for each language) /// \param bUseGlobalSymbolTable /// Whether to use the global symbol table or the per-language symbol table /// \param language /// Shading language to build symbol table for /// \return /// True if succesfully built, false otherwise static bool GenerateBuiltInSymbolTable(TInfoSink& infoSink, TSymbolTable* symbolTables, EShLanguage language) { TBuiltIns builtIns; if ( language != EShLangCount ) { InitializeSymbolTable(builtIns.getBuiltInStrings(), language, infoSink, symbolTables, true); } else { builtIns.initialize(); InitializeSymbolTable(builtIns.getBuiltInStrings(), EShLangVertex, infoSink, symbolTables, false); InitializeSymbolTable(builtIns.getBuiltInStrings(), EShLangFragment, infoSink, symbolTables, false); } return true; }