Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
SiliconStudio.Shaders.Writer.ShaderWriter Class Reference

A writer for a shader. More...

Inheritance diagram for SiliconStudio.Shaders.Writer.ShaderWriter:
SiliconStudio.Shaders.Visitor.ShaderVisitor SiliconStudio.Shaders.Visitor.VisitorBase SiliconStudio.Paradox.Shaders.Parser.Mixins.ShaderKeyGeneratorBase SiliconStudio.Shaders.Writer.Hlsl.HlslWriter SiliconStudio.Paradox.Shaders.Parser.Mixins.ShaderMixinCodeGen SiliconStudio.Shaders.Writer.Hlsl.HlslToGlslWriter

Public Member Functions

 ShaderWriter (bool buildScopeDeclaration=false, bool useNodeStack=false)
 Initializes a new instance of the ShaderWriter class. More...
 
ShaderWriter Indent ()
 Indents this instance. More...
 
ShaderWriter Outdent ()
 Outdents this instance. More...
 
virtual void Visit (Shader shader)
 Visits the specified shader. More...
 
virtual void Visit (StructType structType)
 
virtual void Visit (WhileStatement whileStatement)
 
virtual void Visit (ArrayInitializerExpression arrayInitializerExpression)
 
virtual void Visit (BlockStatement blockStatement)
 
virtual void Visit (AssignmentExpression assignmentExpression)
 
virtual void Visit (BinaryExpression binaryExpression)
 
virtual void Visit (CaseStatement statement)
 
virtual void Visit (ArrayType arrayType)
 
virtual void Visit (ExpressionStatement expressionStatement)
 
virtual void Visit (ForStatement forStatement)
 
virtual void Visit (Identifier identifier)
 
virtual void Visit (Statement statement)
 
virtual void Visit (StatementList statementList)
 
virtual void Visit (IfStatement ifStatement)
 
virtual void Visit (IndexerExpression indexerExpression)
 
virtual void Visit (MemberReferenceExpression memberReferenceExpression)
 
virtual void Visit (MethodInvocationExpression methodInvocationExpression)
 
virtual void Visit (Parameter parameter)
 
virtual void Visit (ParenthesizedExpression parenthesizedExpression)
 
virtual void Visit (ExpressionList expressionList)
 
virtual void Visit (ReturnStatement returnStatement)
 
virtual void Visit (ConditionalExpression conditionalExpression)
 
virtual void Visit (UnaryExpression unaryExpression)
 
virtual void Visit (SwitchStatement switchStatement)
 
virtual void Visit (SwitchCaseGroup switchCaseGroup)
 
virtual void Visit (DeclarationStatement declarationStatement)
 
virtual void Visit (MethodDeclaration methodDeclaration)
 
virtual void Visit (MethodDefinition methodDefinition)
 
virtual void Visit (Variable variable)
 
virtual void Visit (ObjectType typeBase)
 
virtual void Visit (TypeName typeBase)
 
virtual void Visit (ScalarType scalarType)
 
virtual void Visit (GenericType genericType)
 
virtual void Visit (Literal literal)
 
virtual void Visit (Qualifier qualifier)
 
virtual void Visit (ParameterQualifier parameterQualifier)
 
virtual void Visit (StorageQualifier storageQualifier)
 
ShaderWriter Write (Qualifier qualifiers, bool writePreQualifiers)
 Writes the specified qualifier. More...
 
ShaderWriter Write (List< AttributeBase > attributes, bool writePreQualifiers)
 Writes the specified attributes. More...
 
ShaderWriter Write (string text)
 Writes the specified text. More...
 
virtual void WriteInitializer (Expression expression)
 Writes the initializer. More...
 
ShaderWriter WriteLine ()
 Writes the line. More...
 
ShaderWriter WriteLine (string text)
 Writes the line. More...
 
ShaderWriter WriteSpace ()
 Writes the space. More...
 

Protected Member Functions

ShaderWriter WriteLinkLine (Node node)
 Writes a link line using #line preprocessing directive with the specified node More...
 
ShaderWriter Append (string text)
 Appends the specified text. More...
 
ShaderWriter Append (string format, params object[] args)
 Appends the specified formatted text. More...
 
ShaderWriter CloseBrace (bool newLine=true)
 Closes the brace. More...
 
ShaderWriter OpenBrace ()
 Opens the brace. More...
 
virtual ShaderWriter Write (Identifier identifier)
 Writes the specified identifier. More...
 
virtual ShaderWriter WriteMethodDeclaration (MethodDeclaration methodDeclaration)
 Writes the specified method declaration. More...
 
ShaderWriter WriteRankSpecifiers (IEnumerable< Expression > expressionList)
 Writes the rank specifiers. More...
 
void WriteStatementContent (Statement statement)
 Writes the content of the statement. More...
 
void WriteVariable (Variable variable)
 Writes the variable. More...
 
override bool PreVisitNode (Node node)
 Called before visiting the node. More...
 
- Protected Member Functions inherited from SiliconStudio.Shaders.Visitor.ShaderVisitor
 ShaderVisitor (bool buildScopeDeclaration, bool useNodeStack)
 Initializes a new instance of the ShaderVisitor class. More...
 
