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>
diff --git a/src/sksl/SkSLHCodeGenerator.cpp b/src/sksl/SkSLHCodeGenerator.cpp
index 819b85a..9750aab 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 @@
     }
 }
 
+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",