diff options
Diffstat (limited to 'src/sksl/ir')
-rw-r--r-- | src/sksl/ir/SkSLIndexExpression.h | 6 | ||||
-rw-r--r-- | src/sksl/ir/SkSLIntLiteral.h | 4 | ||||
-rw-r--r-- | src/sksl/ir/SkSLLayout.h | 34 | ||||
-rw-r--r-- | src/sksl/ir/SkSLModifiersDeclaration.h | 37 | ||||
-rw-r--r-- | src/sksl/ir/SkSLProgram.h | 9 | ||||
-rw-r--r-- | src/sksl/ir/SkSLProgramElement.h | 3 |
6 files changed, 16 insertions, 77 deletions
diff --git a/src/sksl/ir/SkSLIndexExpression.h b/src/sksl/ir/SkSLIndexExpression.h index ea9af3d897..f5b0d09c2c 100644 --- a/src/sksl/ir/SkSLIndexExpression.h +++ b/src/sksl/ir/SkSLIndexExpression.h @@ -19,7 +19,7 @@ namespace SkSL { static const Type& index_type(const Context& context, const Type& type) { if (type.kind() == Type::kMatrix_Kind) { if (type.componentType() == *context.fFloat_Type) { - switch (type.rows()) { + switch (type.columns()) { case 2: return *context.fVec2_Type; case 3: return *context.fVec3_Type; case 4: return *context.fVec4_Type; @@ -27,7 +27,7 @@ static const Type& index_type(const Context& context, const Type& type) { } } else { ASSERT(type.componentType() == *context.fDouble_Type); - switch (type.rows()) { + switch (type.columns()) { case 2: return *context.fDVec2_Type; case 3: return *context.fDVec3_Type; case 4: return *context.fDVec4_Type; @@ -47,7 +47,7 @@ struct IndexExpression : public Expression { : INHERITED(base->fPosition, kIndex_Kind, index_type(context, base->fType)) , fBase(std::move(base)) , fIndex(std::move(index)) { - ASSERT(fIndex->fType == *context.fInt_Type || fIndex->fType == *context.fUInt_Type); + ASSERT(fIndex->fType == *context.fInt_Type); } std::string description() const override { diff --git a/src/sksl/ir/SkSLIntLiteral.h b/src/sksl/ir/SkSLIntLiteral.h index 8921c283b5..2bc565712e 100644 --- a/src/sksl/ir/SkSLIntLiteral.h +++ b/src/sksl/ir/SkSLIntLiteral.h @@ -18,8 +18,8 @@ namespace SkSL { struct IntLiteral : public Expression { // FIXME: we will need to revisit this if/when we add full support for both signed and unsigned // 64-bit integers, but for right now an int64_t will hold every value we care about - IntLiteral(const Context& context, Position position, int64_t value, const Type* type = nullptr) - : INHERITED(position, kIntLiteral_Kind, type ? *type : *context.fInt_Type) + IntLiteral(const Context& context, Position position, int64_t value) + : INHERITED(position, kIntLiteral_Kind, *context.fInt_Type) , fValue(value) {} virtual std::string description() const override { diff --git a/src/sksl/ir/SkSLLayout.h b/src/sksl/ir/SkSLLayout.h index 24087d0612..d8dc98096f 100644 --- a/src/sksl/ir/SkSLLayout.h +++ b/src/sksl/ir/SkSLLayout.h @@ -22,20 +22,15 @@ struct Layout { , fIndex(layout.fIndex) , fSet(layout.fSet) , fBuiltin(layout.fBuiltin) - , fOriginUpperLeft(layout.fOriginUpperLeft) - , fOverrideCoverage(layout.fOverrideCoverage) - , fBlendSupportAllEquations(layout.fBlendSupportAllEquations) {} + , fOriginUpperLeft(layout.fOriginUpperLeft) {} - Layout(int location, int binding, int index, int set, int builtin, bool originUpperLeft, - bool overrideCoverage, bool blendSupportAllEquations) + Layout(int location, int binding, int index, int set, int builtin, bool originUpperLeft) : fLocation(location) , fBinding(binding) , fIndex(index) , fSet(set) , fBuiltin(builtin) - , fOriginUpperLeft(originUpperLeft) - , fOverrideCoverage(overrideCoverage) - , fBlendSupportAllEquations(blendSupportAllEquations) {} + , fOriginUpperLeft(originUpperLeft) {} std::string description() const { std::string result; @@ -64,14 +59,6 @@ struct Layout { result += separator + "origin_upper_left"; separator = ", "; } - if (fOverrideCoverage) { - result += separator + "override_coverage"; - separator = ", "; - } - if (fBlendSupportAllEquations) { - result += separator + "blend_support_all_equations"; - separator = ", "; - } if (result.length() > 0) { result = "layout (" + result + ")"; } @@ -79,14 +66,11 @@ struct Layout { } bool operator==(const Layout& other) const { - return fLocation == other.fLocation && - fBinding == other.fBinding && - fIndex == other.fIndex && - fSet == other.fSet && - fBuiltin == other.fBuiltin && - fOriginUpperLeft == other.fOriginUpperLeft && - fOverrideCoverage == other.fOverrideCoverage && - fBlendSupportAllEquations == other.fBlendSupportAllEquations; + return fLocation == other.fLocation && + fBinding == other.fBinding && + fIndex == other.fIndex && + fSet == other.fSet && + fBuiltin == other.fBuiltin; } bool operator!=(const Layout& other) const { @@ -101,8 +85,6 @@ struct Layout { int fSet; int fBuiltin; bool fOriginUpperLeft; - bool fOverrideCoverage; - bool fBlendSupportAllEquations; }; } // namespace diff --git a/src/sksl/ir/SkSLModifiersDeclaration.h b/src/sksl/ir/SkSLModifiersDeclaration.h deleted file mode 100644 index 0066fab877..0000000000 --- a/src/sksl/ir/SkSLModifiersDeclaration.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SKSL_MODIFIERDECLARATION -#define SKSL_MODIFIERDECLARATION - -#include "SkSLProgramElement.h" -#include "SkSLModifiers.h" - -namespace SkSL { - -/** - * A declaration that consists only of modifiers, e.g.: - * - * layout(blend_support_all_equations) out; - */ -struct ModifiersDeclaration : public ProgramElement { - ModifiersDeclaration(Modifiers modifiers) - : INHERITED(Position(), kModifiers_Kind) - , fModifiers(modifiers) {} - - std::string description() const { - return fModifiers.description() + ";"; - } - - Modifiers fModifiers; - - typedef ProgramElement INHERITED; -}; - -} // namespace - -#endif diff --git a/src/sksl/ir/SkSLProgram.h b/src/sksl/ir/SkSLProgram.h index 8393341269..205db6e932 100644 --- a/src/sksl/ir/SkSLProgram.h +++ b/src/sksl/ir/SkSLProgram.h @@ -11,7 +11,6 @@ #include <vector> #include <memory> -#include "SkSLModifiers.h" #include "SkSLProgramElement.h" #include "SkSLSymbolTable.h" @@ -26,18 +25,14 @@ struct Program { kVertex_Kind }; - Program(Kind kind, - Modifiers::Flag defaultPrecision, - std::vector<std::unique_ptr<ProgramElement>> elements, + Program(Kind kind, std::vector<std::unique_ptr<ProgramElement>> elements, std::shared_ptr<SymbolTable> symbols) : fKind(kind) - , fDefaultPrecision(defaultPrecision) , fElements(std::move(elements)) , fSymbols(symbols) {} Kind fKind; - // FIXME handle different types; currently it assumes this is for floats - Modifiers::Flag fDefaultPrecision; + std::vector<std::unique_ptr<ProgramElement>> fElements; std::shared_ptr<SymbolTable> fSymbols; }; diff --git a/src/sksl/ir/SkSLProgramElement.h b/src/sksl/ir/SkSLProgramElement.h index 2f1ce77199..44fc340667 100644 --- a/src/sksl/ir/SkSLProgramElement.h +++ b/src/sksl/ir/SkSLProgramElement.h @@ -20,8 +20,7 @@ struct ProgramElement : public IRNode { kVar_Kind, kFunction_Kind, kInterfaceBlock_Kind, - kExtension_Kind, - kModifiers_Kind + kExtension_Kind }; ProgramElement(Position position, Kind kind) |