// // Copyright Contributors to the MaterialX Project // SPDX-License-Identifier: Apache-2.0 // #ifndef MATERIALX_GENSHADERLIBRARY_H #define MATERIALX_GENSHADERLIBRARY_H /// @file /// Library-wide includes and types. This file should be the first include for /// any public header in the MaterialXGenShader library. #include MATERIALX_NAMESPACE_BEGIN class Shader; class ShaderStage; class ShaderGenerator; class ShaderNode; class ShaderGraph; class ShaderInput; class ShaderOutput; class ShaderNodeImpl; class GenOptions; class GenContext; class ClosureContext; class TypeDesc; /// A string stream using StringStream = std::stringstream; /// Shared pointer to a Shader using ShaderPtr = shared_ptr; /// Shared pointer to a ShaderStage using ShaderStagePtr = shared_ptr; /// Shared pointer to a ShaderGenerator using ShaderGeneratorPtr = shared_ptr; /// Shared pointer to a ShaderNodeImpl using ShaderNodeImplPtr = shared_ptr; /// Shared pointer to a GenContext using GenContextPtr = shared_ptr; template using CreatorFunction = shared_ptr (*)(); MATERIALX_NAMESPACE_END #endif // MATERIALX_GENSHADERLIBRARY_H