diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2016-11-17 16:13:37 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-18 14:34:08 +0000 |
commit | d8df21a1e08b5b3380261f4b90acfbdc538ef93c (patch) | |
tree | d0d9454eec7c469335c40938aa497c055f89297b /src/sksl/SkSLMain.cpp | |
parent | 833dcf48844dd053ddf7ecea20e3e1c2b6b47e01 (diff) |
switched skslc from std::string to SkString
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4977
Change-Id: I15e24963b09b719a2c07da67745114f5ac66cee8
Reviewed-on: https://skia-review.googlesource.com/4977
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/SkSLMain.cpp')
-rw-r--r-- | src/sksl/SkSLMain.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/sksl/SkSLMain.cpp b/src/sksl/SkSLMain.cpp index 3658992412..d9fc81470e 100644 --- a/src/sksl/SkSLMain.cpp +++ b/src/sksl/SkSLMain.cpp @@ -10,13 +10,6 @@ #include "SkSLCompiler.h" #include "GrContextOptions.h" -bool endsWith(const std::string& s, const std::string& ending) { - if (s.length() >= ending.length()) { - return (0 == s.compare(s.length() - ending.length(), ending.length(), ending)); - } - return false; -} - /** * Very simple standalone executable to facilitate testing. */ @@ -37,35 +30,36 @@ int main(int argc, const char** argv) { } std::ifstream in(argv[1]); - std::string text((std::istreambuf_iterator<char>(in)), - std::istreambuf_iterator<char>()); + std::string stdText((std::istreambuf_iterator<char>(in)), + std::istreambuf_iterator<char>()); + SkString text(stdText.c_str()); if (in.rdstate()) { printf("error reading '%s'\n", argv[1]); exit(2); } - std::string name(argv[2]); - if (endsWith(name, ".spirv")) { - std::ofstream out(argv[2], std::ofstream::binary); + SkString name(argv[2]); + if (name.endsWith(".spirv")) { + SkFILEWStream out(argv[2]); SkSL::Compiler compiler; + if (!out.isValid()) { + printf("error writing '%s'\n", argv[2]); + exit(4); + } if (!compiler.toSPIRV(kind, text, out)) { printf("%s", compiler.errorText().c_str()); exit(3); } - if (out.rdstate()) { + } else if (name.endsWith(".glsl")) { + SkFILEWStream out(argv[2]); + SkSL::Compiler compiler; + if (!out.isValid()) { printf("error writing '%s'\n", argv[2]); exit(4); } - } else if (endsWith(name, ".glsl")) { - std::ofstream out(argv[2], std::ofstream::binary); - SkSL::Compiler compiler; if (!compiler.toGLSL(kind, text, *SkSL::GLSLCapsFactory::Default(), out)) { printf("%s", compiler.errorText().c_str()); exit(3); } - if (out.rdstate()) { - printf("error writing '%s'\n", argv[2]); - exit(4); - } } else { printf("expected output filename to end with '.spirv' or '.glsl'"); } |