added DSL Modifiers
Change-Id: Ie1b0b8068b487905691b20e318c7898653763a25
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359757
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
diff --git a/tests/SkSLDSLTest.cpp b/tests/SkSLDSLTest.cpp
index 7dc3858..f191633 100644
--- a/tests/SkSLDSLTest.cpp
+++ b/tests/SkSLDSLTest.cpp
@@ -1111,3 +1111,38 @@
Ceil(a == b).release();
}
}
+
+DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLModifiers, r, ctxInfo) {
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu());
+
+ Var v1(kConst_Modifier, kInt, "v1");
+ Statement d1 = Declare(v1);
+ REPORTER_ASSERT(r, d1.release()->description() == "const int v1;");
+
+ // Most modifiers require an appropriate context to be legal. We can't yet give them that
+ // context, so we can't as yet Declare() variables with these modifiers.
+ // TODO: better tests when able
+ Var v2(kIn_Modifier, kInt, "v2");
+ REPORTER_ASSERT(r, DSLWriter::Var(v2).modifiers().fFlags == SkSL::Modifiers::kIn_Flag);
+
+ Var v3(kOut_Modifier, kInt, "v3");
+ REPORTER_ASSERT(r, DSLWriter::Var(v3).modifiers().fFlags == SkSL::Modifiers::kOut_Flag);
+
+ Var v4(kUniform_Modifier, kInt, "v4");
+ REPORTER_ASSERT(r, DSLWriter::Var(v4).modifiers().fFlags == SkSL::Modifiers::kUniform_Flag);
+
+ Var v5(kFlat_Modifier, kInt, "v5");
+ REPORTER_ASSERT(r, DSLWriter::Var(v5).modifiers().fFlags == SkSL::Modifiers::kFlat_Flag);
+
+ Var v6(kNoPerspective_Modifier, kInt, "v6");
+ REPORTER_ASSERT(r, DSLWriter::Var(v6).modifiers().fFlags ==
+ SkSL::Modifiers::kNoPerspective_Flag);
+
+ Var v7(kIn_Modifier | kOut_Modifier, kInt, "v7");
+ REPORTER_ASSERT(r, DSLWriter::Var(v7).modifiers().fFlags ==
+ (SkSL::Modifiers::kIn_Flag | SkSL::Modifiers::kOut_Flag));
+
+ Var v8(kInOut_Modifier, kInt, "v8");
+ REPORTER_ASSERT(r, DSLWriter::Var(v8).modifiers().fFlags ==
+ (SkSL::Modifiers::kIn_Flag | SkSL::Modifiers::kOut_Flag));
+}