7591d4b5ef
Throughout SkSL we've begun using doubles as a convenient way to store any SkSL value (int, float, bool) in a single type. This idea has now been extended to literals. Rather than having three expression kinds for integers, floats and boolean literals, we can have just one. These can be accessed in a type-specific way (`floatValue`, `intValue`, and `boolValue` return the expected type, or assert if it's not the matching type), or in a type-agnostic way (`value` will return a double and works on any type of Literal). This allows us to remove a complex template trick (Literal<T> is gone), removes two redundant Expression types, and and lets us reduce our code size in ConstantFolder, FunctionCall, etc. Most of the conversion process was pretty straightforward: * `IntLiteral::Make` becomes `Literal::MakeInt` * `x.is<IntLiteral>()` becomes `x.isIntLiteral()` * `x.as<IntLiteral>.value()` becomes `x.as<Literal>.intValue()` Change-Id: Ic328533611e4551669c7fc9d7f9c03e34699f3f6 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447836 Commit-Queue: John Stiles <johnstiles@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
206 lines
7.5 KiB
Plaintext
206 lines
7.5 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Things are easiest for everyone if these source paths are absolute.
|
|
_src = get_path_info("../src", "abspath")
|
|
_include = get_path_info("../include", "abspath")
|
|
|
|
skia_sksl_sources = [
|
|
"$_include/private/SkSLDefines.h",
|
|
"$_include/private/SkSLIRNode.h",
|
|
"$_include/private/SkSLLayout.h",
|
|
"$_include/private/SkSLModifiers.h",
|
|
"$_include/private/SkSLProgramElement.h",
|
|
"$_include/private/SkSLProgramKind.h",
|
|
"$_include/private/SkSLSampleUsage.h",
|
|
"$_include/private/SkSLStatement.h",
|
|
"$_include/private/SkSLString.h",
|
|
"$_include/private/SkSLSymbol.h",
|
|
"$_include/sksl/DSL.h",
|
|
"$_include/sksl/DSLBlock.h",
|
|
"$_include/sksl/DSLCase.h",
|
|
"$_include/sksl/DSLCore.h",
|
|
"$_include/sksl/DSLExpression.h",
|
|
"$_include/sksl/DSLFunction.h",
|
|
"$_include/sksl/DSLLayout.h",
|
|
"$_include/sksl/DSLModifiers.h",
|
|
"$_include/sksl/DSLRuntimeEffects.h",
|
|
"$_include/sksl/DSLStatement.h",
|
|
"$_include/sksl/DSLSymbols.h",
|
|
"$_include/sksl/DSLType.h",
|
|
"$_include/sksl/DSLVar.h",
|
|
"$_include/sksl/SkSLErrorReporter.h",
|
|
"$_src/sksl/SkSLASTFile.h",
|
|
"$_src/sksl/SkSLASTNode.h",
|
|
"$_src/sksl/SkSLAnalysis.cpp",
|
|
"$_src/sksl/SkSLAnalysis.h",
|
|
"$_src/sksl/SkSLBuiltinTypes.cpp",
|
|
"$_src/sksl/SkSLBuiltinTypes.h",
|
|
"$_src/sksl/SkSLCompiler.cpp",
|
|
"$_src/sksl/SkSLCompiler.h",
|
|
"$_src/sksl/SkSLConstantFolder.cpp",
|
|
"$_src/sksl/SkSLConstantFolder.h",
|
|
"$_src/sksl/SkSLContext.cpp",
|
|
"$_src/sksl/SkSLContext.h",
|
|
"$_src/sksl/SkSLDSLParser.cpp",
|
|
"$_src/sksl/SkSLDSLParser.h",
|
|
"$_src/sksl/SkSLDehydrator.cpp",
|
|
"$_src/sksl/SkSLDehydrator.h",
|
|
"$_src/sksl/SkSLErrorReporter.cpp",
|
|
"$_src/sksl/SkSLFileOutputStream.h",
|
|
"$_src/sksl/SkSLIRGenerator.cpp",
|
|
"$_src/sksl/SkSLIRGenerator.h",
|
|
"$_src/sksl/SkSLInliner.cpp",
|
|
"$_src/sksl/SkSLInliner.h",
|
|
"$_src/sksl/SkSLIntrinsicList.h",
|
|
"$_src/sksl/SkSLLexer.cpp",
|
|
"$_src/sksl/SkSLLexer.h",
|
|
"$_src/sksl/SkSLMangler.cpp",
|
|
"$_src/sksl/SkSLMangler.h",
|
|
"$_src/sksl/SkSLMemoryLayout.h",
|
|
"$_src/sksl/SkSLMemoryPool.h",
|
|
"$_src/sksl/SkSLModifiersPool.h",
|
|
"$_src/sksl/SkSLOperators.cpp",
|
|
"$_src/sksl/SkSLOperators.h",
|
|
"$_src/sksl/SkSLOutputStream.cpp",
|
|
"$_src/sksl/SkSLOutputStream.h",
|
|
"$_src/sksl/SkSLParsedModule.h",
|
|
"$_src/sksl/SkSLParser.cpp",
|
|
"$_src/sksl/SkSLParser.h",
|
|
"$_src/sksl/SkSLPool.cpp",
|
|
"$_src/sksl/SkSLPool.h",
|
|
"$_src/sksl/SkSLPosition.h",
|
|
"$_src/sksl/SkSLProgramSettings.h",
|
|
"$_src/sksl/SkSLRehydrator.cpp",
|
|
"$_src/sksl/SkSLRehydrator.h",
|
|
"$_src/sksl/SkSLSampleUsage.cpp",
|
|
"$_src/sksl/SkSLString.cpp",
|
|
"$_src/sksl/SkSLStringStream.h",
|
|
"$_src/sksl/SkSLUtil.cpp",
|
|
"$_src/sksl/SkSLUtil.h",
|
|
"$_src/sksl/codegen/SkSLVMCodeGenerator.cpp",
|
|
"$_src/sksl/codegen/SkSLVMCodeGenerator.h",
|
|
"$_src/sksl/dsl/DSLBlock.cpp",
|
|
"$_src/sksl/dsl/DSLCase.cpp",
|
|
"$_src/sksl/dsl/DSLCore.cpp",
|
|
"$_src/sksl/dsl/DSLExpression.cpp",
|
|
"$_src/sksl/dsl/DSLFunction.cpp",
|
|
"$_src/sksl/dsl/DSLLayout.cpp",
|
|
"$_src/sksl/dsl/DSLRuntimeEffects.cpp",
|
|
"$_src/sksl/dsl/DSLStatement.cpp",
|
|
"$_src/sksl/dsl/DSLSymbols.cpp",
|
|
"$_src/sksl/dsl/DSLType.cpp",
|
|
"$_src/sksl/dsl/DSLVar.cpp",
|
|
"$_src/sksl/dsl/priv/DSLFPs.cpp",
|
|
"$_src/sksl/dsl/priv/DSLWriter.cpp",
|
|
"$_src/sksl/dsl/priv/DSLWriter.h",
|
|
"$_src/sksl/ir/SkSLBinaryExpression.cpp",
|
|
"$_src/sksl/ir/SkSLBinaryExpression.h",
|
|
"$_src/sksl/ir/SkSLBlock.cpp",
|
|
"$_src/sksl/ir/SkSLBlock.h",
|
|
"$_src/sksl/ir/SkSLBreakStatement.h",
|
|
"$_src/sksl/ir/SkSLChildCall.cpp",
|
|
"$_src/sksl/ir/SkSLChildCall.h",
|
|
"$_src/sksl/ir/SkSLConstructor.cpp",
|
|
"$_src/sksl/ir/SkSLConstructor.h",
|
|
"$_src/sksl/ir/SkSLConstructorArray.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorArray.h",
|
|
"$_src/sksl/ir/SkSLConstructorArrayCast.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorArrayCast.h",
|
|
"$_src/sksl/ir/SkSLConstructorCompound.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorCompound.h",
|
|
"$_src/sksl/ir/SkSLConstructorCompoundCast.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorCompoundCast.h",
|
|
"$_src/sksl/ir/SkSLConstructorDiagonalMatrix.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorDiagonalMatrix.h",
|
|
"$_src/sksl/ir/SkSLConstructorMatrixResize.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorMatrixResize.h",
|
|
"$_src/sksl/ir/SkSLConstructorScalarCast.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorScalarCast.h",
|
|
"$_src/sksl/ir/SkSLConstructorSplat.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorSplat.h",
|
|
"$_src/sksl/ir/SkSLConstructorStruct.cpp",
|
|
"$_src/sksl/ir/SkSLConstructorStruct.h",
|
|
"$_src/sksl/ir/SkSLContinueStatement.h",
|
|
"$_src/sksl/ir/SkSLDiscardStatement.h",
|
|
"$_src/sksl/ir/SkSLDoStatement.cpp",
|
|
"$_src/sksl/ir/SkSLDoStatement.h",
|
|
"$_src/sksl/ir/SkSLExpression.h",
|
|
"$_src/sksl/ir/SkSLExpressionStatement.cpp",
|
|
"$_src/sksl/ir/SkSLExpressionStatement.h",
|
|
"$_src/sksl/ir/SkSLExtension.h",
|
|
"$_src/sksl/ir/SkSLExternalFunction.h",
|
|
"$_src/sksl/ir/SkSLExternalFunctionCall.h",
|
|
"$_src/sksl/ir/SkSLExternalFunctionReference.h",
|
|
"$_src/sksl/ir/SkSLField.h",
|
|
"$_src/sksl/ir/SkSLFieldAccess.cpp",
|
|
"$_src/sksl/ir/SkSLFieldAccess.h",
|
|
"$_src/sksl/ir/SkSLForStatement.cpp",
|
|
"$_src/sksl/ir/SkSLForStatement.h",
|
|
"$_src/sksl/ir/SkSLFunctionCall.cpp",
|
|
"$_src/sksl/ir/SkSLFunctionCall.h",
|
|
"$_src/sksl/ir/SkSLFunctionDeclaration.cpp",
|
|
"$_src/sksl/ir/SkSLFunctionDeclaration.h",
|
|
"$_src/sksl/ir/SkSLFunctionDefinition.cpp",
|
|
"$_src/sksl/ir/SkSLFunctionDefinition.h",
|
|
"$_src/sksl/ir/SkSLFunctionPrototype.h",
|
|
"$_src/sksl/ir/SkSLFunctionReference.h",
|
|
"$_src/sksl/ir/SkSLIfStatement.cpp",
|
|
"$_src/sksl/ir/SkSLIfStatement.h",
|
|
"$_src/sksl/ir/SkSLIndexExpression.cpp",
|
|
"$_src/sksl/ir/SkSLIndexExpression.h",
|
|
"$_src/sksl/ir/SkSLInlineMarker.h",
|
|
"$_src/sksl/ir/SkSLInterfaceBlock.h",
|
|
"$_src/sksl/ir/SkSLLiteral.h",
|
|
"$_src/sksl/ir/SkSLMethodReference.h",
|
|
"$_src/sksl/ir/SkSLModifiersDeclaration.h",
|
|
"$_src/sksl/ir/SkSLNop.h",
|
|
"$_src/sksl/ir/SkSLPoison.h",
|
|
"$_src/sksl/ir/SkSLPostfixExpression.cpp",
|
|
"$_src/sksl/ir/SkSLPostfixExpression.h",
|
|
"$_src/sksl/ir/SkSLPrefixExpression.cpp",
|
|
"$_src/sksl/ir/SkSLPrefixExpression.h",
|
|
"$_src/sksl/ir/SkSLProgram.h",
|
|
"$_src/sksl/ir/SkSLReturnStatement.h",
|
|
"$_src/sksl/ir/SkSLSetting.cpp",
|
|
"$_src/sksl/ir/SkSLSetting.h",
|
|
"$_src/sksl/ir/SkSLStructDefinition.h",
|
|
"$_src/sksl/ir/SkSLSwitchCase.h",
|
|
"$_src/sksl/ir/SkSLSwitchStatement.cpp",
|
|
"$_src/sksl/ir/SkSLSwitchStatement.h",
|
|
"$_src/sksl/ir/SkSLSwizzle.cpp",
|
|
"$_src/sksl/ir/SkSLSwizzle.h",
|
|
"$_src/sksl/ir/SkSLSymbolAlias.h",
|
|
"$_src/sksl/ir/SkSLSymbolTable.cpp",
|
|
"$_src/sksl/ir/SkSLSymbolTable.h",
|
|
"$_src/sksl/ir/SkSLTernaryExpression.cpp",
|
|
"$_src/sksl/ir/SkSLTernaryExpression.h",
|
|
"$_src/sksl/ir/SkSLType.cpp",
|
|
"$_src/sksl/ir/SkSLType.h",
|
|
"$_src/sksl/ir/SkSLTypeReference.h",
|
|
"$_src/sksl/ir/SkSLUnresolvedFunction.h",
|
|
"$_src/sksl/ir/SkSLVarDeclarations.cpp",
|
|
"$_src/sksl/ir/SkSLVarDeclarations.h",
|
|
"$_src/sksl/ir/SkSLVariable.cpp",
|
|
"$_src/sksl/ir/SkSLVariable.h",
|
|
"$_src/sksl/ir/SkSLVariableReference.cpp",
|
|
"$_src/sksl/ir/SkSLVariableReference.h",
|
|
"$_src/sksl/spirv.h",
|
|
]
|
|
|
|
skia_sksl_gpu_sources = [
|
|
"$_src/sksl/codegen/SkSLCodeGenerator.h",
|
|
"$_src/sksl/codegen/SkSLGLSLCodeGenerator.cpp",
|
|
"$_src/sksl/codegen/SkSLGLSLCodeGenerator.h",
|
|
"$_src/sksl/codegen/SkSLMetalCodeGenerator.cpp",
|
|
"$_src/sksl/codegen/SkSLMetalCodeGenerator.h",
|
|
"$_src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp",
|
|
"$_src/sksl/codegen/SkSLPipelineStageCodeGenerator.h",
|
|
"$_src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp",
|
|
"$_src/sksl/codegen/SkSLSPIRVCodeGenerator.h",
|
|
"$_src/sksl/codegen/SkSLSPIRVtoHLSL.cpp",
|
|
"$_src/sksl/codegen/SkSLSPIRVtoHLSL.h",
|
|
]
|