diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-08-07 15:44:00 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-07 15:44:00 -0700 |
| commit | 9ad2b40b79907c847451891ce2716fcbcdd2e916 (patch) | |
| tree | e492a82b13334955c1c56f6e3f9d25e8165de82c /source/slang/compiler.h | |
| parent | ca8eea98c89c632dd7b5a6a8b84d379d1e9e59cf (diff) | |
| parent | 7b54f43fb1b123f451460edb0add218a0428fe95 (diff) | |
Merge pull request #153 from tfoleyNV/remove-globals
Remove uses of global variables
Diffstat (limited to 'source/slang/compiler.h')
| -rw-r--r-- | source/slang/compiler.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/source/slang/compiler.h b/source/slang/compiler.h index 180fb027a..8fcbd444d 100644 --- a/source/slang/compiler.h +++ b/source/slang/compiler.h @@ -309,6 +309,69 @@ namespace Slang CompileRequest* compileRequest, char const* text, CodeGenTarget target); + + // + + class Session + { + public: + // + + RefPtr<Scope> coreLanguageScope; + RefPtr<Scope> hlslLanguageScope; + RefPtr<Scope> slangLanguageScope; + RefPtr<Scope> glslLanguageScope; + + List<RefPtr<ProgramSyntaxNode>> loadedModuleCode; + + + // + + // Generated code for stdlib, etc. + String stdlibPath; + String coreLibraryCode; + String slangLibraryCode; + String hlslLibraryCode; + String glslLibraryCode; + + String getStdlibPath(); + String getCoreLibraryCode(); + String getHLSLLibraryCode(); + String getGLSLLibraryCode(); + + // Basic types that we don't want to re-create all the time + RefPtr<ExpressionType> errorType; + RefPtr<ExpressionType> initializerListType; + RefPtr<ExpressionType> overloadedType; + + Dictionary<int, RefPtr<ExpressionType>> builtinTypes; + Dictionary<String, Decl*> magicDecls; + List<RefPtr<ExpressionType>> canonicalTypes; + + void initializeTypes(); + + ExpressionType* getBoolType(); + ExpressionType* getFloatType(); + ExpressionType* getDoubleType(); + ExpressionType* getIntType(); + ExpressionType* getUIntType(); + ExpressionType* getVoidType(); + ExpressionType* getBuiltinType(BaseType flavor); + + ExpressionType* getInitializerListType(); + ExpressionType* getOverloadedType(); + ExpressionType* getErrorType(); + + // + + Session(); + + void addBuiltinSource( + RefPtr<Scope> const& scope, + String const& path, + String const& source); + }; + } #endif
\ No newline at end of file |
