Files
UnrealEngine/Engine/Source/ThirdParty/MaterialX/Deploy/MaterialX-1.39.3/include/MaterialXGenOsl/OslSyntax.h
2025-05-18 13:04:45 +08:00

42 lines
1.1 KiB
C++

//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#ifndef MATERIALX_OSLSYNTAX_H
#define MATERIALX_OSLSYNTAX_H
/// @file
/// OSL syntax class
#include <MaterialXGenOsl/Export.h>
#include <MaterialXGenShader/Syntax.h>
MATERIALX_NAMESPACE_BEGIN
/// @class OslSyntax
/// Syntax class for OSL (Open Shading Language)
class MX_GENOSL_API OslSyntax : public Syntax
{
public:
OslSyntax(TypeSystemPtr typeSystem);
static SyntaxPtr create(TypeSystemPtr typeSystem) { return std::make_shared<OslSyntax>(typeSystem); }
const string& getOutputQualifier() const override;
const string& getConstantQualifier() const override { return EMPTY_STRING; };
const string& getSourceFileExtension() const override { return SOURCE_FILE_EXTENSION; };
static const string OUTPUT_QUALIFIER;
static const string SOURCE_FILE_EXTENSION;
static const StringVec VECTOR_MEMBERS;
static const StringVec VECTOR2_MEMBERS;
static const StringVec VECTOR4_MEMBERS;
static const StringVec COLOR4_MEMBERS;
};
MATERIALX_NAMESPACE_END
#endif