Index: src/gpu/glsl/GrGLSL.cpp |
diff --git a/src/gpu/glsl/GrGLSL.cpp b/src/gpu/glsl/GrGLSL.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c77b7fab20719f3042de5c9376948181ce665246 |
--- /dev/null |
+++ b/src/gpu/glsl/GrGLSL.cpp |
@@ -0,0 +1,35 @@ |
+/* |
+ * Copyright 2011 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "GrGLSL.h" |
+#include "SkString.h" |
+ |
+bool GrGLSLSupportsNamedFragmentShaderOutputs(GrGLSLGeneration gen) { |
+ switch (gen) { |
+ case k110_GrGLSLGeneration: |
+ return false; |
+ case k130_GrGLSLGeneration: |
+ case k140_GrGLSLGeneration: |
+ case k150_GrGLSLGeneration: |
+ case k330_GrGLSLGeneration: |
+ case k310es_GrGLSLGeneration: |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+void GrGLSLMulVarBy4f(SkString* outAppend, const char* vec4VarName, const GrGLSLExpr4& mulFactor) { |
+ if (mulFactor.isOnes()) { |
+ *outAppend = SkString(); |
+ } |
+ |
+ if (mulFactor.isZeros()) { |
+ outAppend->appendf("%s = vec4(0);", vec4VarName); |
+ } else { |
+ outAppend->appendf("%s *= %s;", vec4VarName, mulFactor.c_str()); |
+ } |
+} |