diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-12-12 09:48:48 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-12 15:24:09 +0000 |
commit | e7e81c15c144b8133f696d0744ed9f7e8d06e936 (patch) | |
tree | a8b97c5e3ee2dea146a9cedbff3a33356a181180 /src/sksl/SkSLIRGenerator.h | |
parent | 344e9037e1befdee76691a1239a47829e6af4ea5 (diff) |
converted vertex shaders to device coords
Bug: skia:6239
Change-Id: I1a3b67fe84d208d426d71deb7aea6b0cd433af37
Reviewed-on: https://skia-review.googlesource.com/75501
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/SkSLIRGenerator.h')
-rw-r--r-- | src/sksl/SkSLIRGenerator.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sksl/SkSLIRGenerator.h b/src/sksl/SkSLIRGenerator.h index 1df9b65bd0..327fe6fc7a 100644 --- a/src/sksl/SkSLIRGenerator.h +++ b/src/sksl/SkSLIRGenerator.h @@ -62,7 +62,8 @@ public: IRGenerator(const Context* context, std::shared_ptr<SymbolTable> root, ErrorReporter& errorReporter); - void convertProgram(const char* text, + void convertProgram(Program::Kind kind, + const char* text, size_t length, SymbolTable& types, std::vector<std::unique_ptr<ProgramElement>>* result); @@ -156,12 +157,15 @@ private: std::unique_ptr<Statement> convertWhile(const ASTWhileStatement& w); void convertEnum(const ASTEnum& e); std::unique_ptr<Block> applyInvocationIDWorkaround(std::unique_ptr<Block> main); + // returns a statement which converts sk_Position from device to normalized coordinates + std::unique_ptr<Statement> getNormalizeSkPositionCode(); void fixRectSampling(std::vector<std::unique_ptr<Expression>>& arguments); void checkValid(const Expression& expr); void markWrittenTo(const Expression& expr, bool readWrite); void getConstantInt(const Expression& value, int64_t* out); + Program::Kind fKind; const FunctionDeclaration* fCurrentFunction; std::unordered_map<String, Program::Settings::Value> fCapsMap; std::shared_ptr<SymbolTable> fRootSymbolTable; @@ -175,6 +179,10 @@ private: ErrorReporter& fErrors; int fInvocations; std::vector<std::unique_ptr<ProgramElement>>* fProgramElements; + Variable* fSkPerVertex; + Variable* fRTAdjust; + Variable* fRTAdjustInterfaceBlock; + int fRTAdjustFieldIndex; friend class AutoSymbolTable; friend class AutoLoopLevel; |