aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLHCodeGenerator.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2018-02-01 12:14:34 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-01 18:22:03 +0000
commit130fb3f7aac19e40eddfc8fa85a9b39e7c99a7e8 (patch)
tree8daee5ab96a5bdc06e991ff8d1e370c011b6b7a5 /src/sksl/SkSLHCodeGenerator.cpp
parent28eaed254dcd73b42c15b73528f349cccd7797e5 (diff)
updated .fp file headers
Bug: skia: Change-Id: I9c39622f34e803a706acd04372be569667380661 Reviewed-on: https://skia-review.googlesource.com/102204 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/sksl/SkSLHCodeGenerator.cpp')
-rw-r--r--src/sksl/SkSLHCodeGenerator.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/sksl/SkSLHCodeGenerator.cpp b/src/sksl/SkSLHCodeGenerator.cpp
index 819b85a515..9750aabb87 100644
--- a/src/sksl/SkSLHCodeGenerator.cpp
+++ b/src/sksl/SkSLHCodeGenerator.cpp
@@ -7,6 +7,7 @@
#include "SkSLHCodeGenerator.h"
+#include "SkSLParser.h"
#include "SkSLUtil.h"
#include "ir/SkSLEnum.h"
#include "ir/SkSLFunctionDeclaration.h"
@@ -252,7 +253,24 @@ void HCodeGenerator::writeFields() {
}
}
+String HCodeGenerator::GetHeader(const Program& program, ErrorReporter& errors) {
+ SymbolTable types(&errors);
+ Parser parser(program.fSource->c_str(), program.fSource->length(), types, errors);
+ for (;;) {
+ Token header = parser.nextRawToken();
+ switch (header.fKind) {
+ case Token::WHITESPACE:
+ break;
+ case Token::BLOCK_COMMENT:
+ return String(program.fSource->c_str() + header.fOffset, header.fLength);
+ default:
+ return "";
+ }
+ }
+}
+
bool HCodeGenerator::generateCode() {
+ this->writef("%s\n", GetHeader(fProgram, fErrors).c_str());
this->writef(kFragmentProcessorHeader, fFullName.c_str());
this->writef("#ifndef %s_DEFINED\n"
"#define %s_DEFINED\n",