Index: src/sksl/SkSLGLSLCodeGenerator.h |
diff --git a/src/sksl/SkSLGLSLCodeGenerator.h b/src/sksl/SkSLGLSLCodeGenerator.h |
index 3534affccca2baa5f00aec7c38fdfa9d7a60eecb..61fa31e1fc493685e9eee7ef3007f3a8918c838b 100644 |
--- a/src/sksl/SkSLGLSLCodeGenerator.h |
+++ b/src/sksl/SkSLGLSLCodeGenerator.h |
@@ -50,6 +50,11 @@ struct GLCaps { |
kGL_Standard, |
kGLES_Standard |
} fStandard; |
+ bool fIsCoreProfile; |
+ bool fUsesPrecisionModifiers; |
+ bool fMustDeclareFragmentShaderOutput; |
+ // The Tegra3 compiler will sometimes never return if we have min(abs(x), y) |
+ bool fCanUseMinAndAbsTogether; |
}; |
/** |
@@ -111,11 +116,11 @@ private: |
void writeLayout(const Layout& layout); |
- void writeModifiers(const Modifiers& modifiers); |
+ void writeModifiers(const Modifiers& modifiers, bool globalContext); |
void writeGlobalVars(const VarDeclaration& vs); |
- void writeVarDeclarations(const VarDeclarations& decl); |
+ void writeVarDeclarations(const VarDeclarations& decl, bool global); |
void writeVariableReference(const VariableReference& ref); |
@@ -123,6 +128,8 @@ private: |
void writeIntrinsicCall(const FunctionCall& c); |
+ void writeMinAbsHack(Expression& absExpr, Expression& otherExpr); |
+ |
void writeFunctionCall(const FunctionCall& c); |
void writeConstructor(const Constructor& c); |
@@ -164,6 +171,7 @@ private: |
const Context& fContext; |
const GLCaps fCaps; |
std::ostream* fOut; |
+ Program::Kind fProgramKind; |
int fIndentation; |
bool fAtLineStart; |
// Keeps track of which struct types we have written. Given that we are unlikely to ever write |