| /* | |
| * Copyright 2016 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SKSL_CONTEXT | |
| #define SKSL_CONTEXT | |
| namespace SkSL { | |
| class BuiltinTypes; | |
| class ErrorReporter; | |
| class ModifiersPool; | |
| struct Module; | |
| struct ProgramConfig; | |
| struct ShaderCaps; | |
| /** | |
| * Contains compiler-wide objects, which currently means the core types. | |
| */ | |
| class Context { | |
| public: | |
| Context(const BuiltinTypes& types, const ShaderCaps* caps, ErrorReporter& errors); | |
| ~Context(); | |
| // The Context holds a reference to all of the built-in types. | |
| const BuiltinTypes& fTypes; | |
| // The Context holds a reference to our shader caps bits. | |
| const ShaderCaps* fCaps; | |
| // The Context holds a pointer to our pool of modifiers. | |
| ModifiersPool* fModifiersPool = nullptr; | |
| // The Context holds a pointer to the configuration of the program being compiled. | |
| ProgramConfig* fConfig = nullptr; | |
| // The Context holds a pointer to our error reporter. | |
| ErrorReporter* fErrors; | |
| // The Context holds a pointer to our module with built-in declarations. | |
| const Module* fModule = nullptr; | |
| }; | |
| } // namespace SkSL | |
| #endif |