Name Description Size
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