| Index: src/sksl/SkSLGLSLCodeGenerator.h | 
| diff --git a/src/sksl/SkSLGLSLCodeGenerator.h b/src/sksl/SkSLGLSLCodeGenerator.h | 
| index 3534affccca2baa5f00aec7c38fdfa9d7a60eecb..985112370822eceb67eaea7fd2178d53798a4ce7 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; | 
| }; | 
|  | 
| /** | 
| @@ -81,6 +86,8 @@ public: | 
| GLSLCodeGenerator(const Context* context, GLCaps caps) | 
| : fContext(*context) | 
| , fCaps(caps) | 
| +    , fOut(nullptr) | 
| +    , fVarCount(0) | 
| , fIndentation(0) | 
| , fAtLineStart(true) {} | 
|  | 
| @@ -111,11 +118,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 +130,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 +173,9 @@ private: | 
| const Context& fContext; | 
| const GLCaps fCaps; | 
| std::ostream* fOut; | 
| +    std::string fFunctionHeader; | 
| +    Program::Kind fProgramKind; | 
| +    int fVarCount; | 
| int fIndentation; | 
| bool fAtLineStart; | 
| // Keeps track of which struct types we have written. Given that we are unlikely to ever write | 
|  |