![]() |
MaterialX 1.38.8
|
Syntax class for MDL (Material Definition Language) More...
#include <MdlSyntax.h>
Public Member Functions | |
const string & | getConstantQualifier () const override |
Get the qualifier used when declaring constant variables. More... | |
const string & | getUniformQualifier () const override |
Get the qualifier used when declaring uniform variables. More... | |
const string & | getSourceFileExtension () const override |
Return the file extension used for source code files in this language. More... | |
string | getSwizzledVariable (const string &srcName, const TypeDesc *srcType, const string &channels, const TypeDesc *dstType) const override |
Get syntax for a swizzled variable. More... | |
string | getArrayTypeSuffix (const TypeDesc *type, const Value &value) const override |
Override to return array type suffix. More... | |
string | getArrayVariableSuffix (const TypeDesc *, const Value &) const override |
Override to indicate array variables have no array suffix. More... | |
const TypeDesc * | getEnumeratedType (const string &value) const |
Get an type description for an enumeration based on member value. | |
bool | remapEnumeration (const string &value, const TypeDesc *type, const string &enumNames, std::pair< const TypeDesc *, ValuePtr > &result) const override |
Given an input specification attempt to remap this to an enumeration which is accepted by the shader generator. More... | |
void | makeValidName (string &name) const override |
Modify the given name string to remove any invalid characters or tokens. More... | |
![]() | |
void | registerTypeSyntax (const TypeDesc *type, TypeSyntaxPtr syntax) |
Register syntax handling for a data type. More... | |
void | registerReservedWords (const StringSet &names) |
Register names that are reserved words not to be used by a code generator when naming variables and functions. More... | |
void | registerInvalidTokens (const StringMap &tokens) |
Register a set string replacements for disallowed tokens for a code generator when naming variables and functions. More... | |
const StringSet & | getReservedWords () const |
Returns a set of names that are reserved words for this language syntax. | |
const StringMap & | getInvalidTokens () const |
Returns a mapping from disallowed tokens to replacement strings for this language syntax. | |
const TypeSyntax & | getTypeSyntax (const TypeDesc *type) const |
Returns the type syntax object for a named type. More... | |
const vector< TypeSyntaxPtr > & | getTypeSyntaxes () const |
Returns an array of all registered type syntax objects. | |
const TypeDesc * | getTypeDescription (const TypeSyntaxPtr &typeSyntax) const |
Returns a type description given a type syntax. More... | |
const string & | getTypeName (const TypeDesc *type) const |
Returns the name syntax of the given type. | |
virtual string | getOutputTypeName (const TypeDesc *type) const |
Returns the type name in an output context. | |
const string & | getTypeAlias (const TypeDesc *type) const |
Returns a type alias for the given data type. More... | |
const string & | getTypeDefinition (const TypeDesc *type) const |
Returns a custom type definition if needed for the given data type. More... | |
const string & | getDefaultValue (const TypeDesc *type, bool uniform=false) const |
Returns the default value string for the given type. | |
virtual string | getValue (const TypeDesc *type, const Value &value, bool uniform=false) const |
Returns the value string for a given type and value object. | |
virtual string | getValue (const ShaderPort *port, bool uniform=false) const |
Returns the value string for a given shader port object. | |
virtual string | getSwizzledVariable (const string &srcName, const TypeDesc *srcType, const string &channels, const TypeDesc *dstType) const |
Get syntax for a swizzled variable. More... | |
virtual ValuePtr | getSwizzledValue (ValuePtr value, const TypeDesc *srcType, const string &channels, const TypeDesc *dstType) const |
Get swizzled value. | |
virtual const string & | getInputQualifier () const |
Returns a type qualifier to be used when declaring types for input variables. More... | |
virtual const string & | getOutputQualifier () const |
Returns a type qualifier to be used when declaring types for output variables. More... | |
virtual const string & | getConstantQualifier () const =0 |
Get the qualifier used when declaring constant variables. More... | |
virtual const string & | getUniformQualifier () const |
Get the qualifier used when declaring uniform variables. More... | |
virtual const string & | getNewline () const |
Return the characters used for a newline. | |
virtual const string & | getIndentation () const |
Return the characters used for a single indentation level. | |
virtual const string & | getStringQuote () const |
Return the characters used to begin/end a string definition. | |
virtual const string & | getIncludeStatement () const |
Return the string pattern used for a file include statement. | |
virtual const string & | getSingleLineComment () const |
Return the characters used for single line comment. | |
virtual const string & | getBeginMultiLineComment () const |
Return the characters used to begin a multi line comments block. | |
virtual const string & | getEndMultiLineComment () const |
Return the characters used to end a multi line comments block. | |
virtual const string & | getSourceFileExtension () const =0 |
Return the file extension used for source code files in this language. More... | |
virtual string | getArrayTypeSuffix (const TypeDesc *, const Value &) const |
Return the array suffix to use for declaring an array type. More... | |
virtual string | getArrayVariableSuffix (const TypeDesc *type, const Value &value) const |
Return the array suffix to use for declaring an array variable. More... | |
virtual bool | typeSupported (const TypeDesc *type) const |
Query if given type is suppored in the syntax. More... | |
virtual void | makeValidName (string &name) const |
Modify the given name string to remove any invalid characters or tokens. More... | |
virtual void | makeIdentifier (string &name, IdentifierMap &identifiers) const |
Make sure the given name is a unique identifier, updating it if needed to make it unique. | |
virtual string | getVariableName (const string &name, const TypeDesc *type, IdentifierMap &identifiers) const |
Create a unique identifier for the given variable name and type. More... | |
virtual bool | remapEnumeration (const string &value, const TypeDesc *type, const string &enumNames, std::pair< const TypeDesc *, ValuePtr > &result) const |
Given an input specification attempt to remap this to an enumeration which is accepted by the shader generator. More... | |
Static Public Member Functions | |
static SyntaxPtr | create () |
Static Public Attributes | |
static const string | CONST_QUALIFIER = "" |
static const string | UNIFORM_QUALIFIER = "uniform" |
static const string | SOURCE_FILE_EXTENSION = ".mdl" |
static const StringVec | VECTOR2_MEMBERS = { ".x", ".y" } |
static const StringVec | VECTOR3_MEMBERS = { ".x", ".y", ".z" } |
static const StringVec | VECTOR4_MEMBERS = { ".x", ".y", ".z", ".w" } |
static const StringVec | COLOR3_MEMBERS = { ".x", ".y", ".z" } |
static const StringVec | COLOR4_MEMBERS = { ".x", ".y", ".z", ".a" } |
static const StringVec | ADDRESSMODE_MEMBERS = { "constant", "clamp", "periodic", "mirror" } |
static const StringVec | COORDINATESPACE_MEMBERS = { "model", "object", "world" } |
static const StringVec | FILTERLOOKUPMODE_MEMBERS = { "closest", "linear", "cubic" } |
static const StringVec | FILTERTYPE_MEMBERS = { "box", "gaussian" } |
static const StringVec | DISTRIBUTIONTYPE_MEMBERS = { "ggx" } |
static const StringVec | SCATTER_MODE_MEMBERS = { "R", "T", "RT" } |
![]() | |
static const string | NEWLINE = "\n" |
Constants with commonly used strings. | |
static const string | SEMICOLON = ";" |
static const string | COMMA = "," |
Additional Inherited Members | |
![]() | |
enum | Punctuation { PARENTHESES , CURLY_BRACKETS , SQUARE_BRACKETS , DOUBLE_SQUARE_BRACKETS } |
Punctuation types. | |
![]() | |
Syntax () | |
Protected constructor. | |
![]() | |
vector< TypeSyntaxPtr > | _typeSyntaxes |
std::unordered_map< const TypeDesc *, size_t > | _typeSyntaxByType |
StringSet | _reservedWords |
StringMap | _invalidTokens |
![]() | |
static const string | INDENTATION = " " |
static const string | STRING_QUOTE = "\"" |
static const string | INCLUDE_STATEMENT = "#include" |
static const string | SINGLE_LINE_COMMENT = "// " |
static const string | BEGIN_MULTI_LINE_COMMENT = "/* " |
static const string | END_MULTI_LINE_COMMENT = " */" |
static const std::unordered_map< char, size_t > | CHANNELS_MAPPING |
Syntax class for MDL (Material Definition Language)
Override to return array type suffix.
Reimplemented from Syntax.
Override to indicate array variables have no array suffix.
Reimplemented from Syntax.
|
inlineoverridevirtual |
Get the qualifier used when declaring constant variables.
Derived classes must define this method.
Implements Syntax.
|
inlineoverridevirtual |
Return the file extension used for source code files in this language.
Implements Syntax.
|
overridevirtual |
Get syntax for a swizzled variable.
Reimplemented from Syntax.
|
inlineoverridevirtual |
Get the qualifier used when declaring uniform variables.
Default implementation returns empty string and derived syntax classes should override this method.
Reimplemented from Syntax.
|
overridevirtual |
Modify the given name string to remove any invalid characters or tokens.
Reimplemented from Syntax.
|
overridevirtual |
Given an input specification attempt to remap this to an enumeration which is accepted by the shader generator.
The enumeration may be converted to a different type than the input.
Reimplemented from Syntax.