MaterialX 1.39.5
Loading...
Searching...
No Matches
OslSyntax.h
Go to the documentation of this file.
1//
2// Copyright Contributors to the MaterialX Project
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#ifndef MATERIALX_OSLSYNTAX_H
7#define MATERIALX_OSLSYNTAX_H
8
11
13
15
16MATERIALX_NAMESPACE_BEGIN
17
20class MX_GENOSL_API OslSyntax : public Syntax
21{
22 public:
23 OslSyntax(TypeSystemPtr typeSystem);
24
25 static SyntaxPtr create(TypeSystemPtr typeSystem) { return std::make_shared<OslSyntax>(typeSystem); }
26
27 StructTypeSyntaxPtr createStructSyntax(const string& structTypeName, const string& defaultValue,
28 const string& uniformDefaultValue, const string& typeAlias,
29 const string& typeDefinition) const override;
30
31 const string& getOutputQualifier() const override;
32 const string& getConstantQualifier() const override { return EMPTY_STRING; };
33 const string& getSourceFileExtension() const override { return SOURCE_FILE_EXTENSION; };
34
35 static const string OUTPUT_QUALIFIER;
36 static const string SOURCE_FILE_EXTENSION;
37 static const StringVec VECTOR_MEMBERS;
38 static const StringVec VECTOR2_MEMBERS;
39 static const StringVec VECTOR4_MEMBERS;
40 static const StringVec COLOR4_MEMBERS;
41};
42
43MATERIALX_NAMESPACE_END
44
45#endif
vector< string > StringVec
A vector of strings.
Definition Library.h:61
Macros for declaring imported and exported symbols.
Base class for syntax handling for shader generators.
shared_ptr< StructTypeSyntax > StructTypeSyntaxPtr
Shared pointer to a StructTypeSyntax.
Definition Syntax.h:34
shared_ptr< Syntax > SyntaxPtr
Shared pointer to a Syntax.
Definition Syntax.h:28
const string & getConstantQualifier() const override
Get the qualifier used when declaring constant variables.
Definition OslSyntax.h:32
const string & getOutputQualifier() const override
Returns a type qualifier to be used when declaring types for output variables.
const string & getSourceFileExtension() const override
Return the file extension used for source code files in this language.
Definition OslSyntax.h:33
Syntax(TypeSystemPtr typeSystem)
Protected constructor.