virtual ScopeDeclaration NewScope (IScopeContainer container=null)
 
virtual Node Visit (Node node)
 
virtual IEnumerable< IDeclarationFindDeclarations (string name)
 Finds a list of declaration by its name. More...
 
IDeclaration FindDeclaration (string name)
 Finds a declaration by its name. More...
 
override void PostVisitNode (Node node, bool nodeVisited)
 Called after visiting the node. More...
 
- Protected Member Functions inherited from SiliconStudio.Shaders.Visitor.VisitorBase
 VisitorBase (bool useNodeStack=false)
 Initializes a new instance of the VisitorBase class. More...
 
void VisitDynamicList< T > (IList< T > list, Func< T, bool > filter=null)
 Visits the list. More...
 
virtual Node VisitDynamic< T > (T node, bool visitRealType=true)
 Visits the node. More...
 

Protected Attributes

Stack< bool > IsDeclaratingVariable = new Stack<bool>()
 

Properties

List< SourceLocationSourceLocations [get, set]
 
string Text [get]
 Gets the text. More...
 
bool EnablePreprocessorLine [get, set]
 
bool EnableNewLine [get, set]
 Gets or sets a value indicating whether [enable new line]. More...
 
- Properties inherited from SiliconStudio.Shaders.Visitor.ShaderVisitor
Node ParentNode [get]
 Gets the parent node or null if no parents More...
 
Stack< ScopeDeclarationScopeStack [get, set]
 Gets the scope stack. More...
 
- Properties inherited from SiliconStudio.Shaders.Visitor.VisitorBase
List< NodeNodeStack [get, set]
 Gets or sets the node stack. More...
 

Detailed Description

A writer for a shader.

Definition at line 15 of file ShaderWriter.cs.

Constructor & Destructor Documentation

SiliconStudio.Shaders.Writer.ShaderWriter.ShaderWriter ( bool  buildScopeDeclaration = false,
bool  useNodeStack = false 
)

Initializes a new instance of the ShaderWriter class.

Parameters
buildScopeDeclarationif set to true [build scope declaration].
useNodeStackif set to true [use node stack].

Definition at line 29 of file ShaderWriter.cs.

Member Function Documentation

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Append ( string  text)
protected

Appends the specified text.

Parameters
textThe text.
Returns
this instance

Definition at line 775 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Append ( string  format,
params object[]  args 
)
protected

Appends the specified formatted text.

Parameters
formatThe formatted text.
argsThe args to apply to the formatted text.
Returns
This instance

Definition at line 787 of file ShaderWriter.cs.

References DirectX.format.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.CloseBrace ( bool  newLine = true)
protected

Closes the brace.

Parameters
newLineif set to true [new line].
Returns
This instance

Definition at line 803 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Indent ( )

Indents this instance.

Returns
this instance

Definition at line 105 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.OpenBrace ( )
protected

Opens the brace.

Returns
This instance

Definition at line 818 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Outdent ( )

Outdents this instance.

Returns
this instance

Definition at line 117 of file ShaderWriter.cs.

override bool SiliconStudio.Shaders.Writer.ShaderWriter.PreVisitNode ( Node  node)
protectedvirtual

Called before visiting the node.

Parameters
nodeThe node.
Returns
True to continue visiting the node; false to skip the visit

Reimplemented from SiliconStudio.Shaders.Visitor.ShaderVisitor.

Definition at line 1027 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.SourceLocation.FileSource, SiliconStudio.Shaders.Ast.SourceLocation.Line, SiliconStudio.Shaders.Ast.SourceSpan.Location, SiliconStudio.Shaders.Ast.SourceLocation.Position, and SiliconStudio.Shaders.Ast.Node.Span.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Shader  shader)
virtual

Visits the specified shader.

Parameters
shaderThe shader.
Returns

Definition at line 129 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( StructType  structType)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( WhileStatement  whileStatement)
virtual

Definition at line 165 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.Statement.Statement().

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ArrayInitializerExpression  arrayInitializerExpression)
virtual

Definition at line 193 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( BlockStatement  blockStatement)
virtual

Definition at line 209 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( AssignmentExpression  assignmentExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( BinaryExpression  binaryExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( CaseStatement  statement)
virtual

Definition at line 240 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.CaseStatement.Case.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ArrayType  arrayType)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ExpressionStatement  expressionStatement)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ForStatement  forStatement)
virtual

Definition at line 271 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Identifier  identifier)
virtual

Definition at line 291 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Statement  statement)
virtual

Definition at line 298 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.Statement.Attributes.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( StatementList  statementList)
virtual

Definition at line 305 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( IfStatement  ifStatement)
virtual

Definition at line 313 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( IndexerExpression  indexerExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( MemberReferenceExpression  memberReferenceExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( MethodInvocationExpression  methodInvocationExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Parameter  parameter)
virtual

Definition at line 374 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ParenthesizedExpression  parenthesizedExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ExpressionList  expressionList)
virtual

Definition at line 390 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ReturnStatement  returnStatement)
virtual

Definition at line 402 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.ReturnStatement.Value.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ConditionalExpression  conditionalExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( UnaryExpression  unaryExpression)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( SwitchStatement  switchStatement)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( SwitchCaseGroup  switchCaseGroup)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( DeclarationStatement  declarationStatement)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( MethodDeclaration  methodDeclaration)
virtual

Definition at line 478 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( MethodDefinition  methodDefinition)
virtual

Definition at line 486 of file ShaderWriter.cs.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Variable  variable)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ObjectType  typeBase)
virtual

Definition at line 507 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.TypeBase.Name.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( TypeName  typeBase)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ScalarType  scalarType)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( GenericType  genericType)
virtual

Definition at line 529 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.TypeBase.Name.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Literal  literal)
virtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( Qualifier  qualifier)
virtual

Definition at line 570 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.CompositeEnum.Key.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( ParameterQualifier  parameterQualifier)
virtual

Definition at line 578 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.CompositeEnum.Key.

virtual void SiliconStudio.Shaders.Writer.ShaderWriter.Visit ( StorageQualifier  storageQualifier)
virtual

Definition at line 585 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.CompositeEnum.Key.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Write ( Qualifier  qualifiers,
bool  writePreQualifiers 
)

Writes the specified qualifier.

Parameters
qualifiersThe qualifier.
writePreQualifiersif set to true [write pre qualifiers].
Returns
This instance

Definition at line 602 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.Qualifier.IsPost, and SiliconStudio.Shaders.Ast.Qualifier.None.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Write ( List< AttributeBase attributes,
bool  writePreQualifiers 
)

Writes the specified attributes.

Parameters
attributesThe attributes.
writePreQualifiersif set to true [write pre qualifiers].
Returns
This instance

Definition at line 637 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Write ( string  text)

Writes the specified text.

Parameters
textThe text.
Returns
this instance

Definition at line 661 of file ShaderWriter.cs.

virtual ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.Write ( Identifier  identifier)
protectedvirtual
virtual void SiliconStudio.Shaders.Writer.ShaderWriter.WriteInitializer ( Expression  expression)
virtual

Writes the initializer.

Parameters
expressionThe expression.

Reimplemented in SiliconStudio.Shaders.Writer.Hlsl.HlslWriter.

Definition at line 674 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteLine ( )

Writes the line.

Returns
This instance

Definition at line 689 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteLine ( string  text)

Writes the line.

Parameters
textThe text.
Returns
this instance

Definition at line 710 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteLinkLine ( Node  node)
protected

Writes a link line using #line preprocessing directive with the specified node

Parameters
nodeThe node to use the Span.
Returns
This instance

Definition at line 731 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.SourceLocation.Line, SiliconStudio.Shaders.Ast.SourceSpan.Location, and SiliconStudio.Shaders.Ast.Node.Span.

virtual ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteMethodDeclaration ( MethodDeclaration  methodDeclaration)
protectedvirtual

Writes the specified method declaration.

Parameters
methodDeclarationThe method declaration.
Returns
This instance

Definition at line 861 of file ShaderWriter.cs.

References SiliconStudio.Shaders.Ast.MethodDeclaration.Attributes, SiliconStudio.Shaders.Ast.MethodDeclaration.Name, SiliconStudio.Shaders.Ast.MethodDeclaration.Qualifiers, and SiliconStudio.Shaders.Ast.MethodDeclaration.ReturnType.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteRankSpecifiers ( IEnumerable< Expression expressionList)
protected

Writes the rank specifiers.

Parameters
expressionListThe expression list.
Returns
This instance

Definition at line 907 of file ShaderWriter.cs.

ShaderWriter SiliconStudio.Shaders.Writer.ShaderWriter.WriteSpace ( )

Writes the space.

Returns
this instance

Definition at line 756 of file ShaderWriter.cs.

void SiliconStudio.Shaders.Writer.ShaderWriter.WriteStatementContent ( Statement  statement)
protected

Writes the content of the statement.

Parameters
statementThe statement.

Definition at line 925 of file ShaderWriter.cs.

void SiliconStudio.Shaders.Writer.ShaderWriter.WriteVariable ( Variable  variable)
protected

Member Data Documentation

Stack<bool> SiliconStudio.Shaders.Writer.ShaderWriter.IsDeclaratingVariable = new Stack<bool>()
protected

Definition at line 93 of file ShaderWriter.cs.

Property Documentation

bool SiliconStudio.Shaders.Writer.ShaderWriter.EnableNewLine
getsetprotected

Gets or sets a value indicating whether [enable new line].

true if [enable new line]; otherwise, false.

Definition at line 67 of file ShaderWriter.cs.

bool SiliconStudio.Shaders.Writer.ShaderWriter.EnablePreprocessorLine
getset

Definition at line 59 of file ShaderWriter.cs.

List<SourceLocation> SiliconStudio.Shaders.Writer.ShaderWriter.SourceLocations
getset

Definition at line 42 of file ShaderWriter.cs.

string SiliconStudio.Shaders.Writer.ShaderWriter.Text
get

Gets the text.

Definition at line 48 of file ShaderWriter.cs.


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