aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/ir
diff options
context:
space:
mode:
Diffstat (limited to 'src/sksl/ir')
-rw-r--r--src/sksl/ir/SkSLIndexExpression.h6
-rw-r--r--src/sksl/ir/SkSLIntLiteral.h4
-rw-r--r--src/sksl/ir/SkSLLayout.h34
-rw-r--r--src/sksl/ir/SkSLModifiersDeclaration.h37
-rw-r--r--src/sksl/ir/SkSLProgram.h9
-rw-r--r--src/sksl/ir/SkSLProgramElement.h3
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)