skia2/src/sksl/ir
John Stiles 270cec21a7 Make program configuration accessible from the SkSL context.
During IR generation, this information was previously only accessible
from inside the IRGenerator class. Now anyplace with access to the
Context can look up the program settings or kind.

Moving the ProgramKind inside the ProgramSettings struct would be an
interesting future goal, but this ends up causing significant ripple
effects outside of SkSL and may not be worth untangling. Many of our
callers expect to compile a Vertex, Fragment, and/or Geometry shader all
at once with the same Settings but differing ProgramKind, so perhaps
the distinction between Kind and Settings is relevant and worth
keeping as-is.

Change-Id: I8b3a61510911b4ff309549663f81f3b960bdb0da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371256
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-17 18:49:34 +00:00
..
SkSLBinaryExpression.h Convert Operators namespace to first-class Operator object. 2021-02-16 16:54:20 +00:00
SkSLBlock.h Honor fIsScope when emitting a Block's description. 2021-01-15 14:43:40 +00:00
SkSLBoolLiteral.h Separate out built-in SkSL types into their own struct. 2021-01-11 20:02:24 +00:00
SkSLBreakStatement.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLCodeStringExpression.h Added SkSL DSL SampleChild function 2021-02-16 19:13:04 +00:00
SkSLConstructor.cpp Remove SkSL ABORT() macro. 2021-02-03 00:34:28 +00:00
SkSLConstructor.h Add guard-rails to Constructor constant-value fetchers. 2021-01-13 15:53:54 +00:00
SkSLContinueStatement.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLDiscardStatement.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLDoStatement.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLEnum.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLExpression.h Added SkSL DSL SampleChild function 2021-02-16 19:13:04 +00:00
SkSLExpressionStatement.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLExtension.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLExternalFunctionCall.h Strip down SkSL::ExternalValues, limit them to functions 2021-01-07 14:28:41 +00:00
SkSLExternalFunctionReference.h Strip down SkSL::ExternalValues, limit them to functions 2021-01-07 14:28:41 +00:00
SkSLField.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLFieldAccess.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLFloatLiteral.h Separate out built-in SkSL types into their own struct. 2021-01-11 20:02:24 +00:00
SkSLForStatement.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLFunctionCall.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLFunctionDeclaration.h Update SkSL type priorities to differentiate signed/unsigned types. 2020-12-14 17:29:23 +00:00
SkSLFunctionDefinition.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLFunctionPrototype.h Improve support for function prototypes in SkSL. 2020-11-03 19:09:25 +00:00
SkSLFunctionReference.h Separate out built-in SkSL types into their own struct. 2021-01-11 20:02:24 +00:00
SkSLIfStatement.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLIndexExpression.h Separate out built-in SkSL types into their own struct. 2021-01-11 20:02:24 +00:00
SkSLInlineMarker.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLInterfaceBlock.h Simplify various logic around multi-dimensional arrays. 2020-12-04 14:28:51 +00:00
SkSLIntLiteral.h Add Type::isEnum helper method. 2021-01-15 19:52:56 +00:00
SkSLIRNode.h Move pooling implementation details out of IRNode class. 2021-02-02 16:06:05 +00:00
SkSLLayout.h Remove SkSL ABORT() macro. 2021-02-03 00:34:28 +00:00
SkSLModifiers.h moved SkSL Variable data into IRNode 2020-10-07 21:29:12 +00:00
SkSLModifiersDeclaration.h Simplify the ModifiersPool class. 2020-11-13 14:05:09 +00:00
SkSLNop.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLPostfixExpression.h Convert Operators namespace to first-class Operator object. 2021-02-16 16:54:20 +00:00
SkSLPrefixExpression.cpp Convert Operators namespace to first-class Operator object. 2021-02-16 16:54:20 +00:00
SkSLPrefixExpression.h Convert Operators namespace to first-class Operator object. 2021-02-16 16:54:20 +00:00
SkSLProgram.h Make program configuration accessible from the SkSL context. 2021-02-17 18:49:34 +00:00
SkSLProgramElement.h Add global struct definitions to SkSL. 2020-11-30 15:26:14 +00:00
SkSLReturnStatement.h Added SkSL DSLFunction 2021-01-28 16:13:19 +00:00
SkSLSection.h Mark IRNode leaf classes as final. 2020-10-28 20:07:23 +00:00
SkSLSetting.cpp Reorganization of IR generator's API and interaction with compiler 2020-10-09 20:29:03 +00:00
SkSLSetting.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLStatement.h SkSL IR normalization: Convert while loops to for loops 2020-12-16 23:03:23 +00:00
SkSLStructDefinition.h Add global struct definitions to SkSL. 2020-11-30 15:26:14 +00:00
SkSLSwitchCase.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLSwitchStatement.h Remove (unused) SkSL::NodeArrayWrapper 2020-11-18 16:56:15 +00:00
SkSLSwizzle.h Remove redundant constantPropagate in Swizzle. 2021-01-11 15:02:27 +00:00
SkSLSymbol.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLSymbolAlias.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLSymbolTable.cpp Replace SkSL::Type constructors with named factory functions. 2020-12-14 15:28:53 +00:00
SkSLSymbolTable.h Fix for fuzzer-discovered use-after-free. 2021-01-15 15:11:00 +00:00
SkSLTernaryExpression.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLType.cpp Remove SkSL ABORT() macro. 2021-02-03 00:34:28 +00:00
SkSLType.h Reland "Add support for top-level uniforms in SPIR-V." 2021-01-29 16:12:03 +00:00
SkSLTypeReference.h Separate out built-in SkSL types into their own struct. 2021-01-11 20:02:24 +00:00
SkSLUnresolvedFunction.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00
SkSLVarDeclarations.h Added basic SkSL DSL statements 2021-01-22 22:25:18 +00:00
SkSLVariable.cpp SkSL vars now track their declaration instead of their initial value 2021-01-22 15:16:32 +00:00
SkSLVariable.h SkSL vars now track their declaration instead of their initial value 2021-01-22 15:16:32 +00:00
SkSLVariableReference.cpp Only track compile-time expressions in definition maps. 2021-02-09 14:23:31 +00:00
SkSLVariableReference.h Reland "Moved SkSL data back into node classes" 2020-10-30 14:59:10 +00:00