diff options
author | ethannicholas <ethannicholas@google.com> | 2016-10-12 06:39:56 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-12 06:39:56 -0700 |
commit | 5961bc9278a00e56dacdd9408d0744b5a0a3b493 (patch) | |
tree | d491a2df69b12eb937788951d726e72168572fdb /src/sksl/SkSLGLSLCodeGenerator.h | |
parent | 5772eaa91d6a10d74959d7732513c5ab9c057e03 (diff) |
Turned on SkSL->GLSL compiler
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003
Committed: https://skia.googlesource.com/skia/+/9b0fe3d125f237d9884732a48414fa85fc71b4e3
Committed: https://skia.googlesource.com/skia/+/b12b3c6908c62c908b3680be01e3b5bfd30de310
Committed: https://skia.googlesource.com/skia/+/f008b0a59f45c0d4bea3e66faf3b01805009ec89
Committed: https://skia.googlesource.com/skia/+/08b2ccf398e2b81bc05d2c105837e5419899469b
Committed: https://skia.googlesource.com/skia/+/dcfe6dba4a335e50e86ff68e3252065d4197432c
Committed: https://skia.googlesource.com/skia/+/ccb1dd8f267f9d7fe7c9d0ce222ebc81b41853b3
Review-Url: https://codereview.chromium.org/2288033003
Diffstat (limited to 'src/sksl/SkSLGLSLCodeGenerator.h')
-rw-r--r-- | src/sksl/SkSLGLSLCodeGenerator.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/sksl/SkSLGLSLCodeGenerator.h b/src/sksl/SkSLGLSLCodeGenerator.h index 3534affccc..9851123708 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 |