blob: e83f2f36ec5502c52f5362b49f03007c801b7af1 [file] [log] [blame]
/*
* 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