Chromium Code Reviews| 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; |
|
dogben
2016/09/30 15:00:51
nit: documentation
|
| + 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 |