MaterialX 1.38.9
Loading...
Searching...
No Matches
EsslSyntax Class Reference

Syntax class for ESSL (OpenGL ES Shading Language) More...

#include <EsslSyntax.h>

Inheritance diagram for EsslSyntax:
GlslSyntax Syntax

Static Public Member Functions

static SyntaxPtr create ()
 
- Static Public Member Functions inherited from GlslSyntax
static SyntaxPtr create ()
 

Additional Inherited Members

- Public Types inherited from Syntax
enum  Punctuation { PARENTHESES , CURLY_BRACKETS , SQUARE_BRACKETS , DOUBLE_SQUARE_BRACKETS }
 Punctuation types.
 
- Public Member Functions inherited from GlslSyntax
const string & getInputQualifier () const override
 Returns a type qualifier to be used when declaring types for input variables. More...
 
const string & getOutputQualifier () const override
 Returns a type qualifier to be used when declaring types for output variables. More...
 
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...
 
bool typeSupported (const TypeDesc *type) const override
 Query if given type is suppored in the syntax. More...
 
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...
 
- Public Member Functions inherited from Syntax
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 StringSetgetReservedWords () const
 Returns a set of names that are reserved words for this language syntax.
 
const StringMapgetInvalidTokens () const
 Returns a mapping from disallowed tokens to replacement strings for this language syntax.
 
const TypeSyntaxgetTypeSyntax (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 TypeDescgetTypeDescription (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 Attributes inherited from GlslSyntax
static const string INPUT_QUALIFIER = "in"
 
static const string OUTPUT_QUALIFIER = "out"
 
static const string UNIFORM_QUALIFIER = "uniform"
 
static const string CONSTANT_QUALIFIER = "const"
 
static const string FLAT_QUALIFIER = "flat"
 
static const string SOURCE_FILE_EXTENSION = ".glsl"
 
static const StringVec VEC2_MEMBERS = { ".x", ".y" }
 
static const StringVec VEC3_MEMBERS = { ".x", ".y", ".z" }
 
static const StringVec VEC4_MEMBERS = { ".x", ".y", ".z", ".w" }
 
- Static Public Attributes inherited from Syntax
static const string NEWLINE = "\n"
 Constants with commonly used strings.
 
static const string SEMICOLON = ";"
 
static const string COMMA = ","
 
- Protected Member Functions inherited from Syntax
 Syntax ()
 Protected constructor.
 
- Protected Attributes inherited from Syntax
vector< TypeSyntaxPtr_typeSyntaxes
 
std::unordered_map< const TypeDesc *, size_t > _typeSyntaxByType
 
StringSet _reservedWords
 
StringMap _invalidTokens
 
- Static Protected Attributes inherited from Syntax
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
 

Detailed Description

Syntax class for ESSL (OpenGL ES Shading Language)


The documentation for this class was generated from the following files: