SkSLBinaryExpression.cpp |
|
8879 |
SkSLBinaryExpression.h |
A binary operation.
|
3895 |
SkSLBlock.cpp |
symbols= |
4460 |
SkSLBlock.h |
A block of multiple statements functioning as a single statement.
|
4117 |
SkSLBreakStatement.h |
A 'break' statement.
|
799 |
SkSLChildCall.cpp |
|
2608 |
SkSLChildCall.h |
A call to a child effect object (shader, color filter, or blender).
|
1815 |
SkSLConstructor.cpp |
|
11259 |
SkSLConstructor.h |
Base class representing a constructor with unknown arguments.
|
4295 |
SkSLConstructorArray.cpp |
allowNarrowing= |
3785 |
SkSLConstructorArray.h |
Represents the construction of an array type, such as "float[5](x, y, z, w, 1)".
|
1911 |
SkSLConstructorArrayCast.cpp |
|
3016 |
SkSLConstructorArrayCast.h |
Represents the typecasting of an array. Arrays cannot be directly casted in SkSL (or GLSL), but
type narrowing can cause an array to be implicitly casted. For instance, the expression
`myHalf2Array == float[2](a, b)` should be allowed when narrowing conversions are enabled; this
constructor allows the necessary array-type conversion to be represented in IR.
These always contain exactly 1 array of matching size, and are never constant.
|
1758 |
SkSLConstructorCompound.cpp |
initial value |
7655 |
SkSLConstructorCompound.h |
Represents a vector or matrix that is composed from other expressions, such as
`half3(pos.xy, 1)` or `mat3(a.xyz, b.xyz, 0, 0, 1)`
These can contain a mix of scalars and aggregates. The total number of scalar values inside the
constructor must always match the type's slot count. (e.g. `pos.xy` consumes two slots.)
The inner values must have the same component type as the vector/matrix.
|
2030 |
SkSLConstructorCompoundCast.cpp |
|
4617 |
SkSLConstructorCompoundCast.h |
Represents the construction of a vector/matrix typecast, such as `half3(myInt3)` or
`float4x4(myHalf4x4)`. Matrix resizes are done in ConstructorMatrixResize, not here.
These always contain exactly 1 vector or matrix of matching size, and are never constant.
|
1590 |
SkSLConstructorDiagonalMatrix.cpp |
|
1528 |
SkSLConstructorDiagonalMatrix.h |
Represents the construction of a diagonal matrix, such as `half3x3(n)`.
These always contain exactly 1 scalar.
|
1604 |
SkSLConstructorMatrixResize.cpp |
|
2007 |
SkSLConstructorMatrixResize.h |
Represents the construction of a matrix resize operation, such as `mat4x4(myMat2x2)`.
These always contain exactly 1 matrix of non-matching size. Cells that aren't present in the
input matrix are populated with the identity matrix.
|
1720 |
SkSLConstructorScalarCast.cpp |
|
4752 |
SkSLConstructorScalarCast.h |
Represents the construction of a scalar cast, such as `float(intVariable)`.
These always contain exactly 1 scalar of a differing type, and are never constant.
|
2127 |
SkSLConstructorSplat.cpp |
|
1321 |
SkSLConstructorSplat.h |
Represents the construction of a vector splat, such as `half3(n)`.
These always contain exactly 1 scalar.
|
1830 |
SkSLConstructorStruct.cpp |
|
3298 |
SkSLConstructorStruct.h |
Represents the construction of an struct object, such as "Color(red, green, blue, 1)".
|
1927 |
SkSLContinueStatement.h |
A 'continue' statement.
|
819 |
SkSLDiscardStatement.cpp |
|
924 |
SkSLDiscardStatement.h |
A 'discard' statement.
|
1073 |
SkSLDoStatement.cpp |
|
1953 |
SkSLDoStatement.h |
A 'do' statement.
|
2055 |
SkSLEmptyExpression.h |
The EmptyExpression is a void-typed expression with nothing inside. EmptyExpressions can exist
inside an ExpressionStatement; this construct is functionally equivalent to a Nop.
|
1597 |
SkSLExpression.cpp |
|
1399 |
SkSLExpression.h |
Abstract supertype of all expressions.
|
4575 |
SkSLExpressionStatement.cpp |
|
2410 |
SkSLExpressionStatement.h |
A lone expression being used as a statement.
|
1569 |
SkSLExtension.cpp |
|
1702 |
SkSLExtension.h |
#extension <name> : enable
|
1674 |
SkSLFieldAccess.cpp |
|
4759 |
SkSLFieldAccess.h |
An expression which extracts a field from a struct, as in 'foo.bar'.
|
3064 |
SkSLFieldSymbol.h |
A symbol which should be interpreted as a field access. Fields are added to the symboltable
whenever a bare reference to an identifier should refer to a struct field; in GLSL, this is the
result of declaring anonymous interface blocks.
|
1499 |
SkSLForStatement.cpp |
|
10647 |
SkSLForStatement.h |
The unrollability information for an ES2-compatible loop.
|
4972 |
SkSLFunctionCall.cpp |
|
60730 |
SkSLFunctionCall.h |
A function invocation.
|
2887 |
SkSLFunctionDeclaration.cpp |
|
27020 |
SkSLFunctionDeclaration.h |
A function declaration (not a definition -- does not contain a body).
|
5625 |
SkSLFunctionDefinition.cpp |
|
17698 |
SkSLFunctionDefinition.h |
A function definition (a declaration plus an associated block of code).
|
3212 |
SkSLFunctionPrototype.h |
A function prototype (a function declaration as a top-level program element)
|
1194 |
SkSLFunctionReference.h |
An identifier referring to a function name. This is an intermediate value: FunctionReferences are
always eventually replaced by FunctionCalls in valid programs.
|
1696 |
SkSLIfStatement.cpp |
|
3968 |
SkSLIfStatement.h |
An 'if' statement.
|
2581 |
SkSLIndexExpression.cpp |
|
7678 |
SkSLIndexExpression.h |
An expression which extracts a value from an array, vector or matrix, as in 'm[2]'.
|
3017 |
SkSLInterfaceBlock.cpp |
interfaceBlock= |
6953 |
SkSLInterfaceBlock.h |
An interface block, as in:
out sk_PerVertex {
layout(builtin=0) float4 sk_Position;
layout(builtin=1) float sk_PointSize;
};
At the IR level, this is represented by a single variable of struct type.
|
3320 |
SkSLIRHelpers.h |
|
4168 |
SkSLIRNode.h |
Represents a node in the intermediate representation (IR) tree. The IR is a fully-resolved
version of the program (all types determined, everything validated), ready for code generation.
|
3197 |
SkSLLayout.cpp |
|
7614 |
SkSLLayout.h |
Represents a layout block appearing before a variable declaration, as in:
layout (location = 0) int x;
|
4015 |
SkSLLiteral.cpp |
|
543 |
SkSLLiteral.h |
A literal value. These can contain ints, floats, or booleans.
|
4588 |
SkSLMethodReference.h |
An identifier referring to a method name, along with an instance for the call.
This is an intermediate value: MethodReferences are always eventually replaced by FunctionCalls
in valid programs.
Method calls are only supported on effect-child types, and they all resolve to intrinsics
prefixed with '$', and taking the 'self' object as the last parameter. For example:
uniform shader child;
...
child.eval(xy) --> $eval(xy, child)
|
2338 |
SkSLModifierFlags.cpp |
|
4234 |
SkSLModifierFlags.h |
Verifies that only permitted modifier flags are included. Reports errors and returns false in
the event of a violation.
|
2916 |
SkSLModifiers.h |
|
480 |
SkSLModifiersDeclaration.cpp |
|
2666 |
SkSLModifiersDeclaration.h |
A declaration that consists only of modifiers, e.g.:
layout(blend_support_all_equations) out;
|
1648 |
SkSLNop.h |
A no-op statement that does nothing.
|
794 |
SkSLPoison.h |
|
1074 |
SkSLPostfixExpression.cpp |
|
2178 |
SkSLPostfixExpression.h |
An expression modified by a unary operator appearing after it, such as 'i++'.
|
2261 |
SkSLPrefixExpression.cpp |
|
15442 |
SkSLPrefixExpression.h |
An expression modified by a unary operator appearing before it, such as '!flag'.
|
2154 |
SkSLProgram.cpp |
|
2108 |
SkSLProgram.h |
Represents a list the Uniforms contained within a Program. |
5695 |
SkSLProgramElement.h |
Represents a top-level element (e.g. function or global variable) in a program.
|
737 |
SkSLReturnStatement.h |
A 'return' statement.
|
1421 |
SkSLSetting.cpp |
|
3305 |
SkSLSetting.h |
Represents a compile-time constant setting, such as sk_Caps.integerSupport. These IRNodes are
used when assembling a module. These nodes are replaced with the value of the setting during
compilation when ShaderCaps are available.
|
2343 |
SkSLStatement.h |
Abstract supertype of all statements.
|
747 |
SkSLStructDefinition.cpp |
interfaceBlock= |
1793 |
SkSLStructDefinition.h |
A struct at global scope, as in:
struct RenderData {
float3 color;
bool highQuality;
};
|
1511 |
SkSLSwitchCase.cpp |
isDefault= |
1136 |
SkSLSwitchCase.h |
A single case of a 'switch' statement.
|
1784 |
SkSLSwitchStatement.cpp |
|
10919 |
SkSLSwitchStatement.h |
A 'switch' statement.
|
2904 |
SkSLSwizzle.cpp |
|
23423 |
SkSLSwizzle.h |
Represents a vector swizzle operation such as 'float3(1, 2, 3).zyx'.
|
4043 |
SkSLSymbol.cpp |
|
1971 |
SkSLSymbol.h |
Represents a symbol table entry.
|
1378 |
SkSLSymbolTable.cpp |
|
7490 |
SkSLSymbolTable.h |
Maps identifiers to symbols.
|
7744 |
SkSLTernaryExpression.cpp |
|
6969 |
SkSLTernaryExpression.h |
A ternary expression (test ? ifTrue : ifFalse).
|
3177 |
SkSLType.cpp |
|
46977 |
SkSLType.h |
Represents a single field in a struct type.
|
21357 |
SkSLTypeReference.cpp |
|
1568 |
SkSLTypeReference.h |
Represents an identifier referring to a type. This is an intermediate value: TypeReferences are
always eventually replaced by Constructors in valid programs.
|
2375 |
SkSLVarDeclarations.cpp |
|
21716 |
SkSLVarDeclarations.h |
A single variable declaration statement. Multiple variables declared together are expanded to
separate (sequential) statements. For instance, the SkSL 'int x = 2, y[3];' produces two
VarDeclaration instances (wrapped in an unscoped Block).
|
6129 |
SkSLVariable.cpp |
|
9606 |
SkSLVariable.h |
Represents a variable, whether local, global, or a function parameter. This represents the
variable itself (the storage location), which is shared between all VariableReferences which
read or write that storage location.
|
6415 |
SkSLVariableReference.cpp |
|
803 |
SkSLVariableReference.h |
A reference to a variable, through which it can be read or written. In the statement:
x = x + 1;
there is only one Variable 'x', but two VariableReferences to it.
|
2327 |