Name Description Size Coverage
SkSLBinaryExpression.cpp 8879 0 %
SkSLBinaryExpression.h A binary operation. 3895 0 %
SkSLBlock.cpp symbols= 4460 0 %
SkSLBlock.h A block of multiple statements functioning as a single statement. 4117 0 %
SkSLBreakStatement.h A 'break' statement. 799 0 %
SkSLChildCall.cpp 2608 0 %
SkSLChildCall.h A call to a child effect object (shader, color filter, or blender). 1815 0 %
SkSLConstructor.cpp 11259 0 %
SkSLConstructor.h Base class representing a constructor with unknown arguments. 4295 0 %
SkSLConstructorArray.cpp allowNarrowing= 3785 0 %
SkSLConstructorArray.h Represents the construction of an array type, such as "float[5](x, y, z, w, 1)". 1911 0 %
SkSLConstructorArrayCast.cpp 3016 0 %
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 0 %
SkSLConstructorCompound.cpp initial value 7655 0 %
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 0 %
SkSLConstructorCompoundCast.cpp 4617 0 %
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 0 %
SkSLConstructorDiagonalMatrix.cpp 1528 0 %
SkSLConstructorDiagonalMatrix.h Represents the construction of a diagonal matrix, such as `half3x3(n)`. These always contain exactly 1 scalar. 1604 0 %
SkSLConstructorMatrixResize.cpp 2007 0 %
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 0 %
SkSLConstructorScalarCast.cpp 4752 0 %
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 0 %
SkSLConstructorSplat.cpp 1321 0 %
SkSLConstructorSplat.h Represents the construction of a vector splat, such as `half3(n)`. These always contain exactly 1 scalar. 1830 0 %
SkSLConstructorStruct.cpp 3298 0 %
SkSLConstructorStruct.h Represents the construction of an struct object, such as "Color(red, green, blue, 1)". 1927 0 %
SkSLContinueStatement.h A 'continue' statement. 819 0 %
SkSLDiscardStatement.cpp 924 0 %
SkSLDiscardStatement.h A 'discard' statement. 1073 0 %
SkSLDoStatement.cpp 1953 0 %
SkSLDoStatement.h A 'do' statement. 2055 0 %
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 0 %
SkSLExpression.cpp 1685 0 %
SkSLExpression.h Abstract supertype of all expressions. 4567 0 %
SkSLExpressionStatement.cpp 2410 0 %
SkSLExpressionStatement.h A lone expression being used as a statement. 1569 0 %
SkSLExtension.cpp 1702 0 %
SkSLExtension.h #extension <name> : enable 1674 0 %
SkSLFieldAccess.cpp 4759 0 %
SkSLFieldAccess.h An expression which extracts a field from a struct, as in 'foo.bar'. 3064 0 %
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 0 %
SkSLForStatement.cpp 10647 0 %
SkSLForStatement.h The unrollability information for an ES2-compatible loop. 4972 0 %
SkSLFunctionCall.cpp 60822 0 %
SkSLFunctionCall.h A function invocation. 3421 0 %
SkSLFunctionDeclaration.cpp 27219 0 %
SkSLFunctionDeclaration.h A function declaration (not a definition -- does not contain a body). 5785 0 %
SkSLFunctionDefinition.cpp 17608 0 %
SkSLFunctionDefinition.h A function definition (a declaration plus an associated block of code). 2928 0 %
SkSLFunctionPrototype.h A function prototype (a function declaration as a top-level program element) 1068 0 %
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 0 %
SkSLIfStatement.cpp 3968 0 %
SkSLIfStatement.h An 'if' statement. 2581 0 %
SkSLIndexExpression.cpp 7678 0 %
SkSLIndexExpression.h An expression which extracts a value from an array, vector or matrix, as in 'm[2]'. 3017 0 %
SkSLInterfaceBlock.cpp interfaceBlock= 6953 0 %
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 0 %
SkSLIRHelpers.h 4281 0 %
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 0 %
SkSLLayout.cpp 7614 0 %
SkSLLayout.h Represents a layout block appearing before a variable declaration, as in: layout (location = 0) int x; 4015 0 %
SkSLLiteral.cpp 543 0 %
SkSLLiteral.h A literal value. These can contain ints, floats, or booleans. 4588 0 %
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 0 %
SkSLModifierFlags.cpp 4234 0 %
SkSLModifierFlags.h Verifies that only permitted modifier flags are included. Reports errors and returns false in the event of a violation. 3127 0 %
SkSLModifiers.h 480 0 %
SkSLModifiersDeclaration.cpp 2666 0 %
SkSLModifiersDeclaration.h A declaration that consists only of modifiers, e.g.: layout(blend_support_all_equations) out; 1648 0 %
SkSLNop.h A no-op statement that does nothing. 794 0 %
SkSLPoison.h 1074 0 %
SkSLPostfixExpression.cpp 2230 0 %
SkSLPostfixExpression.h An expression modified by a unary operator appearing after it, such as 'i++'. 2261 0 %
SkSLPrefixExpression.cpp 15539 0 %
SkSLPrefixExpression.h An expression modified by a unary operator appearing before it, such as '!flag'. 2154 0 %
SkSLProgram.cpp 2108 0 %
SkSLProgram.h Represents a list the Uniforms contained within a Program. 5695 0 %
SkSLProgramElement.h Represents a top-level element (e.g. function or global variable) in a program. 737 0 %
SkSLReturnStatement.h A 'return' statement. 1421 0 %
SkSLSetting.cpp 3305 0 %
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 0 %
SkSLStatement.h Abstract supertype of all statements. 747 0 %
SkSLStructDefinition.cpp interfaceBlock= 1793 0 %
SkSLStructDefinition.h A struct at global scope, as in: struct RenderData { float3 color; bool highQuality; }; 1511 0 %
SkSLSwitchCase.cpp isDefault= 1136 0 %
SkSLSwitchCase.h A single case of a 'switch' statement. 1784 0 %
SkSLSwitchStatement.cpp 11306 0 %
SkSLSwitchStatement.h A 'switch' statement. 2904 0 %
SkSLSwizzle.cpp 23969 0 %
SkSLSwizzle.h Represents the components of a vector swizzle. 4363 0 %
SkSLSymbol.cpp 1971 0 %
SkSLSymbol.h Represents a symbol table entry. 1378 0 %
SkSLSymbolTable.cpp 7929 0 %
SkSLSymbolTable.h Maps identifiers to symbols. 7744 0 %
SkSLTernaryExpression.cpp 6969 0 %
SkSLTernaryExpression.h A ternary expression (test ? ifTrue : ifFalse). 3177 0 %
SkSLType.cpp 48459 0 %
SkSLType.h Represents a single field in a struct type. 21591 0 %
SkSLTypeReference.cpp 1569 0 %
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 0 %
SkSLVarDeclarations.cpp 21717 0 %
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). 5934 0 %
SkSLVariable.cpp 9682 0 %
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 0 %
SkSLVariableReference.cpp 803 0 %
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 0 %